NVIDIA + CUDA на Ubuntu: без боли и магии

NVIDIA драйверы, CUDA и Docker на Ubuntu — как всё работает и как это поставить без боли В этом видео мы наглядно разбираем, из чего состоит «видеостек» под Linux: ядро и системные вызовы, модули драйвера NVIDIA, пользовательские библиотеки (OpenGL/Vulkan/CUDA) и CUDA Toolkit. Затем пошагово ставим драйверы, настраиваем CUDA и подключаем GPU к контейнерам. *Для кого:* разработчики ML/DS/MLOps, инженеры платформ, DevOps/SRE, геймеры и 3D‑графика на Linux. Что внутри Короткая теория: ядро, драйверы и системные вызовы — кто с кем говорит и почему. Из чего состоит драйвер NVIDIA: модуль ядра + юзерспейс‑библиотеки. Что такое CUDA Toolkit: компилятор `nvcc`, рантайм, драйверные библиотеки, наборы для BLAS/линала и ИИ. Как выбрать и поставить драйвер на Ubuntu: `ubuntu-drivers` vs репозиторий NVIDIA vs runfile. DKMS и обновления ядра: как не потерять модуль после апдейта. CUDA и совместимость версий. NVIDIA Container Toolkit: как дать контейнеру доступ к GPU без боли. Типовые ошибки и их диагностика. Быстрый старт (шпаргалка) ```bash 1) Определить GPU lspci | egrep -i "vga|3d|nvidia" 2) Подобрать и поставить драйвер из репозиториев Ubuntu ubuntu-drivers devices sudo ubuntu-drivers autoinstall 3) Проверить установку nvidia-smi 4) Установить CUDA Toolkit (из репозитория NVIDIA или Ubuntu) Пример для репозитория NVIDIA (версии/ключи см. оф. инструкции) sudo apt-get install cuda-toolkit-12-3 5) Проверить nvcc nvcc --version 6) NVIDIA Container Toolkit Установить пакет, перезапустить docker и проверить: sudo systemctl restart docker docker run --rm --gpus all nvidia/cuda:12.3.2-runtime-ubuntu22.04 nvidia-smi ``` Путеводитель по установке *Метод 1 — Ubuntu Drivers (рекомендуем большинству):* Плюсы: интеграция с ядром/DKMS, автообновления, минимальные риски. Минусы: не всегда самая свежая версия. *Метод 2 — Официальный репозиторий NVIDIA:* Плюсы: новее, чем в Ubuntu. Минусы: больше ручной поддержки, важно следить за совместимостью. *Метод 3 — Runfile (только для экспертов/особых кейсов):* Плюсы: полный контроль. Минусы: легко «переехать» системные пакеты, нужно вручную пересобирать модуль при каждом обновлении ядра. Совместимость версий (матрица на салфетке) *GPU ↔ драйвер:* новые GPU требуют минимум определённой версии драйвера. *Драйвер ↔ CUDA:* новая CUDA может требовать новый драйвер. *CUDA ↔ фреймворки:* релизы PyTorch/TensorFlow завязаны на конкретные CUDA/CuDNN. Итог: начните с фреймворка (какую версию вам нужна?), затем подберите подходящую CUDA и минимальный драйвер под ваш GPU. NVIDIA Container Toolkit (Docker) Контейнер получает доступ к GPU через рантайм NVIDIA. Базовые образы: `nvidia/cuda:версия-runtime-ubuntu22.04` и `…-devel-…` для сборки. Девайсы и библиотеки пробрасываются прозрачно, производительность близка к нативной. Траблшутинг `Secure Boot` включён → модуль не грузится: временно отключите или подпишите модуль. DKMS не пересобрал модуль после обновления ядра → проверьте `dkms status` и логи `dmesg`. «Черный экран» после установки: откатитесь в `recovery`, удалите пакеты драйвера, переустановите стабильную версию. Смешение источников (Ubuntu + runfile) → конфликты: придерживайтесь одного метода. `nvidia-smi` не видит GPU в контейнере → проверьте `--gpus all`, версию драйвера на хосте, перезапуск Docker. Мини‑чек‑лист перед установкой Узнайте точную модель GPU и версию ядра (`uname -r`). Решите, какой фреймворк/версия вам нужна (PyTorch/TF) → от этого зависит CUDA. Выберите метод установки (мы за Ubuntu Drivers или оф. репозиторий). Сделайте точку восстановления/снимок системы (если возможно). Если нужен аудит вашего GPU‑стека или помощь с продакшен‑деплоем — пишите нам. Мы строим устойчивые ML‑платформы и продакшен‑пайплайны под вычислительные нагрузки.

Смотрите также