Latest 20.41.18123 Intel NEO OpenCL Driver Claims "Production" OpenCL 3.0 Quality On All Intel CPUs Going Back To Broadwell
Intel made their Neo Graphics Compute-Runtime OpenCL claim to have OpenCL 3.0 support on all chips going back to Broadwell in the v20.40.18075. The latest v20.41.18123 goes one step further by having that same claim in the release-notes. There's also a new
clinfo warning regarding the supposed OpenCL 3.0 support.
written by 林慧 (Wai Lin). published 2020-10-16 - last edited 2020-10-17
Intel's release note story regarding their latest Neo Compute-Runtime library is:
- Enabled OpenCL 3.0 by default on all devices
- Added new DG1 device
- Enabled cl_khr_subgroup_extensions
- Updated IGC to 1.0.5186
- Updated gmmlib to 20.3.1"
Filip at Intel "enabled" OpenCL 3.0 on all NEO-supproted Intel iGPUs (all Broadwell and newer) with a code-commit titled "Enable OpenCL 3.0 by default on all devices" on October 7th. That commit was a part of the Intel Graphics Compute Runtime v20.40.18075 released two days later. That version claimed to have OpenCL 3.0 in the ICD loader profile even though it in reality did not.
Intel did not update the supposedly supported OpenCL version in the release-notes for v20.40.18075. That's changed with today's release of Intel Graphics Compute Runtime 20.41.18123. Intel's story is that this version of the compute driver has "Production" level support for OpenCL 3.0 on all the Intel graphics chips the NEO compute driver supports.
A close-up inspection of
clinfo on a Broadwell powered Intel machine reveals that Intel's story doesn't hold much water:
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. NOTE: your OpenCL library only supports OpenCL 2.2, but some installed platforms support OpenCL 3.0. Programs using 3.0 features may crash or behave unexpectedly
That last little warning is new. The last version said "your OpenCL library declares to support OpenCL 3.0, but it seems to support up to OpenCL 2.2 only" but there was no mention of a possibility that it could "crash or behave unexpectedly". Intel is right about that claim.
Starting LuxMark with today's Neo Graphics Compute-Runtime v20.41.18123 makes it immediately crash and burn, just like it did with v20.40.18075.
GNU Debugger Story regarding the latest Graphics Compute-Runtime's ability to run LuxMark.
It's possible to start LuxMark with
--mode=PAUSE to stop it from foolishly starting a benchmark immediately upon launch. That makes it possible to configure it and disable the "optimizations" that either make it crash or render an incorrect image on everything but Nvidia GPUs. Disabling those optimizations helps the AMD ROCm driver, but it doesn't help Intel's NEO OpenCL driver - LuxMark crashes with it no matter how you try to run it's benchmarks.
clpeak does work fine with the Intel NEO OpenCL driver. It's a really good benchmark if you enjoy looking at lists of meaningless numbers in a terminal. There's also one actually practically useful application for this driver: LibreOffice 7.
LibreOffice requires a OpenCL stack capable of OpenCL 2.0, at minimum, to enable OpenCL support in Calc (in ▸ ▸ ▸ ). The Mesa Clover OpenCL library GNU/Linux distributions ship and enable by default is limited to OpenCl 1.1. Installing the latest and greatest Intel Graphics Compute-Runtime will let you enable OpenCL in LibreOffice Calc for that warm fuzzy feeling you get from knowing you're using the technology. There does not appear to be any practical difference between OpenCL support being enabled or disabled beyond a small notice saying in the box.
The latest Intel NEO OpenCL driver can be acquired from github.com/intel/compute-runtime/releases/tag/20.41.18123. There's just
.deb packages for Ubuntu, you will have to convert them with alien if you want to use them on another distribution (and add
/usr/local/lib/ to your
ld.so.conf since Intel's packages put libraries there for some odd reason).