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. A Walkthrough Of The New 32 System Open-Source Linux Benchmarking Test Farm
  2. Habey MITX-6771: Mini-ITX Board With Quad-Core J1900 Bay Trail
  3. OCZ Vector 150 SSD On Linux
  4. Noctua i4 CPU Cooler: Great For Cooling High-End LGA-2011v3 CPUs
Latest Linux Articles
  1. AMD Kaveri: Open-Source Radeon Gallium3D vs. Catalyst 14.12 Omega Driver
  2. 12-Way AMD Catalyst 14.12 vs. NVIDIA 346 Series Linux GPU Comparison
  3. AMD Catalyst 14.12 Omega Driver Brings Mixed Results For Linux Users
  4. 6-Way Winter 2014 Linux Distribution Comparison
Latest Linux News
  1. An Open Hardware Random Number Generator Proposed
  2. LLVM 3.6 Will Be Branched Next Month
  3. Opera Browser Puts Out Linux Updates For The Holidays
  4. GNOME Shell 3.15.3 Adds Support For High-Contrast Themes
  5. Linux 3.19: ThinkPad Muting Redone, New Dell Backlight Support, Acer Is Banging
  6. KVM Drops Support For IA64 While Adding Various x86 Improvements
  7. GCC 4.8.4 Officially Released
  8. FSF's High Priority Project List Now Has A Committee
  9. Details On Using OpenACC & GPUs With GCC
  10. Ubuntu 15.04 Alpha 1 For Its Various Flavors
Latest Forum Discussions
  1. The New SuperTuxKart Looks Better, But Can Cause GPU/Driver Problems
  2. Need some hand holding with upgrading xserver
  3. XLennart: A Game For Systemd Haters With Nothing Better To Do
  4. Debian init discussion in Phoenix Wright format
  5. FPS capped on Linux (AMD fglrx drivers)
  6. Are there an app using HSA ?
  7. Bench specific mount point
  8. Tool for measuring FPS in games