For Now Intel's Beignet Seems Better Off Than Radeon Gallium3D Clover

Written by Michael Larabel in Mesa on 12 September 2014 at 03:36 PM EDT. 46 Comments
MESA
While Intel's Beignet project for providing open-source OpenCL support for their hardware on Linux was widely criticized upon its debut for being a new project rather than basing the work on Gallium3D's "Clover" OpenCL state tracker, Beignet has matured much more quickly and for now at least seems to be better off than the Gallium3D OpenCL support.

Given my recent positive experiences trying Beignet for OpenCL with Intel HD Graphics on Linux, after my latest RadeonSI (4K) Gallium3D benchmarks I decided to try running some fresh tests of the open-source Radeon Gallium3D compute/GPGPU benchmarks. The code was the Linux 3.17 kernel for the latest Radeon DRM and using the Oibaf PPA for Mesa 10.4-devel with the latest libclc, etc. A recent daily snapshot of Ubuntu 14.10 was the host.

After fetching the latest packages, I first ran clinfo (the OpenCL equivalent to glxinfo for obtaining the adapter information), but all that was reported was "E: -30." It appears to be this bug with the clinfo package itself. Mesa's OpenCL ICD only exposes OpenCL 1.1 and is affected by an issue pertaining to CL_DEVICE_BUILT_IN_KERNELS as explained by that bug report.

I decided then to try to run LuxMark straight-away but for each of the OpenCL tests on the GPU, the application was just crashing. Next I was trying to run some OpenCL tests like JuliaGPU and MandelbulbGPU, but those too were failing. Those failures appeared to be over the OpenCL implementation not supporting the "static" storage class specifier.


The only OpenCL test that passed was x264-opencl but it's not even clear that it was really running off the GPU and is a test not known to be too optimal for benefiting from OpenCL.

Hopefully some of the Radeon open-source OpenCL support will improve a bit by the time of Fedora 21's debut (end of year) given they're planning for out-of-the-box support while most other tier-one Linux distributions don't even bother packaging/supporting the open-source OpenCL code. From this initial experience so far, while Radeon GPUs may be much more powerful than Intel HD Graphics, Beignet is more mature than the Gallium3D compute stack for the time being. Beignet is OpenCL 1.2 capable, works with Ivy Bridge graphics processors and newer, and is a relative breeze to setup on a modern Linux installation. It's important to point out though that Beignet is now backed by Intel's entire China OTC graphics team with constant progress while the Radeon LLVM/compute code is mostly maintained by one developer (Tom Stellard). When it comes to the open-source Nouveau driver supporting OpenCL/Clover, there's been work in the past but no one actively working on fully exposing the NVIDIA hardware's capabilities for compute.

For running OpenCL on the CPU (such as in cases of testing or fall-back purposes), POCL is also turning out nicely. Hopefully in the months ahead the open-source Linux OpenCL support will be better off as a whole. We're also still waiting for AMD to really exploit HSA on Linux that will hopefully happen in the next few months.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week