Hello!
I am trying to use julia 1.2.0 on a remote GPU system and I am having trouble creating a virtual environment where I can add the packages I need. These are the packages available in the remote machine:
(v1.2) pkg> status
Status `/usr/local/share/julia/environments/v1.2/Project.toml`
[3895d2a7] CUDAapi v1.2.0
[c5f51814] CUDAdrv v4.0.2
[be33ccc6] CUDAnative v2.5.1
[3a865a2d] CuArrays v1.4.1
I don’t have admin privileges to add or update packages, but I’m assuming I can do that in a virtual environment.
All the tutorials I’ve found on creating virtual environments require adding a package like Playground.jl or VirtualEnv.jl. Is it possible to create a virtual environment using the versions of CUDA I have listed above?
Any advice or thoughts are welcomed!
First, is there any particular reason you’re stuck using Julia v1.2? That’s several years old at this point and basically unsupported - the current long-term support version is v1.6. Using an old version of Julia also prevents you from using modern versions of Julia’s CUDA stack - I’d highly recommend upgrading to at least Julia v1.6.
Julia’s built-in package manager supports environments by default, so you shouldn’t need any external package. Briefly:
julia> cd(mktempdir())
(@v1.8) pkg> activate CUDATestProject # enter Pkg mode with the ] key
Activating new project at `C:\Users\alexa\AppData\Local\Temp\jl_gcrbSw\CUDATestProject`
(CUDATestProject) pkg> add CUDA
Updating registry at `C:\Users\alexa\.julia\registries\General.toml`
Resolving package versions...
Installed GPUArraysCore ─ v0.1.0
[...]
julia> using CUDA
julia> @time sum(CUDA.rand(10^8)) # CUDA is downloaded at time of first use
Downloaded artifact: CUDA
145.488497 seconds (30.93 M allocations: 2.484 GiB, 0.50% gc time, 4.94% compilation time)
5.000604f7
julia> @time sum(CUDA.rand(10^8))
0.093087 seconds (145 allocations: 7.844 KiB)
4.9994404f7
Unfortunately, I am stuck with julia v1.2.0 for now. I’ll ask our IT if they can update their julia version. But your suggestion worked for me. Many thanks!
julia> mktempdir(tempdir())
"/tmp/jl_SXNP1z"
(v1.2) pkg> activate CUDATestProject
Activating new environment at `~/CUDATestProject/Project.toml`
(CUDATestProject) pkg> add BenchmarkTools
Resolving package versions...
Updating `~/CUDATestProject/Project.toml`
[6e4b80f9] + BenchmarkTools v0.4.3
Updating `~/CUDATestProject/Manifest.toml`
[6e4b80f9] + BenchmarkTools v0.4.3
[682c06a0] + JSON v0.21.0
[69de0a69] + Parsers v0.3.8
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8ba89e20] + Distributed
[b77e0a4c] + InteractiveUtils
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[a63ad114] + Mmap
[de0858da] + Printf
[9a3f8284] + Random
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[2f01184e] + SparseArrays
[10745b16] + Statistics
[8dfed614] + Test
[4ec0a83e] + Unicode
You can just download and extract an archive containing Julia to your home folder or wherever, it doesn’t need any installation.