CIImageのimageByApplyingTransform:を使うと、GPUを利用した画像のリサイズ処理ができます。CIContextを作るときのオプションで、CPUかGPUか処理を選べます。CoreImage.frameworkが必要。
// ソース画像を準備
UIImage *sourceA = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"IMG_0001" ofType:@"png"]];
CIImage *sourceImage = [[CIImage alloc] initWithCGImage:sourceA.CGImage];
// 新しい画像サイズ
CGSize newSize = CGSizeMake(320, 480);
// ソーズ画像のサイズと、新しいサイズの比率計算
CGRect imageRect = [sourceImage extent];
CGPoint scale = CGPointMake(newSize.width/imageRect.size.width,
newSize.height/imageRect.size.height);
// AffineTransformでサイズを変更し、切り抜く
CIImage *filteredImage = [sourceImage imageByApplyingTransform:CGAffineTransformMakeScale(scale.x,scale.y)];
filteredImage = [filteredImage imageByCroppingToRect:CGRectMake(0, 0, newSize.width,newSize.height)];
// UIImageに変換する
CIContext *ciContext = [CIContext contextWithOptions:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO]
forKey:kCIContextUseSoftwareRenderer]];
CGImageRef imageRef = [ciContext createCGImage:filteredImage fromRect:[filteredImage extent]];
UIImage *outputImage = [UIImage imageWithCGImage:imageRef scale:1.0f orientation:UIImageOrientationUp];
CGImageRelease(imageRef);