Triplet after the commands done in CUDA_Runtime_jll.jl
:
CUDA_Runtime-v0.3.1+1 JULIA_DEBUG=all julia --project -e 'using CUDA_Runtime_jll; @show Base.BinaryPlatforms.triplet(CUDA_Runtime_jll.host_platform)'
┌ Debug: Loading cache file /home/robin/.julia/compiled/v1.8/Preferences/pWSk8_xFL6F.ji for Preferences [21216c6a-2e73-6563-6e65-726566657250]
└ @ Base loading.jl:806
┌ Debug: Loading cache file /home/robin/.julia/compiled/v1.8/JLLWrappers/7Zgw7_xFL6F.ji for JLLWrappers [692b3bcd-3c85-4b1f-b108-f13ce0eb3210]
└ @ Base loading.jl:806
┌ Debug: Loading cache file /home/robin/.julia/compiled/v1.8/CUDA_Driver_jll/QJyk7_xFL6F.ji for CUDA_Driver_jll [4ee394cb-3365-5eb0-8335-949819d2adfc]
└ @ Base loading.jl:806
┌ Debug: System CUDA driver found at libcuda.so.1, detected as version 12.0.0
└ @ CUDA_Driver_jll ~/.julia/packages/CUDA_Driver_jll/9E4Mc/src/wrappers/x86_64-linux-gnu.jl:76
┌ Debug: System CUDA driver is recent enough; not using forward-compatible driver
└ @ CUDA_Driver_jll ~/.julia/packages/CUDA_Driver_jll/9E4Mc/src/wrappers/x86_64-linux-gnu.jl:94
┌ Debug: Loading cache file /home/robin/.julia/compiled/v1.8/CUDA_Runtime_jll/Hs50y_66ZMi.ji for CUDA_Runtime_jll [76a88914-d11a-5bdc-97e0-2f5a05c973a2]
└ @ Base loading.jl:806
Base.BinaryPlatforms.triplet(CUDA_Runtime_jll.host_platform) = "x86_64-linux-gnu-libgfortran5-cxx11-libstdcxx30-cuda+12.0-julia_version+1.8.5"
Output of status
then st -m
:
(@v1.8) pkg> status
Status `~/.julia/environments/v1.8/Project.toml`
[052768ef] CUDA v4.0.1
(@v1.8) pkg> st -m
Status `~/.julia/environments/v1.8/Manifest.toml`
[621f4979] AbstractFFTs v1.3.1
[79e6a3ab] Adapt v3.6.1
[ab4f0b2a] BFloat16s v0.4.2
[fa961155] CEnum v0.4.2
[052768ef] CUDA v4.0.1
[1af6417a] CUDA_Runtime_Discovery v0.1.1
[d360d2e6] ChainRulesCore v1.15.7
[9e997f8a] ChangesOfVariables v0.1.6
[34da2185] Compat v4.6.1
[ffbed154] DocStringExtensions v0.9.3
[e2ba6199] ExprTools v0.1.9
⌃ [0c68f7d7] GPUArrays v8.6.3
[46192b85] GPUArraysCore v0.1.4
⌅ [61eb1bfa] GPUCompiler v0.17.3
[3587e190] InverseFunctions v0.1.8
[92d709cd] IrrationalConstants v0.2.2
[692b3bcd] JLLWrappers v1.4.1
[929cbde3] LLVM v4.16.0
[2ab3a3ac] LogExpFunctions v0.3.23
[21216c6a] Preferences v1.3.0
[74087812] Random123 v1.6.0
[e6cf234a] RandomNumbers v1.5.3
[189a3867] Reexport v1.2.2
[ae029012] Requires v1.3.0
[276daf66] SpecialFunctions v2.2.0
[a759f4b9] TimerOutputs v0.5.22
⌅ [4ee394cb] CUDA_Driver_jll v0.2.0+0
⌅ [76a88914] CUDA_Runtime_jll v0.2.3+2
⌅ [dad2f222] LLVMExtra_jll v0.0.16+2
[efe28fd5] OpenSpecFun_jll v0.5.5+0
[0dad84c5] ArgTools v1.1.1
[56f22d72] Artifacts
[2a0f44e3] Base64
[ade2ca70] Dates
[f43a241f] Downloads v1.6.0
[7b1f6079] FileWatching
[b77e0a4c] InteractiveUtils
[4af54fe1] LazyArtifacts
[b27032c2] LibCURL v0.6.3
[76f85450] LibGit2
[8f399da3] Libdl
[37e2e46d] LinearAlgebra
[56ddb016] Logging
[d6f4376e] Markdown
[ca575930] NetworkOptions v1.2.0
[44cfe95a] Pkg v1.8.0
[de0858da] Printf
[3fa0cd96] REPL
[9a3f8284] Random
[ea8e919c] SHA v0.7.0
[9e88b42a] Serialization
[6462fe0b] Sockets
[2f01184e] SparseArrays
[10745b16] Statistics
[fa267f1f] TOML v1.0.0
[a4e569a6] Tar v1.10.1
[8dfed614] Test
[cf7118a7] UUIDs
[4ec0a83e] Unicode
[e66e0078] CompilerSupportLibraries_jll v1.0.1+0
[deac9b47] LibCURL_jll v7.84.0+0
[29816b5a] LibSSH2_jll v1.10.2+0
[c8ffd9c3] MbedTLS_jll v2.28.0+0
[14a3606d] MozillaCACerts_jll v2022.2.1
[4536629a] OpenBLAS_jll v0.3.20+0
[05823500] OpenLibm_jll v0.8.1+0
[83775a58] Zlib_jll v1.2.12+3
[8e850b90] libblastrampoline_jll v5.1.1+0
[8e850ede] nghttp2_jll v1.48.0+0
[3f19e933] p7zip_jll v17.4.0+0
Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
I’m not sure I’m doing this right, but I removed ~/.julia/compiled/*/CUDA_Runtime_jll
then tried to run the file containing using Pkg; Pkg.add("CUDA")
and got this response:
julia main.jl ✔
Updating registry at `~/.julia/registries/General.toml`
Resolving package versions...
No Changes to `~/.julia/environments/v1.8/Project.toml`
No Changes to `~/.julia/environments/v1.8/Manifest.toml`
Precompiling project...
2 dependencies successfully precompiled in 32 seconds. 35 already precompiled.
ERROR: LoadError: could not load library "/home/robin/.julia/artifacts/b4f3584e7c5360562ece1d0448b4456c900b69ae/lib/libLLVMExtra-14.so"
libLLVM-14jl.so: cannot open shared object file: No such file or directory
Stacktrace:
[1] LLVMAddInternalizePassWithExportList
@ ~/.julia/packages/LLVM/s3bxG/lib/libLLVM_extra.jl:104 [inlined]
[2] internalize!
@ ~/.julia/packages/LLVM/s3bxG/src/transform.jl:164 [inlined]
[3] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/irgen.jl:93 [inlined]
[4] macro expansion
@ ~/.julia/packages/LLVM/s3bxG/src/base.jl:102 [inlined]
[5] macro expansion
@ ~/.julia/packages/TimerOutputs/LHjFw/src/TimerOutput.jl:253 [inlined]
[6] irgen(job::GPUCompiler.CompilerJob, method_instance::Core.MethodInstance; ctx::LLVM.Context)
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/irgen.jl:82
[7] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:219 [inlined]
[8] macro expansion
@ ~/.julia/packages/TimerOutputs/LHjFw/src/TimerOutput.jl:253 [inlined]
[9] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:218 [inlined]
[10] emit_llvm(job::GPUCompiler.CompilerJob, method_instance::Any; libraries::Bool, deferred_codegen::Bool, optimize::Bool, cleanup::Bool, only_entry::Bool, validate::Bool, ctx::LLVM.Context)
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/utils.jl:83
[11] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:360
[12] #221
@ ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:354 [inlined]
[13] JuliaContext(f::CUDA.var"#221#222"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{typeof(saxpy_gpu!), Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}}}})
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:76
[14] cufunction_compile(job::GPUCompiler.CompilerJob)
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:353
[15] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/cache.jl:90
[16] cufunction(f::typeof(saxpy_gpu!), tt::Type{Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}}; name::Nothing, always_inline::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:306
[17] cufunction(f::typeof(saxpy_gpu!), tt::Type{Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}})
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:299
[18] top-level scope
@ ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:102
in expression starting at /home/robin/code/msa/main.jl:38
I can however now use using CUDA
then CUDA.versioninfo()
in the REPL:
julia> CUDA.versioninfo()
CUDA runtime 11.8, artifact installation
CUDA driver 12.0
NVIDIA driver 525.89.2
Libraries:
- CUBLAS: 11.11.3
- CURAND: 10.3.0
- CUFFT: 10.9.0
- CUSOLVER: 11.4.1
- CUSPARSE: 11.7.5
- CUPTI: 18.0.0
- NVML: 12.0.0+525.89.2
Toolchain:
- Julia: 1.8.5
- LLVM: 14.0.6
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3, 6.4, 6.5, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5
- Device capability support: sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86
1 device:
0: NVIDIA GeForce MX330 (sm_61, 12.375 MiB / 2.000 GiB available)
I tried running the same code by just pasting it into the REPL, it worked until it came across this part:
julia> # Check if I need these
# @btime CUDA.@sync
@cuda(
threads = nThreads,
blocks = nBlocks,
saxpy_gpu!(z, a, x, y)
)
ERROR: could not load library "/home/robin/.julia/artifacts/b4f3584e7c5360562ece1d0448b4456c900b69ae/lib/libLLVMExtra-14.so"
libLLVM-14jl.so: cannot open shared object file: No such file or directory
Stacktrace:
[1] LLVMAddInternalizePassWithExportList
@ ~/.julia/packages/LLVM/s3bxG/lib/libLLVM_extra.jl:104 [inlined]
[2] internalize!
@ ~/.julia/packages/LLVM/s3bxG/src/transform.jl:164 [inlined]
[3] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/irgen.jl:93 [inlined]
[4] macro expansion
@ ~/.julia/packages/LLVM/s3bxG/src/base.jl:102 [inlined]
[5] macro expansion
@ ~/.julia/packages/TimerOutputs/LHjFw/src/TimerOutput.jl:253 [inlined]
[6] irgen(job::GPUCompiler.CompilerJob, method_instance::Core.MethodInstance; ctx::LLVM.Context)
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/irgen.jl:82
[7] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:219 [inlined]
[8] macro expansion
@ ~/.julia/packages/TimerOutputs/LHjFw/src/TimerOutput.jl:253 [inlined]
[9] macro expansion
@ ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:218 [inlined]
[10] emit_llvm(job::GPUCompiler.CompilerJob, method_instance::Any; libraries::Bool, deferred_codegen::Bool, optimize::Bool, cleanup::Bool, only_entry::Bool, validate::Bool, ctx::LLVM.Context)
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/utils.jl:83
[11] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:360
[12] #221
@ ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:354 [inlined]
[13] JuliaContext(f::CUDA.var"#221#222"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{typeof(saxpy_gpu!), Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}}}})
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/driver.jl:76
[14] cufunction_compile(job::GPUCompiler.CompilerJob)
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:353
[15] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/cache.jl:90
[16] cufunction(f::typeof(saxpy_gpu!), tt::Type{Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}}; name::Nothing, always_inline::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:306
[17] cufunction(f::typeof(saxpy_gpu!), tt::Type{Tuple{CuDeviceVector{Float16, 1}, Float16, CuDeviceVector{Float16, 1}, CuDeviceVector{Float16, 1}}})
@ CUDA ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:299
[18] top-level scope
@ ~/.julia/packages/CUDA/ZdCxS/src/compiler/execution.jl:102
[19] top-level scope
@ ~/.julia/packages/CUDA/ZdCxS/src/initialization.jl:155
Here is my code if there are any obvious mistakes: GitHub - robvold/msa at cuda_testing
Again, thank you so much for helping me!