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 для управления окружениями