There are multiple versions of OpenCL with different hardware vendors supporting different versions. Each vendor supplies their own OpenCL compiler and drivers, which may not generate the same performance code as other vendor or third-party compilers and drivers targeting the same hardware. NVIDIA&#x27;s support for OpenCL has been lacking. CUDA also has more hardware specific features than OpenCL, which may or may not be relevant for performance depending on the problem. There are also other competing parallel programming models, such as OpenACC, which for example are promoted by Intel for Xeon Phi. Apple has also been criticized by developers over the state of OpenCL support. Not the greatest story for a standard.