Neat Blog

Metal VS OpenCL

Metal API was developed by Apple as an alternative GPU API that would be able to improve performance by offering low-level access to hardware for applications in macOS, iOS and tvOS. Before that, software on Macs mostly used OpenCL to access GPUs for general-purpose computations. In macOS 10.13 and earlier, NVIDIA GPUs could also be accessed via CUDA. Unfortunately, this is no longer the case for more recent versions of macOS that cannot use CUDA. Moreover, Apple computers have been built exclusively with AMD graphic cards for a number of years.

As time passes, more and more applications shift to the new GPU technology, more users update their macOS to the recent versions and more of them choose Metal over OpenCL. Like any new initiative, Metal had it’s own ups and downs, however, it seems to be finding a way to get through. And we believe that with each new update and each new feedback report you and we send to Apple the technology will get neater and neater.

Speed comparison

At this point, we have seen Neat Video’s speed gains up to 40% on Metal compared to OpenCL. However, not all GPUs perform equally well: newer models show great performance increases, while older models work in Metal at the same speed as in OpenCL.

Let’s have a look at the numbers we have got by running Neat Video 5.2 with different settings on various hardware utilizing Metal and OpenCL. The tests used 32-bit color depth data.

As you can see the same hardware working in different settings gives somewhat different performance boost. We hope to see better performance increase with the future updates of Metal itself (as a part of macOS) and updates of Neat Video.

 

AMD GPU modelFrame SizeTemporal RadiusOpenCL, fpsMetal, fpsImprovement, %
Vega II Duo Full HD 2 23.5 32.9 40.0%
Radeon VII Full HD 2 24.1 32 32.8%
RX 5700 XT Full HD 2 20.4 26 27.5%
RX 5700 XT Full HD 5 16.6 20.6 24.1%
RX 5700 XT 4K 2 6.03 8.21 36.2%
RX 5700 XT 4K 5 4.38 5.61 28.1%
RX Vega 64 Pro 580 2 20.2 25 23.8%
RX 480 Full HD 2 14 15.7 12.1%
RX 480 Full HD 5 10.3 12 16.5%
RX 480 4K 2 3.78 4.45 17.7%
RX 480 4K 5 2.72 3.38 24.3%
D500 Full HD 2 10.5 10.7 none
D500 Full HD 5 6.76 6.95 2.8%
D500 4K 2 2.8 2.97 6.1%
D500 4K 5 1.63 1.95 19.6%
Pro 580 Full HD 2 13.2 13 none
Pro 580 Full HD 5 9.37 9.63 2.8%
Pro 580 4K 2 3.61 3.84 6.4%
Pro 580 4K 5 2.58 2.81 8.9%

How to switch to metal

If you have a macOS 10.15 computer that have never run Neat Video 5 before, a freshly installed copy of Neat Video 5.2 will be using Metal by default. The only thing you will be required to do is to enable GPU acceleration. To do that go to Neat Video’s menu Tools > Preferences > Performance and run Optimize Settings test to check which devices (CPU, GPU or both) will deliver the best performance. Once the test finishes, accept the best combination of CPU cores and GPU(s) recommended by the optimizer.

Those of you who have had Neat Video 5 installed prior to updating to v5.2 will need to proceed to Tools > Preferences > Performance and click the Advanced Settings button. This will bring up the Advanced GPU Settings dialog where you can switch from OpenCL to Metal. You will also need to restart both Neat Video and your video editing software to apply the changes.

As with any new technology, minor issues may occur in some unforeseen circumstances , so if you are experiencing any abnormal speed degradation or errors when working with Metal-based GPU acceleration, try switching back to OpenCL the same way as described above, for a test to see if it works correctly there. Please also report such problems to us. Having said that we would like to admit that so far things have been really smooth with Metal.