Benchmarking The Current Intel OpenCL NEO Driver Compute Performance On Ubuntu 19.04
With the recent release of Ubuntu 19.04, the new Intel OpenCL NEO compute stack is available in the archive as "intel-opencl-icd" for easy installation. The former Intel open-source OpenCL "Beignet" driver remains available too, for which we took it for a fun round of benchmarking comparison for seeing how these Intel OpenCL Linux drivers currently compete to just running on the CPU via POCL.
The Intel OpenCL NEO driver stack has matured a lot since it originally took shape in early 2018 and they appear to be further ramping up their OpenCL NEO efforts this year presumably around their SYCL LLVM effort and ultimately the Intel "oneAPI" vision and also important for Xe Graphics discrete hardware. The former Beignet OpenCL driver hasn't been maintained now given OpenCL NEO is the future but does remain available in Ubuntu and other archives for those wanting to run this older driver; for our purposes, Skylake hardware with Iris Pro 580 graphics was used today for being able to compare the former and current/new OpenCL implementations on Ubuntu 19.04.
Following the recent Intel Gallium3D driver benchmarks for that separate new OpenGL effort, I ran these OpenCL benchmarks using an Intel Skylake NUC featuring the Core i7 6770HQ with Iris Pro 580 Graphics that is well supported by both OpenCL NEO and Beignet. Besides NEO being the newer/supported driver and ultimately offering better performance as you'll see, for Skylake it also means OpenCL 2.1 support where as Beignet tapped out at OpenCL 2.0.
The OpenCL NEO driver supports OpenCL 2.1 currently for Broadwell hardware (its base requirement) and newer while Geminilake/Apollolake are limited to OpenCL 1.2. Intel considers this OpenCL stack to be production-ready for Skylake through Coffeelake while there is initial Icelake/Gen11 support staged as a "pre-release" effort.
When installing the new intel-opencl-icd package on Ubuntu 19.04, this Intel OpenCL driver was working out great. Some of the other Linux distributions currently offering packages of NEO are Arch Linux and Clear Linux as outlined here.
In addition to comparing the Beignet vs. NEO performance with the Iris Pro Graphics, there are CPU results when using POCL for running the OpenCL back-end on the Skylake cores itself. The POCL tests were mostly for fun in not benchmarking the Portable Computing Language implementation recently. POCL currently is able to expose its "soft" OpenCL 1.2 support on CPUs and being curious how that compares to the Intel OpenCL performance when both the graphics and processor cores are sharing the same TDP.
All of these OpenCL compute benchmarks were run via the Phoronix Test Suite.