NVIDIA Appears To Finally Be Prepping OpenCL 2.0 Driver Support
Embarrassingly, NVIDIA hasn't supported OpenCL 2.0 by their drivers as they have been more focused on their own GPU computing standard, CUDA. Their drivers have been limited to OpenCL 1.2 even while the OpenCL 2.0 specification is over three years old and a NVIDIA employee is who leads The Khronos Group. Fortunately, in 2017, it's looking like things are changing.
This week NVIDIA released the 378.66 driver for Windows and notably it includes "evaluation support" for OpenCL 2.0.
As of writing they haven't yet released an OpenCL 2.0 Linux driver, but that's only a matter of time to follow with it landing in the Windows driver and Linux GPU computing being of much importance to NVIDIA. OpenCL 2.0 is what AMD's proprietary OpenCL driver stack has supported for years and recently Intel's Beignet stack rolled out CL 2.0. Let's just hope the turnaround time to them supporting OpenCL 2.1 won't be as long.
OpenCL 2.0 introduced C11 atomics, support for pipes, images support, a generic address space, shared virtual memory, and other improvements. OpenCL 2.1 meanwhile from 2015 is what brought SPIR-V support in common with Vulkan, OpenCL C++ derived from C++14, new subgroup features, low-latency device timer queries, and other improvements. OpenCL 2.2 meanwhile is available in provisional form.