Установка CUDA на Debian 13, 12, 11: подробное руководство

CUDA (Compute Unified Device Architecture) — это платформа параллельных вычислений от NVIDIA, которая позволяет использовать вычислительные ядра видеокарты (GPU) для решения ресурсоёмких задач: машинное обучение, научные симуляции, видеокодирование, обработка изображений. Установка CUDA на Debian включает три компонента: драйвер NVIDIA, тулкит (компилятор nvcc и библиотеки) и репозиторий. Главные сложности для новичка: нужно добавить репозитории contrib и non-free, правильно импортировать GPG-ключ NVIDIA (для Debian 13 он другой), выбрать способ установки (стабильный из Debian или свежий из репозитория NVIDIA), а также решить проблему с Secure Boot (создать MOK-пароль). На Debian 11 максимальная версия CUDA — 12.6.x (из-за ограничений библиотеки glibc).

💡 В этом руководстве вы установите CUDA на Debian двумя способами: из стандартного репозитория Debian (стабильнее, но старше) и из официального репозитория NVIDIA (новее). Вы также узнаете, как настроить окружение, проверить работу на тестовой программе и решить типичные проблемы.

В этой статье вы узнаете:

  • Как подготовить систему: включить contrib и non-free, установить зависимости
  • Как установить CUDA из репозитория Debian (проще, стабильнее)
  • Как установить CUDA из официального репозитория NVIDIA (свежее)
  • Как настроить переменные окружения PATH и LD_LIBRARY_PATH
  • Как проверить установку с помощью nvidia-smi и nvcc
  • Как скомпилировать и запустить тестовую CUDA-программу
  • Как решить типичные проблемы: конфликт драйверов, Secure Boot, ошибки GPG-ключа

Для кого: разработчики ML/AI, исследователи, энтузиасты, а также все, кому нужно использовать GPU-ускорение на Debian 11, 12 или 13.

Оглавление

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13
  • У вас есть совместимая видеокарта NVIDIA (для CUDA-вычислений)
  • Подключение к интернету стабильно
  • У вас есть права sudo

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.

Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

1.1 Обновление системы

sudo apt update && sudo apt upgrade -y

Что делает: Обновляет список пакетов и устанавливает последние обновления.

Зачем: Важно, чтобы ядро системы и заголовки были актуальны, так как драйвер NVIDIA компилирует модули ядра.

1.2 Включение репозиториев contrib и non-free

CUDA находится в компонентах contrib и non-free. Включите их в зависимости от версии Debian.

Для Debian 13 и 12 (новый формат DEB822):

sudo sed -i 's/Components: main/Components: main contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources
sudo apt update

Для Debian 11 (старый формат sources.list):

sudo sed -i 's/main$/main contrib non-free/' /etc/apt/sources.list
sudo apt update

1.3 Установка вспомогательных пакетов

sudo apt install ca-certificates curl gpg -y

Что делает: Устанавливает инструменты для безопасной работы с HTTPS-репозиториями и GPG-ключами.

1.4 (Опционально) Удаление предыдущих установок NVIDIA и CUDA

Если вы ранее устанавливали драйверы NVIDIA или CUDA другим способом (из .run-файла или старых пакетов), удалите их.

Для пакетов APT:

sudo apt remove 'cuda*' 'nvidia*' --purge -y
sudo apt autoremove --purge -y

Для установки из .run-файла:

sudo nvidia-installer --uninstall
sudo /usr/local/cuda-X.Y/bin/cuda-uninstaller

2. 📊 Сравнение способов установки CUDA

В Debian есть два основных способа установки CUDA. Вот их сравнение:

МетодОткудаВерсияОбновленияПлюсыМинусы
Debian
репозиторий
Репозитории
Debian
Debian 13: 12.4,
Debian 12: 11.x,
Debian 11: 11.x
Через
apt upgrade
Стабильность,
проверенные
пакеты, не
нужно
возиться с
ключами
Версии старые,
особенно на
Debian 11/12
Репозиторий
NVIDIA
Официальный
репозиторий
NVIDIA
Последняя (13.x для Debian 13, 12.x для Debian 11/12)Через
apt upgrade
Свежие
версии
тулкита и
драйверов
Нужно вручную
добавлять
репозиторий
и GPG-ключ,
возможны
конфликты с
Secure Boot

💡 Рекомендация: Если вам нужна максимальная стабильность и вы не гонитесь за самой свежей версией CUDA — используйте репозиторий Debian. Если вы разрабатываете на PyTorch/TensorFlow и нужна свежая CUDA — используйте репозиторий NVIDIA.

3. 📦 Способ 1: Установка CUDA из репозитория Debian (стабильнее, но старше)

Этот способ подходит для тех, кто предпочитает проверенные пакеты от Debian.

3.1 Проверка доступной версии

apt-cache policy nvidia-cuda-toolkit

Ожидаемый вывод (Debian 13):

nvidia-cuda-toolkit:
  Installed: (none)
  Candidate: 12.4.131~12.4.1-2

3.2 Установка CUDA и драйвера

sudo apt install nvidia-cuda-toolkit nvidia-driver -y

Что делает: Устанавливает CUDA Toolkit (компилятор nvcc, библиотеки) и драйвер NVIDIA.

3.3 Перезагрузка

sudo reboot

3.4 Настройка переменных окружения

Для Debian-репозитория переменные окружения обычно не нужны, так как nvcc устанавливается в /usr/bin. Но для уверенности проверьте:

which nvcc

Ожидаемый вывод: /usr/bin/nvcc

4. 📦 Способ 2: Установка CUDA из официального репозитория NVIDIA (свежее)

Этот способ подходит для разработчиков, которым нужны новые функции CUDA и свежие драйверы.

4.1 Импорт GPG-ключа NVIDIA (выберите команду для вашей версии Debian)

Для Debian 13 (x86_64):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64/8793F200.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg

Для Debian 13 (ARM64/SBSA):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian13/sbsa/8793F200.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg

Для Debian 12 (x86_64):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg

Для Debian 12 (ARM64/SBSA):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian12/sbsa/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg

Для Debian 11 (x86_64):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg

4.2 Добавление репозитория NVIDIA

Для Debian 13 (x86_64):

sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null <<EOF
Types: deb
URIs: https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64/
Suites: /
Signed-By: /usr/share/keyrings/nvidia-cuda.gpg
EOF

Для Debian 13 (ARM64/SBSA):

sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null <<EOF
Types: deb
URIs: https://developer.download.nvidia.com/compute/cuda/repos/debian13/sbsa/
Suites: /
Signed-By: /usr/share/keyrings/nvidia-cuda.gpg
EOF

Для Debian 12 (x86_64):

sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null <<EOF
Types: deb
URIs: https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/
Suites: /
Signed-By: /usr/share/keyrings/nvidia-cuda.gpg
EOF

Для Debian 12 (ARM64/SBSA):

sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null <<EOF
Types: deb
URIs: https://developer.download.nvidia.com/compute/cuda/repos/debian12/sbsa/
Suites: /
Signed-By: /usr/share/keyrings/nvidia-cuda.gpg
EOF

Для Debian 11 (x86_64):

sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null <<EOF
Types: deb
URIs: https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/
Suites: /
Signed-By: /usr/share/keyrings/nvidia-cuda.gpg
EOF

4.3 Обновление списка пакетов

sudo apt update

4.4 Проверка доступной версии CUDA

apt-cache policy cuda

Ожидаемый вывод (Debian 13):

cuda:
  Installed: (none)
  Candidate: 13.1.1-1

4.5 Установка CUDA и драйвера

sudo apt install cuda nvidia-driver -y

Что делает: Устанавливает CUDA Toolkit и драйвер NVIDIA из официального репозитория.

4.6 Перезагрузка

sudo reboot

4.7 Настройка переменных окружения (важно для репозитория NVIDIA!)

Пакет cuda устанавливается в /usr/local/cuda, а не в системные директории. Нужно добавить пути в PATH и LD_LIBRARY_PATH.

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

Что делает: Добавляет команды в файл ~/.bashrc, чтобы при каждом запуске терминала переменные окружения были установлены правильно.

4.8 Проверка, что nvcc теперь виден

which nvcc

Ожидаемый вывод: /usr/local/cuda/bin/nvcc

5. ✅ Проверка установки

5.1 Проверка драйвера NVIDIA

nvidia-smi

Ожидаемый вывод: Таблица с информацией о видеокарте, драйвере и версии CUDA.

5.2 Проверка компилятора CUDA

nvcc --version

Ожидаемый вывод: Информация о версии nvcc.

5.3 Компиляция и запуск тестовой программы

Создание файла hello.cu:

cat <<'EOF' > hello.cu
#include <stdio.h>
#include <cuda_runtime.h>

__global__ void helloFromGPU(void) {
    printf("Hello World from GPU!\n");
}

int main(void) {
    printf("Hello World from CPU!\n");
    helloFromGPU<<<1, 10>>>();
    cudaDeviceSynchronize();
    return 0;
}
EOF

Компиляция:

nvcc hello.cu -o hello

Запуск:

./hello

Ожидаемый вывод: Строка Hello World from CPU! и 10 строк Hello World from GPU!.

6. ⚠️ Решение типичных проблем

6.1 Ошибка: GPG key для репозитория NVIDIA не работает

Симптом: sudo apt update выдаёт ошибку GPG error или signature verification failed.

Причина: Ключ не загрузился или загрузился неправильно.

Решение: Перезагрузите ключ (пример для Debian 13 x86_64):

sudo rm -f /usr/share/keyrings/nvidia-cuda.gpg
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64/8793F200.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-cuda.gpg
sudo apt update

6.2 Ошибка: nvidia-smi: command not found

Симптом: Драйвер не установлен или модули ядра не загрузились.

Пошаговое решение:

Шаг 1: Проверьте, загружены ли модули NVIDIA:

lsmod | grep nvidia

Шаг 2: Если вывода нет — проверьте логи ядра:

sudo dmesg | grep -i nvidia

Шаг 3: Перезагрузитесь (иногда после установки драйверов модули не загружаются до перезагрузки):

sudo reboot

Шаг 4: Если проблема осталась — проверьте, заблокирован ли свободный драйвер nouveau:

lsmod | grep nouveau

Если nouveau активен — создайте файл чёрного списка:

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/nvidia-blacklist.conf
sudo update-initramfs -u
sudo reboot

6.3 Ошибка: nvcc: command not found (после установки из репозитория NVIDIA)

Симптом: nvcc --version не работает.

Причина: Не настроены переменные окружения (раздел 4.7).

Решение: Проверьте, есть ли файл /usr/local/cuda/bin/nvcc. Если есть — настройте PATH (см. раздел 4.7).

6.4 Secure Boot: ключ MOK (Machine Owner Key)

Симптом: Во время установки драйвера появляется запрос на создание пароля MOK, а после перезагрузки — синий экран с просьбой «Enroll MOK».

Причина: Secure Boot требует подписи модулей ядра.

Решение: При запросе создайте пароль. После перезагрузки в MOK management выберите «Enroll MOK», введите пароль и подтвердите. Если не хотите возиться — отключите Secure Boot в BIOS/UEFI перед установкой.

6.5 Ошибка зависимостей: broken packages

Симптом: apt install выдаёт ошибки о неразрешимых зависимостях.

Причина: Не включены репозитории contrib и non-free (раздел 1.2).

Решение: Проверьте, что в ваших источниках APT есть contrib и non-free. Для Debian 13/12 команда:

grep Components /etc/apt/sources.list.d/debian.sources

Должно быть: Components: main contrib non-free non-free-firmware.

7. ❌ Удаление CUDA

Удаление пакетов

sudo apt remove 'cuda*' 'nvidia*' --purge -y
sudo apt autoremove --purge -y

Удаление репозитория NVIDIA (если добавляли)

sudo rm -f /etc/apt/sources.list.d/nvidia-cuda.sources
sudo rm -f /usr/share/keyrings/nvidia-cuda.gpg
sudo apt update

Проверка удаления

nvcc --version

Ожидаемый вывод: bash: nvcc: command not found

8. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Репозитории contrib и non-free включены
  • [ ] Выбран и выполнен один из способов установки (Debian / NVIDIA)
  • [ ] Драйвер NVIDIA работает (nvidia-smi показывает видеокарту)
  • [ ] Компилятор CUDA работает (nvcc --version показывает версию)
  • [ ] Тестовая программа компилируется и запускается (./hello выводит сообщения с GPU)
  • [ ] (Для репозитория NVIDIA) Переменные PATH и LD_LIBRARY_PATH настроены

Заключение

Вы установили CUDA на Debian. Если вы выбрали репозиторий Debian — получили стабильную, проверенную версию, но, возможно, не самую свежую. Если выбрали официальный репозиторий NVIDIA — получили последнюю версию CUDA и драйверов. Теперь вы можете разрабатывать и запускать GPU-ускоренные приложения: фреймворки машинного обучения (PyTorch, TensorFlow), научные расчёты и многое другое.

Что дальше:

  • Установите PyTorch с поддержкой CUDA или TensorFlow
  • Изучите примеры из NVIDIA CUDA Samples
  • Настройте CuPy для ускорения NumPy-кода на GPU
  • Для глубокого обучения рассмотрите установку Anaconda для управления окружениями