GalliumCompute (original) (raw)

  1. Current Status
  2. Hardware
    1. AMD / Radeon
      1. Supported GPUs
      2. Supported Linux Kernel Versions
      3. How to Install
      4. Testing
      5. Troubleshooting
      6. Working Applications
      7. Todo

Current Status

| | cpu (llvmpipe) | nv50 | nvc0 | r700 | Evergreen/NI | Cayman | Southern/Sea Islands | | | ------------------------------ | -------- | -------- | -------- | ---------------- | ---------- | ------------------------ | ------ | | gallium hw interface | N/A | MOSTLY | MOSTLY | TODO | MOSTLY | MOSTLY | MOSTLY | | handling GPU buffers | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | execute TGSI compute shader | TODO | TODO | TODO | TODO | N/A | N/A | N/A | | execute LLVM-IR compute shader | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | performance profiling | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | global address space | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | local address space | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | private address space | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | constant adress space | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | local sync | TODO | TODO | TODO | TODO | DONE | DONE | DONE | | global sync | TODO | TODO | TODO | N/A | WIP | WIP | DONE | | local atomics | TODO | TODO | TODO | N/A | DONE | DONE | DONE | | global atomics | TODO | TODO | TODO | N/A | WIP | WIP | DONE | | 2D image read | TODO | TODO | TODO | TODO | TODO | TODO | TODO | | 3D image read | TODO | TODO | TODO | N/A | TODO | TODO | TODO | | 2D image write | TODO | TODO | TODO | TODO | TODO | TODO | TODO | | 3D image write | TODO | TODO | TODO | N/A | TODO | TODO | TODO | | accurate4 arithmetics | TODO | TODO | TODO | TODO | MOSTLY7 | MOSTLY7 | DONE | | OpenCL5 1.0 | TODO | TODO | TODO | N/A6 | WIP | WIP | MOSTLY | | OpenCL 1.1 | TODO | TODO | TODO | N/A | WIP | WIP | MOSTLY | | OpenCL 1.2 | TODO | TODO | TODO | N/A | WIP | WIP | WIP | | OpenGL interoperability | TODO | TODO | TODO | TODO | TODO | TODO | TODO |

4 OpenCL defines some level expected accuracy. Some hardware doesn't support it, so we need software emulation

5 OpenCL front-end is a separate project, we aim to support all features needed by the front-end to implement the standard

6 Only partial OpenCL support is possible, support through vertex shaders.

7 Mostly reliable for float and integer types. char, short, long, and double types need more testing.

Hardware

AMD / Radeon

Supported GPUs

Supported Linux Kernel Versions

How to Install

Getting the source code

Building

  1. LLVM / Clang:
cd llvm/  
mkdir build  
cd build/  
../configure --enable-targets=x86,amdgpu --enable-shared  
make -j3 && make install  
  1. libclc:
cd libclc/  
./configure.py  
make  
make install  
  1. Mesa:
cd mesa/  
./autogen.sh --with-dri-drivers="" --with-gallium-drivers=r600,radeonsi --enable-opencl  
make -j3  
make install  

Testing

Troubleshooting

Working Applications

NOTE: This is not a complete list

./bfgminer  -o mining.eligius.st:3334 -O addr:pass --gpu-threads=1 -I10 -v4 -k phatk  

Todo

R600ToDo#Compute