Install the NVIDIA driver
This might be an optional step, but it is always good to first remove potential previously installed NVIDIA drivers:
sudo apt-get purge *nvidia*
sudo apt autoremove
Next, let's install the latest driver:
sudo apt install nvidia-driver-455
After this, we need to restart the computer to finalize the driver installation.
Next we can verify whether the drive was succesfully installed:
nvidia-smi
This should contain the following or similar:
NVIDIA-SMI 455.28 Driver Version: 455.28
Install CUDA Toolkit
Next we can install the CUDA toolkit:
sudo apt install nvidia-cuda-toolkit
We also need to set the CUDA_PATH. Add this
export CUDA_PATH=/usr
at the end of your .bashrc
and run
source ~/.bashrc
Now your CUDA installation should be complete, and
nvidia-smi
should indicate that you have CUDA 11.1 installed.
Test the CUDA toolkit installation /configuration
One of the best way to verify whether CUDA is properly installed is using the official "CUDA-sample". Ubuntu does not package them as part of "nvidia-cuda-toolkit" but we can download them directly from NVIDIA's github page:
wget https://github.com/NVIDIA/cuda-samples/archive/v11.1.tar.gz
tar xvf v11.1.tar.gz
cd cuda-samples-11.1
For whatever reason, NVIDIA did not chose to include a modern build system (e.g. cmake), but ships a plain old Makefile instead. If just running "make" does not work for you, carefully read the error messages and see whether e.g. some required dependencies are not installed.
In order to help the build process a little, it might be advisable to specify the compute architecture of your GPU.
- You can find out your GPU by running
nvidia-smi
. Mine is a Quadro RTX 3000.
- Next google your GPU to find out the corresponding compute architecture. For the Quadro RTX 3000, it is "turing", version 7.5.
- Specify the architecture version when running make, e.g.
make SMS="75"
If the compilation was succesful, you can try out one of the samples. For instance:
./bin/x86_64/linux/release/immaTensorCoreGemm
You should see the following or similar output:
M: 4096 (16 x 256)
N: 4096 (16 x 256)
K: 4096 (16 x 256)
Preparing data for GPU...
Required shared memory size: 64 Kb
Computing... using high performance kernel compute_gemm_imma
Time: 6.030176 ms
TOPS: 22.79