Установка драйверов NVIDIA и CUDA на Ubuntu Linux¶
В этой статье
Данная инструкция описывает процесс установки драйверов видеокарт NVIDIA и CUDA на следующие операционные системы: Ubuntu 22.04, Ubuntu 24.04.
Внимание
Для корректной работы видеокарт серии Tesla (например NVIDIA Tesla T4) убедитесь что в BIOS сервера включен параметр 'above 4G decoding' или 'large/64bit BARs' или 'Above 4G MMIO BIOS assignment'.
Установка драйверов NVIDIA¶
-
Обновляем систему:
-
На Ubuntu 22.04 для видеокарт RTX4xxx серии, A100 и H100 необходимо обновить версию ядра. Также вы можете обновить версию ядра и для более старых видеокарт:
-
Устанавливаем пакет
ubuntu-drivers-common
и определяем рекомендуемый драйвер для установки:Вы должны получить вывод, похожий на этот:
user@48567:~$ ubuntu-drivers devices == /sys/devices/pci0000:00/0000:00:02.5/0000:07:00.0 == modalias : pci:v000010DEd000024B0sv000010DEsd000014ADbc03sc00i00 vendor : NVIDIA Corporation model : GA104GL [RTX A4000] driver : nvidia-driver-550 - third-party non-free recommended driver : nvidia-driver-550-open - third-party non-free driver : nvidia-driver-470-server - distro non-free driver : nvidia-driver-535-server - distro non-free driver : nvidia-driver-470 - distro non-free driver : nvidia-driver-545-open - distro non-free driver : nvidia-driver-535-server-open - distro non-free driver : nvidia-driver-535-open - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin
Нужная версия драйвера будет отмечена надписью
recommended
. В нашем случае этоdriver : nvidia-driver-550 - third-party non-free recommended
, значит нам нужно поставить драйвераnvidia-driver-550
. -
Устанавливаем драйвер видеокарты указанной версии:
-
Перезагружаем систему.
-
Проверяем установку драйверов на видеокарту:
Вы должны получить вывод, похожий на этот
user@48567:~$ nvidia-smi Fri May 10 15:58:17 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA RTX A4000 Off | 00000000:07:00.0 Off | Off | | 41% 31C P8 15W / 140W | 3MiB / 16376MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+
Примечание
Актуальную инструкцию по установке драйверов для GPU Nvidia под Ubuntu вы можете найти по этой ссылке
Устанавливаем CUDA¶
CUDA - параллельная платформа вычислений и модель программирования, разработанная NVIDIA, которая позволяет разработчикам использовать возможности современных GPU для обобщённых вычислений, анализа данных и приложений машинного обучения.
Установка CUDA 11.8¶
-
Устанавливаем компилятор gcc, необходимый для сборки CUDA
-
Качаем и устанавливаем CUDA (только для Ubuntu 22.04)
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" sudo apt update && sudo apt upgrade -y sudo apt install cuda-11-8 -y
-
Прописываем переменные окружения для обнаружения CUDA вашими фреймворками и приложениями в
.bashrc
:echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
Внимание
Вы должны выполнить данные команды для всех пользователей, которым нужно использовать CUDA.
-
Перезагружаем систему.
-
Проверяем установку CUDA:
После правильной установки вы должны получить вывод, похожий на этот:
Установка CUDA версии 12 (рекомендуется)¶
-
Устанавливаем компилятор gcc, необходимый для сборки CUDA:
-
Качаем и устанавливаем CUDA. Для Ubuntu 24.04 поправьте в пути
wget
значениеubuntu2204
наubuntu2404
: -
Прописываем переменные окружения для обнаружения CUDA вашими фреймворками и приложениями в
.bashrc
:echo 'export PATH="/sbin:/bin:/usr/sbin:/usr/bin:${PATH}:/usr/local/cuda/bin"' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc
Внимание
Вы должны выполнить данные команды для всех пользователей, которым нужно использовать CUDA.
-
Перезагружаем систему.
-
Проверяем установку CUDA:
После правильной установки вы должны получить вывод, похожий на этот:
Установка модулей NVIDIA для Docker¶
Если вы используете Docker контейнеры не забудьте установить пакет nvidia-docker2
:
```bash
sudo apt install -y nvidia-docker2
sudo systemctl restart docker
```
Установка драйверов и CUDA 12 "за 1 клик"¶
Вы можете использовать данный скрипт для автоматической установки драйверов и CUDA 12:
#!/bin/bash
# Update and upgrade the system using apt
sudo apt update
sudo apt upgrade -y
#Check Ubuntu 22.04 and update kernel
lsb_release=$(lsb_release -a | grep "22.04")
if [[ -n "$lsb_release" ]]; then
# Check if there's a video card with Nvidia (10de) H100 model (23xx)
lspci_output=$(lspci -nnk | awk '/\[10de:23[0-9a-f]{2}\]/ {print $0}')
if [[ -n "$lspci_output" ]]; then
echo "H100 detected"
# If yes install the necessary kernel package
sudo apt install -y linux-generic-hwe-22.04
fi
# Check if there's a video card with Nvidia (10de) A100 model (20xx)
lspci_output=$(lspci -nnk | awk '/\[10de:20[0-9a-f]{2}\]/ {print $0}')
if [[ -n "$lspci_output" ]]; then
echo "A100 detected"
# If yes install the necessary kernel package
sudo apt install -y linux-generic-hwe-22.04
fi
fi
# Install Ubuntu drivers common package
sudo apt install ubuntu-drivers-common -y
recommended_driver=$(ubuntu-drivers devices | grep 'nvidia' | cut -d ',' -f 1 | grep 'recommended')
package_name=$(echo $recommended_driver | awk '{print $3}')
sudo apt install $package_name -y
# Install GCC compiler for CUDA install
sudo apt install gcc -y
# Get the release version of Ubuntu
RELEASE_VERSION=$(lsb_release -rs | sed 's/\([0-9]\+\)\.\([0-9]\+\)/\1\2/')
# Download and install CUDA package for Ubuntu
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${RELEASE_VERSION}/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# Update and upgrade the system again to ensure all packages are installed correctly
sudo apt update
sudo apt install cuda -y
# Add PATH and LD_LIBRARY_PATH environment variables for CUDA in .bashrc file
echo 'export PATH="/sbin:/bin:/usr/sbin:/usr/bin:${PATH}:/usr/local/cuda/bin"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
#Installing Docker binding for Nvidia
if command -v docker &> /dev/null; then
echo "Docker is installed."
sudo apt install -y nvidia-docker2
sudo systemctl restart docker
else
echo "Docker is not installed."
fi
#Reboot the system for enable kernel modules
reboot