Speedup Image Processing with OpenCL

Written by: | Date:
ferrari-opencl-blog-FINAL

Speed up image processing by utilizing all of your graphic card’s power with OpenCL in Capture One Pro 7. Get familiar with OpenCL, and learn more about what exactly it is, and how it can improve your workflow.

An option to significantly speedup processing has been added to Capture One since version 6.0. You can take advantage of this speedup option by using graphics card accelerated processing through an interface called OpenCL. The idea is to make it possible to fully utilize the processing capabilities of the graphics hardware to get a faster application.

In Capture One 7 the graphics card is used for accelerated processing not just to the display, but also when processing images to files.

The speed advantage of using OpenCL can be huge. When using one of the newest graphics cards on the market in a Mac Pro computer, you can process a full 80 megapixel raw file in less than 2 seconds.

What is OpenCL?

OpenCL is an open standard defining how to interface and utilize all the processing capabilities within graphics cards (GPU) and multiprocessor CPUs. OpenCL is short for Open Compute Language.

OpenCL essentially enables effective utilization of thousands of compute units within modern graphics cards. For Capture One, only relatively new GPU cards have enough computing power and onboard RAM to be utilized effectively.

jets-opencl-1600In Capture One version 7.1.2 and 7.1.3 the default setup is not to use OpenCL for processing. To enable the processing you need to switch to Auto in the preferences as shown below.

opencl-auto

When Auto is selected Capture One will test the capability of the graphics card, and if the card proves to be powerful enough Capture One will use it for processing.

Performance

Utilizing OpenCL makes it possible to accelerate your processing significantly. For an iMac with the integrated graphics card from NVidia (GTX 680MX) you gain more than a factor of 3 times in processing speed as shown in the benchmark below. On the graph, benchmark 100 is the speed when processing using only the CPU and not OpenCL.

benchmark

From the figure we see both Canon “cr2” and Nikon “nef” files will process more than 300% faster than the CPU, when utilizing the graphics card on a 4 CPU core iMac. An IQ180 raw file will process close to 250% faster.

The benchmark numbers depend on your graphics card, number of CPU cores and speed of your SSD disk. In terms of the interactive speed using one of the recommended graphics cards, it is possible to get real-time feedback (30fps) for almost all slider interaction in Capture One 7.

Initialization of OpenCL

To increase robustness in Capture One 7.1.3, we have added the OpenCL initialization as a separate process. This ensures that future problems during OpenCL initialization will not affect the Capture One application. Further more, this initialization only happens when the graphics hardware changes.

When the preferences for hardware acceleration are set to auto, the application will test the capabilities of the graphics card. OpenCL is not enabled (in auto mode) if one of the following conditions is met for the graphics card:

  • Less than 1GB of on-board Video RAM
  • Too few GPU cores
  • Too low processing improvement compared to the system CPU performance
  • Mac OS 10.6
Drivers

As of June 2013, four major companies have developed desktop drivers for OpenCL: NVidia, AMD, Apple and Intel. OpenCL is also becoming an interface for other computer architectures going forward.

For Mac OS X 10 the OpenCL drivers are part of the operating system, but for Windows these drivers are installed as part of the display drivers. For your convenience here are the links to the OpenCL enabled drivers for Windows.

The Windows driver requirements
Recommended graphics and acceleration cards for “Best Performance” 

As of June 25, 2013 using one of these GPU cards will experience the very best performance:

Mac:                                                                                                  Windows:

AMD HD7950                                                                                    AMD HD7970 GHz edition

 

Great performance is likewise expected for:

Mac:                                                                                                  Windows:

NVidia GeForce GTX 680                                                                 NVidia GTX Titan

AMD FirePro                                                                                     NVidia 680GTX

NVidia Quadro 5000                                                                         NVidia Quadro 6000, Tesla

ddd

 

Final words

When working with Capture One 7 certain image settings will bypass the use of OpenCL and use the normal processing pipeline: these settings include the use of spot removal tool and non RGB proof profiles.

Apart from these settings most users with capable graphics cards will see a performance increase when working with Capture One 7 and I recommend that you go into your preference and enable it today.

Regards,
Lionel

Lionel Kuhlmann

Lionel Kuhlmann

Lionel Kuhlmann is the advanced algorithms manager at Phase One, where he is the lead of the image-processing group behind Capture One.

41 thoughts on “Speedup Image Processing with OpenCL

  1. joel

    Will open cl work with new macbook pro graph cards?,intel iris on mac 13 and intel iris pro, nvidia

    geoforce gt with 2gb on 15 inch models?

    Reply
    1. Lionel Kuhlmann Post author

      Hi Joel,

      Based on the specifications of the Nvidia 750M GPU in the new MacBooks, they should work with OpenCL in Capture One 7. The Intel GPUs will also work in principle, but since they are very low-power, they might be too slow to get a performance boost.
      However, since both GPU’s are shipped with a brand new graphics driver, there may be some problems with the version of Capture One that shipped prior to the existence of the MBPro’s. If such problems are to occur, they will have very high priority to be fixed in a service release of Capture One.

      Best regards,
      Lionel

      Reply
  2. Theo

    Hi,

    Does Capture One 7.x support OpenCL on the Nvidia Quadro K6000?

    Many thanks in advance,
    Theo

    Reply
    1. Lionel Kuhlmann Post author

      Hi Theo,

      Thanks for your question. Capture One 7 does support the K6000.

      Best regards,
      Lionel

      Reply
  3. Chris

    Interesting article…thanks! I’m curious if graphics cards that use integrated memory such as the AMD
    Radeon HD 6770M (found in certain models of the iMac) with only 512 MB of VRAM would benefit at all from OpenCL?

    Chipset Model: AMD Radeon HD 6770M
    Type: GPU
    Bus: PCIe
    PCIe Lane Width: x16
    VRAM (Total): 512 MB
    Vendor: ATI (0x1002)
    Device ID: 0x6740
    Revision ID: 0x0000
    ROM Revision: 113-C0170F-175
    EFI Driver Version: 01.00.560

    Reply
    1. Lionel Kuhlmann Post author

      Hi Chris,

      Thanks for your question. 1024mb VRAM is the minimum in Capture One 7.

      Best regards,
      Lionel

      Reply
      1. Aleksander

        Could you tell us is 1GB VRAM enough for 16Mpix 14bit RAWs on board of AMD Radeon 7790 ?
        When more memory is needed? In situation when we have more Mpix or in stronger cards which have more processing units and they need memory for each processing units on its calculations?

        Let’s make an example:
        We have 20Mpix camera 16bit RAWs, so they need 20Mpix*2*3 (2 bytes for one colour multiplied by 3 colors of RGB) so it makes proximately 120MB of data for one picture. Considering that Capture One make use of something like layers, effects I can imagine that it fills 1GB memory very fast but only developers working on the algorithms can confirm it.

        When we think about 80Mpix camera, data for one picture can reach 480MB so 2GB or more seems more sensible.

        So can we make a sort of border that 1GB VRAM is enough for 16-18Mpix cameras or I am wrong and 2GB gives us more power and it will be faster in calculations?

        Reply
        1. Lionel Kuhlmann Post author

          Hi Aleksander

          Yes 1gb vram is sufficient for processing 16 mpix images.

          Since the output is written in strips, the memory usage is not solely dependant of the size of image. More vram give benefits in terms of processing speed, as more calculations can be cached and reused.

          Best regards,
          Lionel

          Reply
  4. Lubè

    Hi Lionel, i have been a user of Phaseone Backs and Capture One ever since 2002 and love your product.

    I have two Q? i would like to ask you.

    I notice that you recommend the AMD HD7950 as the best performance on Mac for Open CL yet i have read loads of people having issues with Open CL being put on and wondering has this been fixed as im looking at investing in buying this card but dont wish to have issues.

    Secondly have also noticed on my MacBook Pro 2012 Retina with OSX 10.8.5 with the Nvidia GT650M that processes files with Opens CL on is slower than when its off. I have tested this a number of times.

    Reply
    1. Lionel Kuhlmann Post author

      Hi Lube,

      Thanks for commenting. To answer your questions:

      The HD7950 is definitely the choice for now on Mac Pro. The driver in Mac OS X for this card is among the best and it has a lot of video mem which is great for Capture One use. There are currently no problems specifically seen on this card.

      The NVidia GPUs in the Retina macs are known to be slower than the AMD’s that were in the previous generation Macbook pros. They do however consume less power. When processing is slower on GPU than CPU it is often on systems with only 1GB video memory and where the images have many adjustments applied. In general desktop GPU’s are significantly more powerful the laptop GPU’s. For instance, we process IQ180 files (default settings) in just under 3 seconds on the above mentioned HD7950.

      Hope that helps!

      Best regards,
      Lionel

      Reply
    1. Lionel Kuhlmann Post author

      Hi Alistair,

      Thanks for your comment. We will definitely look into this and get back to you!

      Best regards,
      Lionel

      Reply
  5. Marc Ramonet

    Hola, tengo la siguiente maquina:
    Windows 7 64 bits
    Intel Core Quad Q6600 2.4Ghz
    8GB Ram
    Geoforce Gtx 650 2gb

    I Capture One 7.1.6 va extremadamente lento, no se cual es la razón.
    ¿puede ayudarme?

    /marc

    Reply
  6. Dylan Gordon

    Hello Niels
    I am the owner of a new Mac Pro 6,1. Using C1 7.1.6 i am having trouble with hardware acceleration. Makes corrupted files on output and shows similar glitches / artifacts on preview. I am running the quad core with dual d300 gpu’s. Any experience with this machine? thx

    Reply
    1. The Image Quality Professor

      Hi Dylan,

      Thanks for your question. At the moment I am waiting to receive my new MacBook Pro. As soon as I receive it, I will look into this.
      Stay tuned.

      All the best,
      Niels

      Reply
        1. The Image Quality Professor

          Yes, sorry Mac Pro. My mistake…..
          I’ll get back to you!

          All the best,
          Niels

          Reply
        2. The Image Quality Professor

          Hi Dylan,

          Just wanted to give you a heads up.
          We are currently testing a 2013 Mac Pro. I’ll get back to you asap with more info.

          All the best,
          Niels

          Reply
        3. Lionel Kuhlmann Post author

          Hi Dylan,

          We have found the issue you are referring to, and the next software update
          will include a fix for all types of the Mac Pro 2013.
          Using version 7.2 of Capture One, the D700 configured Mac Pro is working
          great already.

          Best regards,
          -Lionel

          Reply
  7. Kees van der Meulen

    Hi Lionel, I am planning to build a Hackintosh rendering workstation shortly.
    Would NVidea GTX 7xxx graphic cards be supported / recognized by Pro 7?
    Also, presumably the 4 GB DDR5 versions would be processing Pro 7 faster then the 2Gb versions?
    I am contemplating either 4096MB Gigabyte GeForce GTX 770 WindForce 3X OC Rev. 2.0 or 2GB Gigabyte Geforce GTX 760.
    Your input would be most welcome.

    Kind regards,
    Kees van der Meulen

    Reply
    1. Lionel Kuhlmann Post author

      Hi Kees.

      If you want the fastest performance of Capture One under Mac OS, you
      should choose the AMD Radeon 7950. This is faster than all Nvidia cards.
      The 770 and 760 are both detected though (770 preferred). We have no
      direct experience with a “hybrid” machine though.

      Regards,
      -Lionel

      Reply
  8. Geroge

    Hi Lionel,

    According to Phase One knowledge base, the latest nVidia GTX7xx and AMD r7/r9 chips are not explicitly supported. The old chips are on their way out, it seems. Regarding your previous response, newer GTX cards are “detected”, but does that mean hw acceleration is actually being utilized or it’s still in the works? I’d be delighted if you could shed some light on this.

    Thanks,
    George

    Reply
    1. Lionel Kuhlmann Post author

      Hi George,

      The current knowledge base needs an update once in a while to stay accurate.

      In general we strive to make all new cards compatible, as long as they deliver good performance. We do not eliminate any new cards, and recently all newer cards from NVidia, AMD and Intel are supported. This includes GTX7xx and AMD r7/r9. Most issues have been found with “laptop” chips, where power requirements sometimes gives less GPU performance than expected.

      Best regards,
      Lionel

      Reply
  9. Federico

    Dear Mr. Kuhlmann,
    I have a question about speed.

    I use Capture one pro mostly in tethered shooting.
    As a photographer my priority is the maximum speed to send files from camera to computer and rende previews to manage as fast and better as is possible the “client feeling” during real time photoshoots.

    I’m planning an hardware update right now and I wanted to ask you if the speed of latest MacBookPro Retina with NVIDIA GeForce GT 750M
    with 2GB VS the new MacPro AMD FirePro D300/500 would show a very significant difference.
    If would be a small difference I would absolutely prefer the notebook at the moment. If huge, I would proceed with the other one.

    Thank you in advance for your help.

    Federico

    Reply
    1. Lionel Kuhlmann Post author

      Hi Federico,

      Maximum speed of previews is not completely processing bound, unless you have a really fast SSD disk – like the one in the new Mac Pro.

      If you compare the speed of the “midrange” Mac Pro, with 6 cores, and the dual D500 GPU – to the best Macbook Pro, you will see a huge benefit in using the new Mac Pro. It is like night and day. Everything is much faster, to screen and to file. Up to a factor of 4-5 times.

      For several reasons, the laptop is optimized for battery life, the Mac Pro for speed. Unfortunately the Nvidia GT 750M is not really optimized to OpenCL, while the D500 is.

      In short – choose the Mac Pro for studio work, and leave the Macbook Pro for field work.

      Regards,

      Lionel

      Reply
    1. Lionel Kuhlmann Post author

      Hi Erin,

      Yes, Capture One 7.2 running the Macbook Pro can utilize OpenCL for the build-in Nvidia GPU. Unfortunately this GPU is quite slow – effectively giving the same performance with and without OpenCL.

      This “problem” is solved by upgrading to the new Mac Pro…

      -Lionel

      Reply
      1. Justin

        Hi Lionel,

        For users of the Late 2013 rMBP with the Iris+GT 750 graphics card, will enabling OpenCL utilize both the Iris and GT750, and thus provide a performance gain over if OpenCL were off?

        Thanks,
        Justin

        Reply
        1. Lionel Kuhlmann Post author

          Hi Justin,

          We are actively working on utilizing both GPU’s of the rMBP 2013. We are not ready to release this feature yet though, and since the rMBP is not optimized for GPU speed (but low power) it is actually faster to process using the CPU alone – unless you also use the CPU for e.g. Photoshop – while processing.

          -Lionel

          Reply
          1. Marius

            Hi Lionel,

            any new status on supporting the GPU of rMBP (late 2013 model)?

            BR,
            Marius

          2. Lionel Kuhlmann Post author

            Hi Marius,

            It’s actually already supported in Capture One 7.2.3.

            Best regards,
            Lionel

  10. Matteo

    Hi Lionel,
    does Capture One openCL processing take advantage in a crossfire / SLI configuration or in these cases only one card will process?
    Thanks in advance.

    Matteo.

    Reply
  11. Joel

    The GPU we have installed in our MacPro is not one of those listed as “Recommended graphics and acceleration cards for ‘Best Performance’.” Since we have an ATI Radeon HD 5770 graphics card with 1 GB of VRAM and it is processing the graphics for a dual display environment — 1 EIZO CG246, 1 Apple LED Cinema Display — can we safely turn on OpenCL processing without any issues?

    Reply
    1. Lionel Kuhlmann Post author

      Hi Joel,

      Yes (but make sure you use OSX 10.9.4 or 10.8.5).

      Best regards,
      Lionel

      Reply
      1. Joel

        Thanks Lionel. I understand there are currently some issues with CaptureOne 7.2.3 and OS X 10.9.4 so we are currently running 10.9.3. Does your response still apply in this scenario?

        Thanks,
        Joel

        Reply
        1. Lionel Kuhlmann Post author

          As far as I know the problematic AMD drivers are in release 10.9.3 and prereleases of 10.9.4. This has only been confirmed on the new Mac Pro. Not the older one with the 5770 card. We have no reports about OpenCL failures using the current OSX 10.9.4 release (or the 10.10 pre-release).

          Now a days 1GB RAM is not a lot. It is enough to run Capture One, but may not be enough if you run Photoshop and Capture One at the same time.

          The knowledge base from our support has not been updated to include the newest and best graphics cards – like the dual AMD D700, or dual AMD R290 (for PC). For the older Mac Pro, the AMD 5770 is about the best you still can buy.

          -Lionel

          Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>