1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Running OpenCL On The GPU With Gallium3D

Mesa

Published on 23 January 2013 04:00 AM EST
Written by Michael Larabel in Mesa
22 Comments

With all of the recent improvements going into Mesa/Gallium3D, along with some work advancements to the AMD GPU LLVM back-end, it's slowly becoming a suitable time for enthusiasts wishing to experiment with OpenCL on the open-source Linux graphics stack through Gallium3D and the "Clover" state tracker.

OpenCL support in Gallium3D is still far from complete and not yet comparable to the proprietary OpenCL/GPGPU offerings bundled within the proprietary AMD and NVIDIA Linux graphics drivers. In reality, it will probably be at least another year before open-source OpenCL is in good shape for the Linux desktop. At this point, there's just some simple OpenCL demos working for select graphics processors on Nouveau and Radeon.

The overview of the status and setup/installation instructions can be found on the Gallium Compute Wiki page. (Though it may take a few times to get the FreeDesktop.org Wiki to load due to errors, the FDo/Xorg server infrastructure continues to suffer badly from problems; 503 Service Unavailable, among other issues.)

For the Nouveau and Radeon drivers, most of the OpenCL/GPGPU-related items for Gallium3D remain marked as "TODO" with the only "MOSTLY" completed items being the Gallium3D hardware interface for general purpose GPU computing. There's also ambitions for CPU-based OpenCL support using the LLVMpipe driver, but there the support is very primitive.

The hardware with the best open-source OpenCL support right now is the "R800" / Evergreen series. The Radeon HD 5000 "Evergreen" GPUs is "DONE" when it comes to the non-Gallium3D test code, executes LLVM-IR compute shaders, and supports the global address space. Mostly working for the AMD HD 5000 series GPUs with this Gallium3D OpenCL code is having figured out the appropriate hardware interface, executing binary compute shaders, handling GPU buffers, and accurate arithmetics.

For the AMD Evergreen generation, it's a work-in-progress still in supporting the constant and private address spaces and then OpenCL 1.0/1.1 compliance. Items not even touched yet are performance profiling, the local address space, local/global sync, local/global atomics, 2D/3D image reading/writing, and OpenGL interoperability. In monitoring this situation for years, I'd be very rather surprised if there is satisfactory OpenCL Gallium3D support for end-users this calendar year.

The AMD Radeon HD 6000 "Northern Islands" graphics cards are also in similar standing to the Radeon HD 5000 graphics hardware.

Playing with the experimental OpenCL support over Radeon Gallium3D currently involves building LLVM with the experimental AMD R600 GPU back-end from Tom Stellard's Git repository (until LLVM 3.3 is released later this year with the AMD GPU back-end merged), building Clang 3.2 from the upstream source, building libclc - the OpenCL C Library, and building Mesa from Git with the --enable-opencl switch to tap this experimental feature. The Wiki states there are some (simple) OpenCL examples working with Clover and R600g while also there are some OpenCL regression tests beginning to appear in Piglit.

See the Gallium Compute page for all of the latest details. There's also an R600 Compute TODO list for developers interested and capable of helping out.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  2. Intel Pentium G3258 On Linux
  3. SilverStone Precision PS10
  4. ASRock Z97 Extreme6
Latest Linux Articles
  1. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  2. KVM Benchmarks On Ubuntu 14.10
  3. X.Org Server 1.16 Officially Released With Terrific Features
  4. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
Latest Linux News
  1. A New Video Has Us Real Excited About The New UT For Linux
  2. CoreOS Experiences Its First Stable Release
  3. GNOME 3.13.4 Continues Working On Wayland & More
  4. Wine 1.7.23 Has Initial Support For 64-bit Android Builds
  5. FreeBSD Developing A New Automounter, Other Features
  6. Guix 0.7 Can Now Install The GNU Operating System
  7. X.Org Foundation Still Works Towards Becoming An SPI Project
  8. Open-Source AMD Hawaii Support Should Now Be Working!
  9. KDE Developers Continue Working Toward Wayland Support
  10. Ubuntu 14.04.1 LTS Released
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  3. Radeon related kernel bug??
  4. how the US intellegentia operates:
  5. AMD Publishes Open-Source Linux HSA Kernel Driver
  6. Next-Gen OpenGL To Be Announced Next Month
  7. Open-Source Radeon Performance Boosted By Linux 3.16
  8. Remote gui not accessible in Phoronix Test Suite 5.2