Intel's Latest Compute Code Is Enabling OpenCL 3.0 For All Hardware Since Broadwell
Intel's next Compute Runtime release is going to be exciting as OpenCL 3.0 will be enabled for all graphics hardware found going back to Broadwell CPUs.
On Friday Intel released Compute-Runtime 20.40.18075 as their latest OpenCL / oneAPI Level Zero stack update with an updated IGC compiler and L0 loader. This release continues offering Level Zero 1.0 support for all hardware back to Skylake. On the OpenCL side, Intel continues providing OpenCL 3.0 support for the very latest Tiger Lake / Gen12 Xe Graphics while older generations are on OpenCL 2.1.
Initially that was a disappointment when previously hearing Intel would be quickly exposing OpenCL 3.0 for pre-Tigerlake hardware once the 3.0 specification was ratified. OpenCL 3.0 was made official at the end of September by The Khronos Group.
While initially disappointed seeing the previous generations still on OpenCL 2.1, when doing some Friday night code diving it turns out OpenCL 3.0 is enabled in the very latest Compute-Runtime code! Thus the next tagged release towards the end of next week or so will be shipping OpenCL 3.0 by default.
OpenCL 3.0 is enabled by default for all hardware supported by the Compute-Runtime stack, which is back to Broadwell Gen8 graphics. Haswell and older isn't supported at all by this compute stack but for those interested there is the older Beignet code in its dormant state for that aging hardware.
So long story short, the latest Compute-Runtime Git code enables OpenCL 3.0 for Broadwell through Icelake while Tiger Lake already had the support by default. The next release should be about in about one week given their roughly weekly cadence between tagged versions.
This will also be the first major open-source OpenCL 3.0 driver implementation. Gallium3D Clover is working on OpenCL 3.0 but not yet merged. Radeon's ROCm doesn't yet support OpenCL 3.0 and I haven't heard any word when that support might be available.