Pull to refresh
75.56
HOSTKEY
IT-инфраструктура: сервера, VPS, GPU, коло

Magic bash script для установки драйверов Nvidia и CUDA (и Docker) в Ubuntu 22.04 и 24.04

Level of difficultyEasy
Reading time3 min
Views2.3K

Установка драйверов для видеокарт от Nvidia с одной стороны сейчас не вызывает столько проблем, как было еще 10-15 лет назад, с другой стороны если с драйверами еще как-то народ управляется, то вот работоспособную CUDA получить могут не все. У себя в HOSTKEY мы создали специальный скрипт, который пользователь может запустить самостоятельно (привет лицензионным отчислениям Nvidia) и получить рабочее окружение для запуска всего — от PyTorch до Stable Diffusion и Ollama с поддержкой GPU.

Что делает этот скрипт?

  1. Он обновляет систему, определяя тип видеокарты по ее DeviceID и устанавливая ядро Linux 6-й версии, которое нужно для A100/H100 серии на Ubuntu 22.04;

  2. Устанавливает рекомендованные Ubuntu драйвера на вашу видеокарту;

  3. Подключает репозитории Nvidia и устанавливает CUDA;

  4. Прописывает необходимые переменные окружения для ее работы, попутно восстанавливая пути к /bin и /usr/bin, которые вы гарантированно поломаете, если будете следовать официальной инструкции;

  5. Если у вас установлен Docker, то добавляет поддержку GPU в контейнеры.

Скрипт должен корректно отрабатывать на любых видеокартах старше 8xx версии и до последних моделей. Мы проверяли его у себя на Tesla T4, GTX 1080, A4000, A5000, RTX 4090 и H100.

Сам скрипт
#!/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 "A100 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
sudo apt install nvidia-cuda-toolkit -y

# Add PATH and LD_LIBRARY_PATH environment variables for CUDA in .bashrc file
echo 'export PATH="/usr/bin:/bin:$PATH/usr/local/cuda/bin\${PATH:+:\${PATH}}"' >> ~/.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

Сохраните его у себя в домашней директории как nvidia_install.sh, не забудьте задать через chmod +x nvidia_install.sh права на запуск и запустите через sudo nvidia_install.sh. Через 5-10 минут (в зависимости от скорости вашего интернета) вы получите работающую систему, на которой можно дальше экспериментировать с теми же нейросетями.


Закажите виртуальный или выделенный сервер с предустановленным корпоративным мессенджером Rocket.Chat! Вы можете выбрать сервер в дата-центре в России или в дата-центрах в Европе, США или Турции. Оплата в рублях по счету от российской компании.

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+15
Comments7

Articles

Information

Website
www.hostkey.ru
Registered
Founded
Employees
31–50 employees
Location
Россия