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

Improve 'VS C++ redistributable' error message #764

Closed
anandijain opened this issue Mar 13, 2021 · 2 comments
Closed

Improve 'VS C++ redistributable' error message #764

anandijain opened this issue Mar 13, 2021 · 2 comments
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@anandijain
Copy link

pkg> add CUDA

julia> versioninfo()
Julia Version 1.6.0-rc1
Commit a58bdd9010 (2021-02-06 15:49 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)

julia> CUDA.versioninfo()
CUDA toolkit 11.1.1, artifact installation
CUDA driver 11.2.0

Libraries:
- CUBLAS: 11.3.0
- CURAND: 10.2.2
- CUFFT: 10.3.0
- CUSOLVER: 11.0.1
- CUSPARSE: 11.3.0
- CUPTI: 14.0.0
- NVML: missing
- CUDNN: 8.0.4 (for CUDA 11.1.0)
- CUTENSOR: missing

Toolchain:
- Julia: 1.6.0-rc1
- LLVM: 11.0.1
- 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
- Device 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

1 device:
  0: GeForce GTX 1050 (sm_61, 3.226 GiB / 4.000 GiB available)

julia> using CUDA

julia> cu(rand(10))
  Downloaded artifact: CUTENSOR_CUDA111
┌ Error: Could not load CUTENSOR; please file an issue (if on Windows, be sure to install the VS C++ redistributable first)
│   exception =
│    could not load library "C:\Users\Anand\.julia\artifacts\1af4317261411b403eee62561b401a92b6b49b3b\bin\cutensor.dll"
│    Access is denied.
│    Stacktrace:
│      [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
│        @ Base.Libc.Libdl .\libdl.jl:114
│      [2] dlopen
│        @ .\libdl.jl:114 [inlined]
│      [3] use_artifact_cutensor(release::VersionNumber)
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\deps\bindeps.jl:340
│      [4] use_artifact_cuda()
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\deps\bindeps.jl:199
│      [5] __init_dependencies__()
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\deps\bindeps.jl:379
│      [6] __runtime_init__()
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\initialization.jl:103
│      [7] macro expansion
│        @ ~\.julia\packages\CUDA\Zmd60\src\initialization.jl:32 [inlined]
│      [8] macro expansion
│        @ .\lock.jl:209 [inlined]
│      [9] _functional(show_reason::Bool)
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\initialization.jl:26
│     [10] functional(show_reason::Bool)
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\initialization.jl:19
│     [11] libcuda()
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\initialization.jl:47
│     [12] macro expansion
│        @ ~\.julia\packages\CUDA\Zmd60\lib\cudadrv\libcuda.jl:29 [inlined]
│     [13] macro expansion
│        @ ~\.julia\packages\CUDA\Zmd60\lib\cudadrv\error.jl:102 [inlined]
│     [14] cuDeviceGet
│        @ ~\.julia\packages\CUDA\Zmd60\lib\utils\call.jl:26 [inlined]
│     [15] CuDevice
│        @ ~\.julia\packages\CUDA\Zmd60\lib\cudadrv\devices.jl:25 [inlined]
│     [16] initialize_thread(tid::Int64)
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\state.jl:121
│     [17] prepare_cuda_call()
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\state.jl:80
│     [18] device
│        @ ~\.julia\packages\CUDA\Zmd60\src\state.jl:227 [inlined]
│     [19] alloc
│        @ ~\.julia\packages\CUDA\Zmd60\src\pool.jl:271 [inlined]
│     [20] CuArray{Float32, 1}(#unused#::UndefInitializer, dims::Tuple{Int64})
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\array.jl:20
│     [21] CuArray
│        @ ~\.julia\packages\CUDA\Zmd60\src\array.jl:76 [inlined]
│     [22] similar
│        @ .\abstractarray.jl:779 [inlined]
│     [23] convert
│        @ ~\.julia\packages\GPUArrays\WV76E\src\host\construction.jl:82 [inlined]
│     [24] adapt_storage
│        @ ~\.julia\packages\CUDA\Zmd60\src\array.jl:330 [inlined]
│     [25] adapt_structure
│        @ ~\.julia\packages\Adapt\orWD2\src\Adapt.jl:42 [inlined]
│     [26] adapt
│        @ ~\.julia\packages\Adapt\orWD2\src\Adapt.jl:40 [inlined]
│     [27] cu(xs::Vector{Float64})
│        @ CUDA ~\.julia\packages\CUDA\Zmd60\src\array.jl:342
│     [28] top-level scope
│        @ REPL[2]:1
│     [29] eval(m::Module, e::Any)
│        @ Core .\boot.jl:360
│     [30] eval_user_input(ast::Any, backend::REPL.REPLBackend)
│        @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:139
│     [31] repl_backend_loop(backend::REPL.REPLBackend)
│        @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:200
│     [32] start_repl_backend(backend::REPL.REPLBackend, consumer::Any)
│        @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:185
│     [33] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool)
│        @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:317
│     [34] run_repl(repl::REPL.AbstractREPL, consumer::Any)
│        @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:305
│     [35] (::Base.var"#878#880"{Bool, Bool, Bool})(REPL::Module)
│        @ Base .\client.jl:387
│     [36] #invokelatest#2
│        @ .\essentials.jl:707 [inlined]
│     [37] invokelatest
│        @ .\essentials.jl:706 [inlined]
│     [38] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
│        @ Base .\client.jl:372
│     [39] exec_options(opts::Base.JLOptions)
│        @ Base .\client.jl:302
│     [40] _start()
│        @ Base .\client.jl:485
└ @ CUDA C:\Users\Anand\.julia\packages\CUDA\Zmd60\deps\bindeps.jl:342

So I see (if on Windows, be sure to install the VS C++ redistributable first) but have no idea what this means. So minumum would be nice to include a link or more detailed instruction.

While I got this error, it seems cu still works and arr = cu(rand(10)) gives back a CuArray, so my wonder is if it's specific to the tensor library.

Thanks!

@anandijain anandijain added the bug Something isn't working label Mar 13, 2021
@maleadt
Copy link
Member

maleadt commented Mar 15, 2021

Dup of #757. Please try latest master.

So I see (if on Windows, be sure to install the VS C++ redistributable first) but have no idea what this means. So minumum would be nice to include a link or more detailed instruction.

If you google VS C++ redistributable the top results are all relevant.

@maleadt maleadt changed the title Windows CUDA installation access is denied Improve 'VS C++ redistributable' error message Mar 15, 2021
@maleadt maleadt added documentation Improvements or additions to documentation good first issue Good for newcomers and removed bug Something isn't working labels Mar 15, 2021
@maleadt
Copy link
Member

maleadt commented Aug 17, 2023

This has been added to the documentation, which AFAICT is the only thing we can do here.

@maleadt maleadt closed this as completed Aug 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants