Unable to use AMDGPU.jl on RX6600

I am trying to use AMDGPU.jl but it installs with several errors and does not work.

Operating Systems: Fedora and Endeavor OS
Julia version: 1.11.4 installed via the curl command on the Julia website

julia> using AMDGPU
┌ Warning: HSA runtime is unavailable, compilation and runtime functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:168
┌ Warning: HIP library is unavailable, HIP integration will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:195
┌ Warning: rocBLAS is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206
┌ Warning: rocSPARSE is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206
┌ Warning: rocSOLVER is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206
┌ Warning: rocRAND is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206
┌ Warning: rocFFT is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206
┌ Warning: MIOpen is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/AMDGPU.jl:206

Then i tried allocating a ROCArray:

julia> a = zeros(10, 10)
10×10 Matrix{Float64}:
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0

julia> b = ROCArray(a)
ERROR: could not load symbol "hipDeviceGet":
/home/bpsomu/.julia/juliaup/julia-1.11.4+0.x64.linux.gnu/bin/julia: undefined symbol: hipDeviceGet
Stacktrace:
  [1] macro expansion
    @ ~/.julia/packages/AMDGPU/BgSqf/src/hip/call.jl:38 [inlined]
  [2] macro expansion
    @ ~/.julia/packages/AMDGPU/BgSqf/src/utils.jl:122 [inlined]
  [3] hipDeviceGet(device::Base.RefValue{Ptr{Nothing}}, ordinal::Int64)
    @ AMDGPU.HIP ~/.julia/packages/AMDGPU/BgSqf/src/hip/libhip.jl:14
  [4] HIPDevice(device_id::Int64)
    @ AMDGPU.HIP ~/.julia/packages/AMDGPU/BgSqf/src/hip/device.jl:15
  [5] TaskLocalState
    @ ~/.julia/packages/AMDGPU/BgSqf/src/tls.jl:11 [inlined]
  [6] #25
    @ ~/.julia/packages/AMDGPU/BgSqf/src/tls.jl:27 [inlined]
  [7] get!(default::AMDGPU.var"#25#26"{Tuple{}}, d::IdDict{Any, Any}, key::Any)
    @ Base ./iddict.jl:171
  [8] task_local_state!()
    @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/tls.jl:26
  [9] device
    @ ~/.julia/packages/AMDGPU/BgSqf/src/tls.jl:45 [inlined]
 [10] ROCArray{Float64, 2, AMDGPU.Runtime.Mem.HIPBuffer}(::UndefInitializer, dims::Tuple{Int64, Int64})
    @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/array.jl:9
 [11] ROCArray
    @ ~/.julia/packages/AMDGPU/BgSqf/src/array.jl:111 [inlined]
 [12] ROCArray
    @ ~/.julia/packages/AMDGPU/BgSqf/src/array.jl:116 [inlined]
 [13] ROCArray(A::Matrix{Float64})
    @ AMDGPU ~/.julia/packages/AMDGPU/BgSqf/src/array.jl:119
 [14] top-level scope
    @ REPL[5]:1

Is it because my GPU RX6600 is unsupported by ROCm right now? If so, is there a way to still use hacks to get it to run?

I am using this command in my .bashrc file to make AMDGPU work with a Ryzen 7840U CPU which is not officially supported:

export HSA_OVERRIDE_GFX_VERSION=11.0.2

A similar command might work for you.

Try:

export HSA_OVERRIDE_GFX_VERSION=10.3.0

See: Support for RX6600XT (gfx1032,navi23)? · Issue #1698 · ROCm/ROCm · GitHub

2 Likes

I used the following guide to install ROCm on my Linux distro:

Which also included adding

export HSA_OVERRIDE_GFX_VERSION=10.3.0

now, AMDGPU.jl works on Arch. Thanks. It still does not work on Fedora though.

1 Like

While the fix you suggested worked on my Arch linux installation after I installed ROCm from the ArchUserRepository (AUR). It did not work on my Fedora install even after I installed ROCm through the dnf package manager. Still looking for a fix there.