Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for ROCm 5.7.1 #522

Closed
AbhinavPraveen opened this issue Oct 20, 2023 · 9 comments
Closed

Support for ROCm 5.7.1 #522

AbhinavPraveen opened this issue Oct 20, 2023 · 9 comments

Comments

@AbhinavPraveen
Copy link

Is it possible to support ROCm 5.7.1?

Using AMDGPU.jl at d910f95 with [email protected], enable_artifacts set to false, and use_devlibs_jll set to true on PopOs (Ubuntu 22.04 based) with rocm-hip-libraries 5.7.1 installed in the official way (but not amdgpu-dkms or its repository) and Julia 1.9.3, I get the following output:

julia> using AMDGPU
┌ Warning: Device libraries are unavailable, device intrinsics will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/ZxKNL/src/AMDGPU.jl:204
┌ Warning: MIOpen is unavailable, functionality will be disabled.
└ @ AMDGPU ~/.julia/packages/AMDGPU/ZxKNL/src/AMDGPU.jl:233
julia> AMDGPU.versioninfo()
ROCm provided by: system
[+] HSA Runtime v1.1.0
    @ /opt/rocm/lib/libhsa-runtime64.so.1
[+] ld.lld
    @ /opt/rocm/llvm/bin/ld.lld
[-] ROCm-Device-Libs
[+] HIP Runtime v5.7.31921
    @ /opt/rocm/lib/libamdhip64.so
[+] rocBLAS v3.1.0
    @ /opt/rocm/lib/librocblas.so
[+] rocSOLVER v3.23.0
    @ /opt/rocm/lib/librocsolver.so
[+] rocALUTION
    @ /opt/rocm/lib/librocalution.so
[+] rocSPARSE
    @ /opt/rocm/lib/librocsparse.so.0
[+] rocRAND v2.10.5
    @ /opt/rocm/lib/librocrand.so
[+] rocFFT v1.0.21
    @ /opt/rocm/lib/librocfft.so
[-] MIOpen 

HIP Devices [1]
    1. HIPDevice(name="gfx1100", id=1)
N = 1024
a = rand(Float64, N)
b = rand(Float64, N)
c_cpu = a + b
a_d = ROCArray(a)
b_d = ROCArray(b)
c_d = similar(a_d)
function vadd!(c, a, b)
    i = workitemIdx().x + (workgroupIdx().x - 1) * workgroupDim().x
    c[i] = a[i] + b[i]
    return
end
groupsize = 128
gridsize = cld(length(c_d), groupsize)
julia> @roc gridsize=gridsize groupsize=groupsize vadd!(c_d, a_d, b_d)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
'gfx1100' is not a recognized processor for this target (ignoring processor)
ERROR: LLVM error: Cannot select: 0x649d938: ch = store<(store (s8) into %ir.21 + 2), trunc to i8> 0x5b5aaf8, Constant:i32<0>, 0x51e9040, undef:i64, pointer.jl:126 @[ pointer.jl:126 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/runtime.jl:82 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/quirks.jl:8 @[ abstractarray.jl:709 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/gcn/array.jl:82 @[ REPL[11]:3 ] ] ] ] ] ]
  0x62f8ab8: i32 = Constant<0>
  0x51e9040: i64 = add nuw 0x62f8e60, Constant:i64<2>, pointer.jl:126 @[ pointer.jl:126 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/runtime.jl:82 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/quirks.jl:8 @[ abstractarray.jl:709 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/gcn/array.jl:82 @[ REPL[11]:3 ] ] ] ] ] ]
    0x62f8e60: i64,ch = CopyFromReg 0x5b5aaf8, Register:i64 %1, /home/me/.julia/packages/LLVM/QadjB/src/interop/base.jl:38 @[ none:0 @[ none:0 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/runtime.jl:11 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/runtime.jl:82 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/quirks.jl:8 @[ abstractarray.jl:709 @[ /home/me/.julia/packages/AMDGPU/ZxKNL/src/device/gcn/array.jl:82 @[ REPL[11]:3 ] ] ] ] ] ] ] ]
      0x62f81c8: i64 = Register %1
    0x51e8f70: i64 = Constant<2>
  0x547bc78: i64 = undef
In function: _Z5vadd_14ROCDeviceArrayI7Float64Li1ELi1EES_IS0_Li1ELi1EES_IS0_Li1ELi1EE
Stacktrace:
  [1] handle_error(reason::Cstring)
    @ LLVM ~/.julia/packages/LLVM/QadjB/src/core/context.jl:134
  [2] LLVMTargetMachineEmitToMemoryBuffer
    @ ~/.julia/packages/LLVM/QadjB/lib/13/libLLVM_h.jl:947 [inlined]
  [3] emit(tm::LLVM.TargetMachine, mod::LLVM.Module, filetype::LLVM.API.LLVMCodeGenFileType)
    @ LLVM ~/.julia/packages/LLVM/QadjB/src/targetmachine.jl:45
  [4] mcgen(job::GPUCompiler.CompilerJob, mod::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/mcgen.jl:84
  [5] macro expansion
    @ ~/.julia/packages/TimerOutputs/RsWnF/src/TimerOutput.jl:253 [inlined]
  [6] macro expansion
    @ ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:461 [inlined]
  [7] macro expansion
    @ ~/.julia/packages/TimerOutputs/RsWnF/src/TimerOutput.jl:253 [inlined]
  [8] macro expansion
    @ ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:458 [inlined]
  [9] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module; strip::Bool, validate::Bool, format::LLVM.API.LLVMCodeGenFileType)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/utils.jl:92
 [10] emit_asm
    @ ~/.julia/packages/GPUCompiler/2mJjc/src/utils.jl:86 [inlined]
 [11] codegen(output::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, toplevel::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:149
 [12] codegen
    @ ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:110 [inlined]
 [13] compile(target::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, toplevel::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:106
 [14] compile
    @ ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:98 [inlined]
 [15] #37
    @ ~/.julia/packages/AMDGPU/ZxKNL/src/compiler/codegen.jl:122 [inlined]
 [16] JuliaContext(f::AMDGPU.Compiler.var"#37#38"{GPUCompiler.CompilerJob{GPUCompiler.GCNCompilerTarget, AMDGPU.Compiler.HIPCompilerParams}})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/driver.jl:47
 [17] hipcompile(job::GPUCompiler.CompilerJob)
    @ AMDGPU.Compiler ~/.julia/packages/AMDGPU/ZxKNL/src/compiler/codegen.jl:121
 [18] actual_compilation(cache::Dict{Any, AMDGPU.HIP.HIPFunction}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{GPUCompiler.GCNCompilerTarget, AMDGPU.Compiler.HIPCompilerParams}, compiler::typeof(AMDGPU.Compiler.hipcompile), linker::typeof(AMDGPU.Compiler.hiplink))
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/execution.jl:125
 [19] cached_compilation(cache::Dict{Any, AMDGPU.HIP.HIPFunction}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.GCNCompilerTarget, AMDGPU.Compiler.HIPCompilerParams}, compiler::Function, linker::Function)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/2mJjc/src/execution.jl:103
 [20] macro expansion
    @ ~/.julia/packages/AMDGPU/ZxKNL/src/compiler/codegen.jl:91 [inlined]
 [21] macro expansion
    @ ./lock.jl:267 [inlined]
 [22] hipfunction(f::typeof(vadd!), tt::Type{Tuple{AMDGPU.Device.ROCDeviceVector{Float64, 1}, AMDGPU.Device.ROCDeviceVector{Float64, 1}, AMDGPU.Device.ROCDeviceVector{Float64, 1}}}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ AMDGPU.Compiler ~/.julia/packages/AMDGPU/ZxKNL/src/compiler/codegen.jl:85
 [23] hipfunction(f::typeof(vadd!), tt::Type{Tuple{AMDGPU.Device.ROCDeviceVector{Float64, 1}, AMDGPU.Device.ROCDeviceVector{Float64, 1}, AMDGPU.Device.ROCDeviceVector{Float64, 1}}})
    @ AMDGPU.Compiler ~/.julia/packages/AMDGPU/ZxKNL/src/compiler/codegen.jl:84
 [24] top-level scope
    @ ~/.julia/packages/AMDGPU/ZxKNL/src/highlevel.jl:159
 [25] top-level scope
    @ ~/.julia/packages/AMDGPU/ZxKNL/src/tls.jl:196

The output to julia -e 'using AMDGPU;using Pkg;Pkg.test("AMDGPU")' > test.log 2>&1 is also attached.
test.log

@leios
Copy link

leios commented Oct 20, 2023

#478

As of right now (unless things have changed recently), the most recent supported version is 5.4, so you need to downgrade your packages.

@pxl-th
Copy link
Member

pxl-th commented Oct 20, 2023

@leios, we do support ROCm 5.5+, but in this mixed-mode thing (only on master for now):
https://amdgpu.juliagpu.org/dev/#LLVM-compatibility-and-mixed-ROCm-mode

@AbhinavPraveen, for gfx1100 you need Julia 1.10, because Navi 3 contains intructions which are supported only starting from LLVM 15.
Other than that, AMDGPU.versioninfo() shows that it failed to find device libraries.
Without them it won't work.
I haven't tested 5.7 yet, but 5.6 works fine with gfx1100, I'm using it myself.

@pxl-th
Copy link
Member

pxl-th commented Oct 20, 2023

Can you post the output of ]st?
And make sure you have LocalPreferences.toml file somewhere in your project.

@AbhinavPraveen
Copy link
Author

I've downloaded Julia 1.10.0-beta3, disabled use_devlibs_jll and installed rocm-device-libs (I also had to install rocm-libs). Now AMDGPU.versioninfo() shows:

ROCm provided by: system
[+] HSA Runtime v1.1.0
    @ /opt/rocm/lib/libhsa-runtime64.so.1
[+] ld.lld
    @ /opt/rocm/llvm/bin/ld.lld
[+] ROCm-Device-Libs
    @ /opt/rocm/amdgcn/bitcode
[+] HIP Runtime v5.7.31921
    @ /opt/rocm/lib/libamdhip64.so
[+] rocBLAS v3.1.0
    @ /opt/rocm/lib/librocblas.so
[+] rocSOLVER v3.23.0
    @ /opt/rocm/lib/librocsolver.so
[+] rocALUTION
    @ /opt/rocm/lib/librocalution.so
[+] rocSPARSE
    @ /opt/rocm/lib/librocsparse.so.0
[+] rocRAND v2.10.5
    @ /opt/rocm/lib/librocrand.so
[+] rocFFT v1.0.21
    @ /opt/rocm/lib/librocfft.so
[+] MIOpen v2.20.0
    @ /opt/rocm/lib/libMIOpen.so

HIP Devices [1]
    1. HIPDevice(name="gfx1100", id=1)

Unfortunately the AMDGPU test stills errors out but with fewer warnings.

        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading.
Precompiling project...
  91 dependencies successfully precompiled in 34 seconds. 8 already precompiled.
  1 dependency had output during precompilation:
┌ AMDGPU
│  WARNING: Wrapping `Vararg` directly in UnionAll is deprecated (wrap the tuple instead).
│  You may need to write `f(x::Vararg{T})` rather than `f(x::Vararg{<:T})` or `f(x::Vararg{T}) where T` instead of `f(x::Vararg{T} where T)`.
│  WARNING: Wrapping `Vararg` directly in UnionAll is deprecated (wrap the tuple instead).
│  You may need to write `f(x::Vararg{T})` rather than `f(x::Vararg{<:T})` or `f(x::Vararg{T}) where T` instead of `f(x::Vararg{T} where T)`.
└  
     Testing Running tests...
[ Info: Running following tests: ["core", "hip", "ext", "gpuarrays", "kernelabstractions"].
[ Info: Running tests with 4 workers.
[ Info: Testing using device HIPDevice(name="gfx1100", id=1).
ROCm provided by: system
[+] HSA Runtime v1.1.0
    @ /opt/rocm/lib/libhsa-runtime64.so.1
[+] ld.lld
    @ /opt/rocm/llvm/bin/ld.lld
[+] ROCm-Device-Libs
    @ /opt/rocm/amdgcn/bitcode
[+] HIP Runtime v5.7.31921
    @ /opt/rocm/lib/libamdhip64.so
[+] rocBLAS v3.1.0
    @ /opt/rocm/lib/librocblas.so
[+] rocSOLVER v3.23.0
    @ /opt/rocm/lib/librocsolver.so
[+] rocALUTION
    @ /opt/rocm/lib/librocalution.so
[+] rocSPARSE
    @ /opt/rocm/lib/librocsparse.so.0
[+] rocRAND v2.10.5
    @ /opt/rocm/lib/librocrand.so
[+] rocFFT v1.0.21
    @ /opt/rocm/lib/librocfft.so
[+] MIOpen v2.20.0
    @ /opt/rocm/lib/libMIOpen.so

HIP Devices [1]
    1. HIPDevice(name="gfx1100", id=1)
[ Info: Testing `Device Functions` on the main thread without workers.
error: Opaque pointers are only supported in -opaque-pointers mode (Producer: 'LLVM17.0.0git' Reader: 'LLVM 15.0.7jl')
ERROR: Package AMDGPU errored during testing

]st outputs

(@v1.10) pkg> st
Status `~/.julia/environments/v1.10/Project.toml`
  [21141c5a] AMDGPU v0.6.1 `https://github.com/JuliaGPU/AMDGPU.jl.git#master`

@pxl-th
Copy link
Member

pxl-th commented Oct 20, 2023

Right now it is using device libraries from system-wide installation.

[+] ROCm-Device-Libs
    @ /opt/rocm/amdgcn/bitcode

But it has to use them from artifacts and look like this:

[+] ROCm-Device-Libs
    @ /home/pxl-th/.julia/artifacts/5ad5ecb46e3c334821f54c1feecc6c152b7b6a45/amdgcn/bitcode

For that you have to add ]add [email protected] in your project.
Then set AMDGPU.use_devlibs_jll!(true) & restart your session.

@AbhinavPraveen
Copy link
Author

AbhinavPraveen commented Oct 20, 2023

For that you have to add ]add [email protected] in your project.

The above output is still with ROCm 5.7.1. I think I will wait for [email protected] rather than rolling back ROCm. I don't think ROCm 5.6 is (still) in AMD's repos and an apt install feels much cleaner than running a script. Also, for the record, if [email protected] is installed with ROCm 5.7.1 and use_devlibs_jll is enabled, (unsurprisingly) device libs are not detected in AMDGPU.versioninfo().

EDIT: I decided to roll it back instead. ROCm 5.6.1 is not in the repos in the docs but it is available in its own specific repo.

@pxl-th
Copy link
Member

pxl-th commented Oct 20, 2023

Also, for the record, if [email protected] is installed with ROCm 5.7.1 and use_devlibs_jll is enabled, (unsurprisingly) device libs are not detected in AMDGPU.versioninfo().

That is actually strange that they are not detected. It doesn't check if versions are the same so it should load them.

@pxl-th
Copy link
Member

pxl-th commented Nov 19, 2023

Can you try master and see if it works?
Note that now you don't need use_devlibs_jll as it should do everything automatically.

@pxl-th
Copy link
Member

pxl-th commented Nov 20, 2023

AMDGPU 0.7.4 should fixes it.

@pxl-th pxl-th closed this as completed Nov 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants