Intel's latest NEO OpenCL Driver Claims Support For OpenCL 3.0 On All Intel Chips Going Back To Broadwell
Intel's latest NEO OpenCL driver, now going by the name Compute-Runtime since it has gained support for more than just OpenCL compute, claims to have OpenCL 3.0 support on all Intel chips going back to Broadwell. It doesn't actually support OpenCL 3.0 on anything other than Intel's latest Tiger Lake chips, but it does claim to.
written by 윤채경 (Yoon Chae-kyung). published 2020-09-11 - last edited 2020-10-11
The Intel NEO driver for OpenCL support on Intel chips is now, by Intel, called Intel(R) Graphics Compute Runtime for oneAPI Level Zero and OpenCL(TM) Driver. The reason for this new name is the addition of oneAPI Level Zero support in the NEO driver.
"oneAPI Level-Zero" is a in principle open programming API pushed by Intel aiming to
"provide direct-to-metal interfaces to offload accelerator devices"
Intel is the only one who supports oneAPI, so it might as well be CUDA. There's no application support so it's utterly irrelevant to anyone who's not a programmer with a desire to write compute code that will only run on Intel hardware. The OpenCL support is, for now, what's interesting.
Intel made a rather bold change to their Graphics Compute Runtime (NEO) on October 7th with a commit titled "Enable OpenCL 3.0 by default on all devices". Previous versions were limited to OpenCL 2.1 support on Intel iGPUs going back to Broadwell with Apollo Lake and Gemini Lake being exceptions that were limited to OpenCL 1.2. The change to Intel's Graphics Compute Runtime gives all the chips supported by that runtime the ability to run OpenCL 3.0 code. Older chips from the Haswell, Bay Trail, Ivy Bridge and Sandy Bridge families were never supported by NEO and they still aren't.
The latest Graphics Compute Runtime v20.40.18075 releases page lists OpenCL 2.1 as a "quality expectations" for most Intel chips. That version was released two days after the change that enabled OpenCL 3.0 on all the chips. A similar story appears if you run
clinfo with that version installed:
ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.13 ICD loader Profile OpenCL 3.0 NOTE: your OpenCL library declares to support OpenCL 3.0, but it seems to support up to OpenCL 2.2 only.
The OpenCL 3.0 specification wasn't set in stone until early September so there's not yet anything actually using or requiring OpenCL 3.0. That may be why the NEO driver doesn't actually support OpenCL 3.0 even though it now claims it does. An educated guess says that Intel plans to add actual OpenCL 3.0 for all their existing iGPUs sometime in the near future.
Intel is only releasing source code and Ubuntu packages for their Graphics Compute Runtime. It might as well not exist if you're using another distribution.
Ubuntu users can find packages and installation instructions for the latest Graphics Compute Runtime v20.40.18075 at github.com /intel/compute-runtime/releases. It is possible to convert those .deb packages to other formats using alien but your mileage will vary. Converted packages make LuxMark immediately crash and burn upon startup so it's not something you can rely on (we did not test LuxMark with the Ubuntu packages on Ubuntu, the result may or may not be the same).