oneAPI for AMD GPUs and ROCM 5.x

Hello!

It appears that the PI plugin for AMD GPUs is linked against ROCm 4.x:

$ SYCL_PI_TRACE=-1 sycl-ls
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_opencl.so [ PluginVersion: 11.15.1 ]
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_level_zero.so [ PluginVersion: 11.15.1 ]
SYCL_PI_TRACE[basic]: Plugin found and successfully loaded: libpi_cuda.so [ PluginVersion: 11.15.1 ]
SYCL_PI_TRACE[-1]: dlopen(/opt/intel/oneapi/compiler/2023.0.0/linux/lib/libpi_hip.so) failed with <libamdhip64.so.4: cannot open shared object file: No such file or directory>
SYCL_PI_TRACE[all]: Check if plugin is present. Failed to load plugin: libpi_hip.so
...

$ ldd /opt/intel/oneapi/compiler/2023.0.0/linux/lib/libpi_hip.so 
        linux-vdso.so.1 (0x00007fff73dea000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f69b4bad000)
        libamdhip64.so.4 => not found
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f69b49cb000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f69b487a000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f69b4688000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f69b4e0c000)

$ ls -alh /opt/rocm/lib/libamdhip64.so*
lrwxrwxrwx 1 root root  16 Dec  7 04:37 /opt/rocm/lib/libamdhip64.so -> libamdhip64.so.5
lrwxrwxrwx 1 root root  24 Dec  7 04:37 /opt/rocm/lib/libamdhip64.so.5 -> libamdhip64.so.5.4.50401
-rw-r--r-- 1 root root 26M Dec  7 04:37 /opt/rocm/lib/libamdhip64.so.5.4.50401

Is there a version of the HIP PI plugin linked against ROCm 5.x? ROCm 5.0 was released in February, so one might expect the 5.x branch to be relatively popular already.

(building from source is an option, of course, but that’s not very user-friendly)

Thanks for the post. We’ve had a think about this since as you say at the moment we build against ROCm v4.
We’re thinking about how we can support multiple versions in the future but in the meantime your options are to compile from source (as you also suggested) or to install v4 alongside v5 and link against v4.

There are instructions on how to install multiple ROCm versions here in case that helps.

1 Like

For oneAPI 2023.1, there is the version of the plugin with ROCm 5.4.3 support (works for other 5.4.x versions as well, in my experience). :tada:

1 Like

Thanks for adding this, we have added expanded support for ROCm versions.