Перейти к содержанию

Установка драйверов 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

  1. Обновляем систему:

    sudo apt update
    sudo apt upgrade -y
    
  2. На Ubuntu 22.04 для видеокарт RTX4xxx серии, A100 и H100 необходимо обновить версию ядра. Также вы можете обновить версию ядра и для более старых видеокарт:

    sudo apt install linux-generic-hwe-22.04
    
  3. Устанавливаем пакет ubuntu-drivers-common и определяем рекомендуемый драйвер для установки:

    sudo apt install ubuntu-drivers-common
    ubuntu-drivers devices
    

    Вы должны получить вывод, похожий на этот:

    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.

  4. Устанавливаем драйвер видеокарты указанной версии:

    sudo apt install nvidia-driver-550
    
  5. Перезагружаем систему.

  6. Проверяем установку драйверов на видеокарту:

    nvidia-smi
    

    Вы должны получить вывод, похожий на этот

    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

  1. Устанавливаем компилятор gcc, необходимый для сборки CUDA

    sudo apt install gcc
    
  2. Качаем и устанавливаем 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
    
  3. Прописываем переменные окружения для обнаружения 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.

  4. Перезагружаем систему.

  5. Проверяем установку CUDA:

    nvcc -V
    

    После правильной установки вы должны получить вывод, похожий на этот:

    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2021 NVIDIA Corporation
    Built on Thu_Nov_18_09:45:30_PST_2021
    Cuda compilation tools, release 11.5, V11.5.119
    Build cuda_11.5.r11.5/compiler.30672275_0
    

Установка CUDA версии 12 (рекомендуется)

  1. Устанавливаем компилятор gcc, необходимый для сборки CUDA:

    sudo apt install gcc
    
  2. Качаем и устанавливаем CUDA. Для Ubuntu 24.04 поправьте в пути wget значение ubuntu2204 на ubuntu2404:

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt update
    sudo apt install cuda -y
    
  3. Прописываем переменные окружения для обнаружения 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.

  4. Перезагружаем систему.

  5. Проверяем установку CUDA:

    nvcc -V
    

    После правильной установки вы должны получить вывод, похожий на этот:

    user@48567:~$ nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2024 NVIDIA Corporation
    Built on Thu_Mar_28_02:18:24_PDT_2024
    Cuda compilation tools, release 12.4, V12.4.131
    Build cuda_12.4.r12.4/compiler.34097967_0
    

Установка модулей 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