AnsweredAssumed Answered

Current status of OpenCL for a SI (R7 370) in Linux

Question asked by userxx on Feb 19, 2019
Latest reply on Feb 20, 2019 by dipak



As I asked in Linux OpenCL not working AMDGPU-PRO (max global size 0, CL_OUT_OF_HOST_MEMORY), the problem persist.


I tried both in Arch and in Ubuntu 18.04.
If I go for mesa + amdgpu open source drivers for GPU + amdapp sdk opencl for CPU, I can work with a recent kernel, AMD OpenCL driver for CPU in OpenCL 1.2 and mesa (clover) for GPU, but in OpenCL 1.1. Also, CodeXL does not detect the GPU, therefore, it is useless.


If I try to install amdgpu-pro, it doesn't matter if in Ubuntu or in Arch, It does not work. If I mix the opensource stack amdgpu + the opencl version of amdgpu-pro (like the AUR package opencl-amd AUR (en) - opencl-amd ), the system works, clinfo reports OpenCL 1.2 version, but when I try to use in a simple test (BinomialOption from AMDAPPSDK, but it can be any test) using it... it fails with CL_OUT_OF_HOST_MEMORY). So, it seems some sort of bug from the driver.

Seriously, I have been like 5 days trying to use OpenCL in Linux with no luck. Of course, I can use with mesa, but then it will be OpenCL 1.1 and no support from tools like CodeXL. How can be possible that AMD is supporting OpenCL but it is so complex to be usable. Impossible that a normal user would spend not even 1 hour configuring the system to be able to use OpenCL appropriately. I even tried fglrx, but it gave me even more problems.


Is there any well-known configuration that works? I mean, the range of kernel versions, xorg versions, amdgpu / amdgpu-pro stack... that just works. I don't mind about the distro, I will just switch to it if it manages the GPU without taking from me days of life. I tried many things, but I am completely blind doing my tests. I read many forum posts, blogs, wikis, ... I found more people lost.

My summary so far about this "promising" technology:

- NVIDIA doesn't care about OpenCL.
- AMD (looks like) cares, but only in the newest devices.

Now, even more frameworks/languages/things (hip, rocm, ...), and the user is completely lost about what would be the most stable technology.