ArrayFire.jl icon indicating copy to clipboard operation
ArrayFire.jl copied to clipboard

New occurence of "could not load library "af""

Open zhopan77 opened this issue 4 years ago • 2 comments

ArrayFire 3.x with ArrayFire.jl and CUDA 10.x have been working well for me on Windows 10, with consumer-grade GPUs such as RTX 2080 Ti.

But recently when I tried to do the same for a Telsa A100 GPU on a Windows 10 PC, I suddenly cannot make ArrayFire work anymore.

I tried the following with ArrayFire.jl 1.0.7 on both Julia 1.5.3 and 1.6.0-rc1, on Windows 10 64-bit.

  • ArrayFire 3.8.0 for CUDA 11.2, on CUDA Toolkit 11.2: when "using ArrayFire", the following error happens: julia> using ArrayFire [ Info: Precompiling ArrayFire [b19378d9-d87a-599a-927f-45f220a2c452] ERROR: InitError: could not load library "af" The specified module could not be found. Stacktrace: [1] dlopen(::String, ::UInt32; throw_error::Bool) at C:\Julia 1.5.3\share\julia\stdlib\v1.5\Libdl\src\Libdl.jl:109 [2] dlopen at C:\Julia 1.5.3\share\julia\stdlib\v1.5\Libdl\src\Libdl.jl:109 [inlined] (repeats 2 times) [3] __init__() at C:\Users\zpan\.julia\packages\ArrayFire\U0hth\src\util.jl:59 [4] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:697 [5] _require_from_serialized(::String) at .\loading.jl:749 [6] _require(::Base.PkgId) at .\loading.jl:1040 [7] require(::Base.PkgId) at .\loading.jl:928 [8] require(::Module, ::Symbol) at .\loading.jl:923 during initialization of module ArrayFire I am 100% sure the ArrayFire library path is on system PATH, just like what I did before.

  • ArrayFire 3.8.0 for CUDA 10.1 or 10.2, or ArrayFire 3.7.3, on CUDA Toolkit 10.2: "using ArrayFire" works fine, but during calculation a run time error would happen saying something like a parameter is unknown.

I do prefer moving to CUDA 11 since A100 is quite new, so I'm posting here only the issue of "could not load library "af"".

zhopan77 avatar Feb 19 '21 05:02 zhopan77

I think you need a newer arrayfire library version that works with cuda 11.2 since support for A100 is pretty recent.

ghost avatar Feb 19 '21 13:02 ghost

I think you need a newer arrayfire library version that works with cuda 11.2 since support for A100 is pretty recent.

Thanks for your reply! ArrayFire version 3.8.0 does claim to support CUDA 11.2 - the Windows download has 3 choices: CUDA 10.1, CUDA 10.2, and CUDA 11.2. I tried all 3 (one by one, with the compatible CUDA Toolkit installation, with clean uninstall in between) - no luck.

I have no way to independently verify ArrayFire 3.8.0 does support A100. But I do know CUDA 11.2 works fine with A100, because CUDA.jl works.

zhopan77 avatar Feb 19 '21 20:02 zhopan77