Test of AMDGPU fails on 5900HX - hipErrorNoBinaryForGpu

I have small server (Minisforum HX90) with Ryzen 5900HX/ Cezanne APU. I successfully installed AMDGPU

julia> AMDGPU.versioninfo()
HSA Runtime (ready)
- Path: /home/davidj/.julia/artifacts/b1aa837f69ba67b20f9654af56c818e6d9bfd262/lib/libhsa-runtime64.so
- Version: 1.1.0
ld.lld (ready)
- Path: /home/davidj/.julia/artifacts/f02e6afe34f4cfc518358bfda567a355e1c2c7a3/tools/lld
ROCm-Device-Libs (ready)
- Path: /home/davidj/.julia/artifacts/84cbee8fa15e34e61aeb7d3c17f24c8c0d3214e1/amdgcn/bitcode
- Downloaded: false
HIP Runtime (ready)
- Path: /home/davidj/.julia/artifacts/b5a35fe56035e3d95e3203689c38aafec324a861/hip/lib/libamdhip64.so
rocBLAS (MISSING)
rocSOLVER (MISSING)
rocALUTION (MISSING)
rocSPARSE (MISSING)
rocRAND (ready)
- Path: /home/davidj/.julia/artifacts/3c565b6e353eb2ec9345ac55ba0f2d6be3444bea/hiprand/lib/../../rocrand/lib/librocrand.so.1
rocFFT (MISSING)
MIOpen (MISSING)
HSA Agents (2):
- CPU-XX [AMD Ryzen 9 5900HX with Radeon Graphics]
- GPU-XX [ (gfx902)]

but tests fails

(@v1.7) pkg> test AMDGPU
     Testing AMDGPU
      Status `/tmp/jl_KoEdhl/Project.toml`
  [21141c5a] AMDGPU v0.3.7
  [79e6a3ab] Adapt v3.3.3
  [7a1cc6ca] FFTW v1.5.0
  [1a297f60] FillArrays v0.13.2
  [f6369f11] ForwardDiff v0.10.30
  [0c68f7d7] GPUArrays v8.4.1
  [61eb1bfa] GPUCompiler v0.14.1
  [929cbde3] LLVM v4.14.0
  [276daf66] SpecialFunctions v2.1.7
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [9a3f8284] Random `@stdlib/Random`
  [10745b16] Statistics `@stdlib/Statistics`
  [8dfed614] Test `@stdlib/Test`
      Status `/tmp/jl_KoEdhl/Manifest.toml`
  [21141c5a] AMDGPU v0.3.7
  [621f4979] AbstractFFTs v1.2.1
  [79e6a3ab] Adapt v3.3.3
  [b99e7846] BinaryProvider v0.5.10
  [fa961155] CEnum v0.4.2
  [d360d2e6] ChainRulesCore v1.15.1
  [9e997f8a] ChangesOfVariables v0.1.3
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v3.45.0
  [187b0558] ConstructionBase v1.4.0
  [163ba53b] DiffResults v1.0.3
  [b552c78f] DiffRules v1.11.0
  [ffbed154] DocStringExtensions v0.8.6
  [e2ba6199] ExprTools v0.1.8
  [7a1cc6ca] FFTW v1.5.0
  [1a297f60] FillArrays v0.13.2
  [f6369f11] ForwardDiff v0.10.30
  [0c68f7d7] GPUArrays v8.4.1
  [46192b85] GPUArraysCore v0.1.0
  [61eb1bfa] GPUCompiler v0.14.1
  [3587e190] InverseFunctions v0.1.7
  [92d709cd] IrrationalConstants v0.1.1
  [692b3bcd] JLLWrappers v1.4.1
  [929cbde3] LLVM v4.14.0
  [2ab3a3ac] LogExpFunctions v0.3.15
  [1914dd2f] MacroTools v0.5.9
  [77ba4419] NaNMath v1.0.0
  [21216c6a] Preferences v1.3.0
  [189a3867] Reexport v1.2.2
  [ae029012] Requires v1.3.0
  [efcf1570] Setfield v0.7.1
  [276daf66] SpecialFunctions v2.1.7
  [90137ffa] StaticArrays v1.5.0
  [1e83bf80] StaticArraysCore v1.0.1
  [a759f4b9] TimerOutputs v0.5.20
  [6e34b625] Bzip2_jll v1.0.8+0
  [ab5a07f8] Elfutils_jll v0.182.0+0
  [f5851436] FFTW_jll v3.3.10+0
  [2696aab5] HIP_jll v4.2.0+0
  [1d5cc7b8] IntelOpenMP_jll v2018.0.3+2
  [dad2f222] LLVMExtra_jll v0.0.16+0
  [86de99a1] LLVM_jll v12.0.1+4
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7e76a0d4] Libglvnd_jll v1.3.0+3
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+1
  [856f044c] MKL_jll v2022.0.0+0
  [7f51dc2b] NUMA_jll v2.0.14+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [8fbdd1d2] ROCmCompilerSupport_jll v4.2.0+0
  [873c0968] ROCmDeviceLibs_jll v4.2.0+0
  [10ae2a08] ROCmOpenCLRuntime_jll v4.2.0+1
  [02c8fc9c] XML2_jll v2.9.14+0
  [aed1982a] XSLT_jll v1.1.34+0
  [ffd25f8a] XZ_jll v5.2.5+2
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [a65dc6b1] Xorg_libpciaccess_jll v0.16.0+1
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [c4d99508] Xorg_xorgproto_jll v2019.2.0+2
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [c53206cc] argp_standalone_jll v1.3.1+0
  [d65627f6] fts_jll v1.2.7+1
  [dd59ff1a] hsa_rocr_jll v4.2.0+1
  [1cecccd7] hsakmt_roct_jll v4.5.2+0
  [8e53e030] libdrm_jll v2.4.110+0
  [c88a4935] obstack_jll v1.2.2+0
  [a6151927] rocRAND_jll v4.2.0+0
  [5a766526] rocminfo_jll v4.0.0+0
  [0dad84c5] ArgTools `@stdlib/ArgTools`
  [56f22d72] Artifacts `@stdlib/Artifacts`
  [2a0f44e3] Base64 `@stdlib/Base64`
  [ade2ca70] Dates `@stdlib/Dates`
  [8bb1440f] DelimitedFiles `@stdlib/DelimitedFiles`
  [8ba89e20] Distributed `@stdlib/Distributed`
  [f43a241f] Downloads `@stdlib/Downloads`
  [7b1f6079] FileWatching `@stdlib/FileWatching`
  [9fa8497b] Future `@stdlib/Future`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [4af54fe1] LazyArtifacts `@stdlib/LazyArtifacts`
  [b27032c2] LibCURL `@stdlib/LibCURL`
  [76f85450] LibGit2 `@stdlib/LibGit2`
  [8f399da3] Libdl `@stdlib/Libdl`
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [56ddb016] Logging `@stdlib/Logging`
  [d6f4376e] Markdown `@stdlib/Markdown`
  [a63ad114] Mmap `@stdlib/Mmap`
  [ca575930] NetworkOptions `@stdlib/NetworkOptions`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [de0858da] Printf `@stdlib/Printf`
  [3fa0cd96] REPL `@stdlib/REPL`
  [9a3f8284] Random `@stdlib/Random`
  [ea8e919c] SHA `@stdlib/SHA`
  [9e88b42a] Serialization `@stdlib/Serialization`
  [1a1011a3] SharedArrays `@stdlib/SharedArrays`
  [6462fe0b] Sockets `@stdlib/Sockets`
  [2f01184e] SparseArrays `@stdlib/SparseArrays`
  [10745b16] Statistics `@stdlib/Statistics`
  [fa267f1f] TOML `@stdlib/TOML`
  [a4e569a6] Tar `@stdlib/Tar`
  [8dfed614] Test `@stdlib/Test`
  [cf7118a7] UUIDs `@stdlib/UUIDs`
  [4ec0a83e] Unicode `@stdlib/Unicode`
  [e66e0078] CompilerSupportLibraries_jll `@stdlib/CompilerSupportLibraries_jll`
  [deac9b47] LibCURL_jll `@stdlib/LibCURL_jll`
  [29816b5a] LibSSH2_jll `@stdlib/LibSSH2_jll`
  [c8ffd9c3] MbedTLS_jll `@stdlib/MbedTLS_jll`
  [14a3606d] MozillaCACerts_jll `@stdlib/MozillaCACerts_jll`
  [4536629a] OpenBLAS_jll `@stdlib/OpenBLAS_jll`
  [05823500] OpenLibm_jll `@stdlib/OpenLibm_jll`
  [83775a58] Zlib_jll `@stdlib/Zlib_jll`
  [8f36deef] libLLVM_jll `@stdlib/libLLVM_jll`
  [8e850b90] libblastrampoline_jll `@stdlib/libblastrampoline_jll`
  [8e850ede] nghttp2_jll `@stdlib/nghttp2_jll`
  [3f19e933] p7zip_jll `@stdlib/p7zip_jll`
     Testing Running tests...
[ Info: Testing using device GPU-XX [ (gfx902)]
"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"

signal (6): Abandon
in expression starting at /home/davidj/.julia/packages/AMDGPU/f6OQx/test/hsa/memory.jl:1
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x7fb0297de280)
unknown function (ip: 0x7fb0296e9717)
unknown function (ip: 0x7fb02970fabb)
unknown function (ip: 0x7fb0296e7f9c)
unknown function (ip: 0x7fb0297812df)
unknown function (ip: 0x7fb0296dd6f1)
__pthread_once_slow at /lib64/libpthread.so.0 (unknown line)
hipStreamSynchronize at /home/davidj/.julia/artifacts/b5a35fe56035e3d95e3203689c38aafec324a861/hip/lib/libamdhip64.so (unknown line)
macro expansion at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/hip/error.jl:149 [inlined]
hipStreamSynchronize at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/hip/libhip.jl:2
wait! at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/sync.jl:20
wait! at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/array.jl:88 [inlined]
foreach at ./abstractarray.jl:2712 [inlined]
macro expansion at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/execution.jl:234 [inlined]
#gpu_call#309 at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/array.jl:14
unknown function (ip: 0x7fb0380f0ad4)
gpu_call##kw at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/array.jl:13 [inlined]
#gpu_call#1 at /home/davidj/.julia/packages/GPUArrays/gok9K/src/device/execution.jl:72 [inlined]
gpu_call at /home/davidj/.julia/packages/GPUArrays/gok9K/src/device/execution.jl:48 [inlined]
fill! at /home/davidj/.julia/packages/GPUArrays/gok9K/src/host/construction.jl:14
unknown function (ip: 0x7fb0380eff0a)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
zeros at /home/davidj/.julia/packages/AMDGPU/f6OQx/src/array.jl:386
unknown function (ip: 0x7fb0380ed941)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:461
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
_include at ./loading.jl:1253
include at ./client.jl:451
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:516
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
_include at ./loading.jl:1253
include at ./client.jl:451
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
exec_options at ./client.jl:268
_start at ./client.jl:495
jfptr__start_22567.clone_1 at /home/local/julia-1.7.3/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559
jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701
main at /buildworker/worker/package_linux64/build/cli/loader_exe.c:42
__libc_start_main at /lib64/libc.so.6 (unknown line)
_start at /home/local/julia-1.7.3/bin/julia (unknown line)
Allocations: 51032942 (Pool: 51016560; Big: 16382); GC: 55
ERROR: Package AMDGPU errored during testing (received signal: 6)

(@v1.7) pkg> ƒ

It seems ROCm devices binary are missing because of not downloaded. What can I do to progress ?
Thanks for help,

Yeah, this is a particularly annoying behavior of HIP that I’d be willing to patch out (because doing this check at library load time is silly; we don’t always need to use HIP). Can you file an issue on AMDGPU.jl’s repository to do that? I’ll try to give it a shot this coming week.

2 Likes

Thanks for the quick answer, issue https://github.com/JuliaGPU/AMDGPU.jl/issues/244 filed.
Will wait for news next week :slight_smile:

1 Like