Error installing CUDAnative on v0.6 : Resolved

cudanative

#1

I have installed a small GEForce GT-610 in my box and in BIOS directed the video output to the IGFX which hopefully leaves the CUDA card free for processing numbers.

I had a problem getting CUDAnative,jl installed and would appreciate advice. I know the card works on the video side since openSUSE and MB BIOS defaulted to it on install and I corrected this. However I have yet to get an acknowledgement that the CUDA side is working and available. I have the CUDA toolset v.8 installed from NVidia. I’m using Julia v 0.6 dev 2444.

Following the installation guide for CUDAnative.jl I ran Pkg.add(“CUDAnative”) which ended with:
INFO: Building CUDAnative

WARNING: deprecated syntax “local t0=CuEvent(), t1=CuEvent()” at /home/colin/.julia/v0.6/CUDAdrv/src/events.jl:65.
Use “local t0, t1 = CuEvent(), CuEvent()” instead.
=============================[ ERROR: CUDAnative ]==============================

LoadError: InitError: CUDAdrv.CuError(100,Nullable{String}())
during initialization of module CUDAdrv
while loading /home/colin/.julia/v0.6/CUDAnative/deps/build.jl, in expression starting on line 3

================================================================================
ERROR: UndefVarError: CUDAdrv not defined
in deserialize(::SerializationState{IOStream}, ::Type{Module}) at ./serialize.jl:611
in handle_deserialize(::SerializationState{IOStream}, ::Int32) at ./serialize.jl:590
in deserialize(::SerializationState{IOStream}) at ./serialize.jl:550

Let me know if you need more. Thanks.


#2

Thank you for reporting this. Can you show us the output of Pkg.status()?

I just tagged a release that removes the deprecation warnings on v0.6. You can test that release right now by doing Pkg.checkout("CUDAdrv"). The do a Pkg.test("CUDAdrv") to verify that your GPU and CUDAdrv get along.

I just checked on the internet and it seems that the GT610 only has compute capability 2.1 and you might run into https://github.com/JuliaGPU/CUDAdrv.jl/issues/10.

I hope this helps,
-V


#3

Here is my Pkg.status after the checkout recommended and Julia updated to dev 2464 and Pkg.update(). Pkg.test of CUDAdrv now produces the same error without the warning in the previous report:

> Pkg.status()
17 required packages:
 - ArgParse                      0.4.0
 - Blosc                         0.1.7
 - CUDAdrv                       0.2.1              master
 - Clustering                    0.7.0
 - DataArrays                    0.3.10             c3fe3a2a (dirty)
 - DataFrames                    0.8.5
 - Escher                        0.3.3
 - Formatting                    0.2.0
 - LightXML                      0.4.0
 - Match                         0.3.0
 - Plotly                        0.1.1
 - Plots                         0.10.3
 - Primes                        0.1.2
 - PyCall                        1.8.0
 - PyPlot                        2.2.4
 - RegERMs                       0.0.2
 - Requests                      0.3.12
56 additional packages:
 - BinDeps                       0.4.5
 - Blink                         0.5.0
 - BufferedStreams               0.2.3
 - Calculus                      0.2.0
 - Codecs                        0.2.0
 - ColorTypes                    0.3.0
 - Colors                        0.7.0
 - Compat                        0.14.0
 - Conda                         0.4.0
 - DataStructures                0.5.2
 - Dates                         0.4.4
 - Distances                     0.3.2
 - DocStringExtensions           0.3.1
 - DualNumbers                   0.2.3
 - FileIO                        0.2.2
 - FixedPointNumbers             0.3.0
 - FixedSizeArrays               0.2.5
 - FunctionalCollections         0.3.0
 - GZip                          0.2.20
 - Hiccup                        0.1.1              master
 - HttpCommon                    0.2.6
 - HttpParser                    0.2.0
 - HttpServer                    0.1.7
 - Iterators                     0.2.0
 - JSON                          0.8.2
 - Juno                          0.2.5
 - LaTeXStrings                  0.2.0
 - Lazy                          0.11.5
 - Libz                          0.2.2
 - MacroTools                    0.3.4
 - Markdown                      0.3.0
 - MbedTLS                       0.4.3
 - Measures                      0.0.3
 - Media                         0.2.5
 - Mustache                      0.1.3
 - Mux                           0.2.3
 - NaNMath                       0.2.2
 - NearestNeighbors              0.1.1
 - Optim                         0.4.5
 - Patchwork                     0.3.0
 - PlotThemes                    0.1.0
 - PlotUtils                     0.3.0
 - PlotlyJS                      0.5.2
 - PositiveFactorizations        0.0.3
 - Reactive                      0.3.6
 - RecipesBase                   0.1.0
 - Reexport                      0.0.3
 - Requires                      0.3.0
 - SHA                           0.3.0
 - Showoff                       0.0.7
 - SortingAlgorithms             0.1.0
 - StaticArrays                  0.1.4
 - StatsBase                     0.13.0
 - TextWrap                      0.1.6
 - URIParser                     0.1.7
 - WebSockets                    0.2.1

#4

Hmmm, here is something else, I will try to sort this out:

> using CUDAdrv
ERROR: InitError: No CUDA-capable device (CUDA error #100, ERROR_NO_DEVICE)
Stacktrace:
 [1] init() at /home/colin/.julia/v0.6/CUDAdrv/src/base.jl:61
 [2] __init_library__() at /home/colin/.julia/v0.6/CUDAdrv/src/base.jl:78
 [3] __init__() at /home/colin/.julia/v0.6/CUDAdrv/src/CUDAdrv.jl:29
 [4] _include_from_serialized(::String) at ./loading.jl:157
 [5] _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:194
 [6] _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:224
 [7] require(::Symbol) at ./loading.jl:409
during initialization of module CUDAdrv

#5

It’s a permissions issue. I can get CUDAdrv and CUDAnative installed as root, but then as @vchuravy warns I run into the no kernel image available error. I will dig for more info on the permissions.


#6

I think the problem is that you set the integrated GPU(the intel one) to be active.
I suspect that the driver is not even loaded by the kernel.

It used to be that only in Tesla GPU you could work headless, I don’t know what is the situation today.
you should research that and get to the point
where the GPU is working (try running nvidia-smi on linux)
And only then try the julia wrapper CUDAnative


#7

(Embarrassed) I’m afraid it is a case of RTFM. The permissions issue was a result of my failure to add the user to the video group according to the NVIDIA explicit instructions on the installation of CUDA. Now I can Pkg.add both CUDAdrv and CUDAnative as a regular user. Julia tests pass on CUDAdrv but fail on CUDAnative so I will close this query and start a new one. Thank you much for your assistance and concern.


#8

No worries and happy to hear that CUDAdrv works properly now.