CUDA 10.1 installation on Ubuntu 20.04

Vladislav I. Kulbatski
1 min readJul 24, 2019

--

*also works for Ubuntu 18.04

I’ll start my story with saying that I had issues like three years ago with CUDA 8.0 and Ubuntu 16.04. This time I’ll be smarter and document the process for my future self.

  1. Start terminal and remove any NVIDIA traces you may have on your machine.
sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
sudo apt remove --autoremove nvidia-*

2. Setup the correct CUDA PPA on your system

sudo apt update
sudo add-apt-repository ppa:graphics-drivers
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pubsudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda_learn.list'

3. Install CUDA 10.1 packages

sudo apt update
sudo apt install cuda-10-1
sudo apt install libcudnn7

4. As the last step one need to specify PATH to CUDA in ‘.profile’ file. Open the file by running:

sudo vi ~/.profile

And add the following lines at the end of the file:

# set PATH for cuda 10.1 installation
if [ -d "/usr/local/cuda-10.1/bin/" ]; then
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi

5. Restart and check the versions for the installation.

CUDA:

nvcc  – versionnvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168

NVIDIA Driver:

nvidia-smi

libcudnn:

/sbin/ldconfig -N -v $(sed ‘s/:/ /’ <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

Enjoy CUDA coding!

Bonus track for everyone who wonders why it is so complicated:

https://youtu.be/IVpOyKCNZYw

--

--

Vladislav I. Kulbatski

Engineer with background in architecting, deploying, automating and maintaining complex highly-available distributed systems.