I suggest using conda to install cuda for version control your project.
Note that nvidia-smi lists the maximum CUDA version supported by the GPU driver, not the installed version of CUDA.
You can have a different version of CUDA installed in each conda environment, independently of the version supported by the GPU driver.
# Install the runtime only
condainstall-c"nvidia/label/cuda-11.8.0"cuda-toolkit
# Install the runtime and the development tools
condainstall-c"nvidia/label/cuda-11.8.0"cuda-toolkitcuda-libraries-devcuda-nvcc
# Set UBUNTU_VERSION to 2004 or 2204UBUNTU_VERSION=$(lsb_release-sr|sed-e's/\.//g')# Install nvidia driver
sudoaptinstallnvidia-driver-545
# Add NVIDIA package repositories
wgethttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/cuda-ubuntu${UBUNTU_VERSION}.pin
sudomvcuda-ubuntu${UBUNTU_VERSION}.pin/etc/apt/preferences.d/cuda-repository-pin-600
sudoapt-keyadv--fetch-keyshttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/3bf863cc.pub
sudoadd-apt-repository"deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/ /"# Install cuda.
sudoaptinstallcuda
# Reboot and check that the drivers are working with nvidia-smi
sudoreboot
# Install cudnn if needed
sudoaptinstalllibcudnn8libcudnn8-dev
Notes
For machine learning, use Anaconda or Docker's CUDA since different versions of TensorFlow and PyTorch require different CUDA versions.
You may need to add LD_LIBRARY_PATH=/usr/local/cuda/lib64 to your environment variables.
You can also do this in PyCharm.
GCC Versions
nvcc sometimes only supports older gcc/g++ versions.
To make it use those by default, create the following symlinks:
sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++
Alternatively, you can use -ccbin and point to your gcc: