Beignet: OpenCL/GPGPU Comes For Ivy Bridge On Linux

Written by Michael Larabel in Intel on 10 January 2013 at 11:23 AM EST. 13 Comments
INTEL
For the open-source Radeon and Nouveau graphics drivers on Linux, OpenCL/GPGPU support has been implemented via the "Clover" OpenCL state tracker with the Radeon/Nouveau drivers built atop the Gallium3D driver architecture. While Intel's latest hardware supports OpenCL with its graphics core, their open-source Linux driver has lacked any support, but that is changing.

With Intel sticking to their Mesa DRI "classic" driver rather than migrating to the Gallium3D driver architecture, they haven't been able to tap the OpenCL state tracker and thus are stuck to coming up with their own implementation. Intel has put out their own closed-source OpenCL SDK that works on Windows and Linux but on the Linux side has been limited to using just the CPU and not integrated with their GPU driver.

Fortunately, fairly quietly over the past several months there's been a new Intel OpenCL Linux effort: Beignet. The open-source Beignet is an OpenCL/GPGPU implementation targeting Ivy Bridge hardware and newer.
Beignet is an open source implementaion of the OpenCL specification - a generic compute oriented API. This code base contains the code to run OpenCL programs on Intel GPUs which bsically defines and implements the OpenCL host functions required to initialize the device, create the command queues, the kernels and the programs and run them on the GPU.
Beignet is an original project and not tied to Gallium3D/Mesa. Fortunately, it's not entirely from scratch, but does leverage the LLVM compiler infrastructure. LLVM is used by the Gallium3D compute support as well as within the proprietary graphics driver from NVIDIA.

Aside from the LLVM dependency, Beignet also relies upon several X11 components and the DRM library for communicating with Intel's kernel DRM driver. The hardware coverage right now has been specifically tested against the Ivy Bridge "GT2" graphics core.

This current OpenCL implementation is not fully complete but still TODO is support for samplers/textures, events, Enqueue\Buffer, full support for images, and state tracking.

Beignet is mostly the work of Ben Segovia out of Intel's Open-Source Technology Center. The code to Beignet is hosted on FreeDesktop.org Git and has seen quite a lot of activity, but unfortunately not any public activity since mid-November. The project's README can be viewed through CGit.

Hopefully Beignet is able to mature and take-off -- along with the Radeon Gallium3D OpenCL support -- so we can finally see OpenCL used more on Linux and become a common component to the Linux desktop.
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