Using the GPU on IOS for combining images : I am working on some image processing in my app.  Taking live video and adding an image onto of it to use it as an overlay.  Unfortunately this is taking massive amounts of CPU to do which is causing other parts of the program to slow down and not work as intended.  Essentially I want to make the below code use the GPU instead of the CPU.  Thanks for your time.
  

    - (UIImage *)processUsingCoreGraphics:(UIImage*)input {
    
    CGRect imageRect = {CGPointZero,input.size};
    NSInteger inputWidth = CGRectGetWidth(imageRect);
    NSInteger inputHeight = CGRectGetHeight(imageRect);
    
    // 1) Calculate the location of Ghosty
    UIImage * ghostImage = [UIImage imageNamed:@"myImage"];
    CGFloat ghostImageAspectRatio = ghostImage.size.width / ghostImage.size.height;
    
    NSInteger targetGhostWidth = inputWidth * 2;//0.25;
    CGSize ghostSize = CGSizeMake(targetGhostWidth, targetGhostWidth / ghostImageAspectRatio);
    //CGPoint ghostOrigin = _currentPositionForNotification;//CGPointMake(inputWidth * 0.5, inputHeight * 0.2);//CGPointMake(inputWidth * 0.5, inputHeight * 0.2);
    
    CGRect ghostRect = {_currentPositionForNotification, CGSizeMake(1000, 100)};
    
    // 2) Draw your image into the context.
    UIGraphicsBeginImageContext(input.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    CGAffineTransform flip = CGAffineTransformMakeScale(1.0, -1.0);
    CGAffineTransform flipThenShift = CGAffineTransformTranslate(flip,0,-inputHeight);
    CGContextConcatCTM(context, flipThenShift);
    
    CGContextDrawImage(context, imageRect, [input CGImage]);
    
    CGContextSetBlendMode(context, kCGBlendModeSourceAtop);
    //CGContextSetAlpha(context,0.5);
    CGRect transformedGhostRect = CGRectApplyAffineTransform(ghostRect, flipThenShift);
    CGContextDrawImage(context, transformedGhostRect, [ghostImage CGImage]);
    
    // 3) Retrieve your processed image
    UIImage * imageWithGhost = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    //CGContextRelease(context);
    //CFRelease(imageRef);
    return imageWithGhost;