ROCm 3.7 and OpenCL Image Support

AMD has released ROCm 3.7.

I’ve updated today and found and interesting change which I don’t see documented.

Till now there was a package called hsa-ext-rocr-dev. This packaged included a library called libhsa-ext-image64.so which provided the OpenCL Image Support which is used by raw processors like darktable. It was in an extra package because there was no Open Source implementation ready so they shipped a binary only library which probably contained the code from AMDGPU-Pro driver.

With 3.7 this package is gone and also the library.

# find /opt/rocm-3.7.0/ -type f | ag image
/opt/rocm-3.7.0/include/hsa/hsa_ext_image.h
# rpm -qf /opt/rocm-3.7.0/include/hsa/hsa_ext_image.h
hsa-rocr-dev-1.2.30700.0_rocm_rel_3.7_20_99e66a7a-1.x86_64

If we check the ROCR repositry, the file has been added with 3.7.

It looks like ROCm 3.7 has an Open Source Image Support implementation for OpenCL:

5 Likes

I just hope DaVinci Resolve works after this update XD

Hi! Found your post while looking for information about AMD graphics cards and OpenCL support, specifically for Darktable.

I have an AMD RX 580, and I would like to use OpenCL when working with Darktable. However I discovered that OpenCL was disabled, and I cannot enable it in Darktable.

I’m quite confused at the current situation. From what I understand, the amdgpu drivers that come by default with my Linux distribution (Ubuntu 20.04) does not support OpenCL out of the box. I then have two options:

  • Installing OpenCL support from the amdgpu-pro drivers
  • Installing ROCm

Do you know what’s the difference between the two? Why isn’t OpenCL support present by default in the default AMD stack on Linux?

Thanks!

amdgpu-pro is proprietary, rocM is open source. rocM is newer and may not have all the things, but it does support openCL

Thanks, I had missed the most important part! (open source Vs. proprietary) Do you know why OpenCL is not part of the amdgpu implementation? Is it because amdgpu is part of MESA, and MESA does not include OpenCL-related things?

This is an interesting question. I’m trying to understand why there are no ROCm packages available in some Linux distributions. As far as I know it’s something about the license, because AMD only provides the binaries and no complete packages like they and Nvidia do for the proprietary drivers.

Packages for different distros are available here: Index of /rocm/

As it is open source you can package it for each distro out there youreself …

1 Like

This assumes that you can pack packages yourself. :wink: And at least for Solus the developers did not provide any packages yet, because – if I understood correctly – there are problems with license compatibility. Also resolving the dependencies from the centOS packages seems not to be trivial.
I also tried recently to install ROCm under Linux Mint according to the instructions and already that did not work.

But I don’t understand if the project is so far advanced that it is not packed as a driver like the proprietary driver from AMD. They should be able to either integrate it into the proprietary driver or offer it on its own?

It worked just fine for me with openSUSE.