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. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  2. Intel 120GB 530 Series SSD Linux Performance
  3. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
  4. AMD's Windows Catalyst Driver Remains Largely Faster Than Linux Drivers
Latest Linux Articles
  1. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
  2. Is The Open-Source NVIDIA Driver Fast Enough For Steam On Linux Gaming?
  3. Linux 3.18 File-System Performance Minimally Changed But Possible Regressions
  4. AMD Radeon Gallium3D Is Catching Up & Sometimes Beating Catalyst On Linux
Latest Linux News
  1. There's New In-Fighting Over The Future Of Compiz
  2. GTK+ Inspector Gains More Features Ahead Of GNOME 3.16
  3. Clang 3.6 Will Hopefully Have OpenMP Support
  4. A Go Front-End Could Soon Be Landing In LLVM
  5. Linux 3.18-rc6 Released, A Worrisome Regression Remains
  6. HandBrake 0.10 Brings H.265 & VP8 Encoders
  7. Gngr: A New Web Browser Focused On Privacy
  8. Linux 3.18 Kernel: Not Much Change With Intel Haswell Performance
  9. More File-System Tests Of The Linux 3.18 Kernel
  10. Using NVIDIA's NVENC On Linux With FFmpeg
Latest Forum Discussions
  1. Roadmap to Catalyst 14.10 ?
  2. how to configure module phoromatic ?
  3. PulseAudio 6.0 Is Coming & Other Linux Audio Plans For The Future
  4. Debian Developer Resigns From The Systemd Maintainership Team
  5. Updated and Optimized Ubuntu Free Graphics Drivers
  6. Cant get working Kaveri APU - A10-7850k
  7. Script for Fan Speed Control
  8. Debian Init System Coupling Vote Results