I am not sure if this is a Julia language problem or a Manjaro problem, possibly a combination of both as the problem seems to have appeared after recent updates in Manjaro and Julia.
When I run using Flux in the Julia environment I get the following warning and error:
┌ Warning: This version of CUDA.jl only supports NVIDIA drivers for CUDA 10.1 or higher (yours is for CUDA 9.1.0)
└ @ CUDA ~/.julia/packages/CUDA/0p5fn/src/initialization.jl:111
ERROR: InitError: Could not find a suitable CUDA installation
The first part of the part of the problem may be due to an update in CUDA.jl now requiring NVIDIA drivers >= CUDA 10.1.
However the second part of the problem, implying I have NVIDIA drivers for CUDA 9.1.0, seems to be an issue with my Manjaro system, could this be because I have an older NVIDIA graphics card requiring the NVIDIA 390 series drivers?
Can anyone enlighten me and suggest some fixes or further investigation (that don’t require a new graphics card!) ?
I would just use Flux without CUDA, I can’t see that graphic card giving you any help at this point in time. You can’t realistically expect any GPU acceleration from a card that is 8 years old? (quick lookup on wikipedia)
I posted this problem to the Julia forum also and had this response:
Flux depends on CUDA.jl by default for GPU acceleration, so using Flux will always try to find and load GPU-related functionality. On a machine without nvidia drivers installed (e.g. your netbook), this will fail gracefully and not attempt to run any more CUDA-specific code. Think of it as the “CPU-only” mode.
When your machine does have nvidia drivers installed (presumably because there’s an nvidia GPU attached to it), CUDA.jl will try to download and run an appropriate SDK based on your current driver version.
My graphics card (GPU), NVIDIA GF119 [GeForce GT 610], is too old to support more recent NVIDIA drivers so I have uninstalled the 390 driver and swithed to using Nouveau for now, that has enabled using Flux to run without error.
However for when using the NVIDIA drivers they also suggested to try:
setting the environment variable CUDA_VISIBLE_DEVICES=""
If and when NVIDIA 390 driver support arrives for the 5.9 kernel I may revert to the NVIDIA driver and test that option.
I am a beginner with Flux, I am just writing my first program that uses it, so I am nowhere near measuring speeds, I will just be happy to get my code working at this stage.
Nope, my other post in the Julia forum thread was:
My whole desktop system is old, circa 2008, the latest Raspberry Pi may give me similar or better performance! So I am acutely aware I need new or more recent hardware, which is another way to fix the Flux problem, but that will have to wait until next year.
In follow up to this problem; I have now reverted to using the NVIDIA drivers, for smooth graphics and video. However I needed to learn a little more about shell and environment variables to fix the reported problem and discovered I needed to enter:
for this to be an environment variable, without export it is a shell variable. This masks|hides the GPU. In the Julia environment, using Flux now runs without warnings or errors.