Настройка NVIDIA CUDA/cuDNN для GPU-вычислений

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Настройка NVIDIA CUDA/cuDNN для GPU-вычислений
Простая
~1 рабочий день
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Настройка NVIDIA CUDA/cuDNN для GPU-вычислений

CUDA и cuDNN — фундамент GPU-ускоренных вычислений для ML. Корректная установка и совместимость версий CUDA/cuDNN/драйвер/фреймворк — частый источник проблем при настройке ML-окружения.

Матрица совместимости

Перед установкой важно свериться с официальной таблицей совместимости:

CUDA cuDNN PyTorch TensorFlow Min Driver
12.1 8.9 2.1.x 2.14.x 530.30
12.2 8.9 2.2.x 535.54
11.8 8.7 2.0.x 2.12.x 520.61

Золотое правило: driver версия должна поддерживать CUDA версию или выше (NVIDIA Driver ≥ требуемой CUDA версии).

Установка NVIDIA Driver

# Ubuntu 22.04
# Рекомендуемый способ — через ubuntu-drivers
sudo ubuntu-drivers autoinstall

# Или вручную
sudo apt install nvidia-driver-545

# Проверка
nvidia-smi
# Вывод: Driver Version: 545.xx.xx | CUDA Version: 12.3

Установка CUDA Toolkit

# Через runfile (рекомендуется для точного контроля версии)
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run --silent --toolkit --no-drm

# Добавить в ~/.bashrc
export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

# Проверка
nvcc --version

Установка cuDNN

# Скачать cuDNN с developer.nvidia.com (требует аккаунт)
tar -xzvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig

# Через apt (альтернативный способ)
sudo apt install libcudnn8=8.9.7.29-1+cuda12.2 libcudnn8-dev=8.9.7.29-1+cuda12.2

Установка через Conda (самый простой способ)

# Conda управляет CUDA/cuDNN автоматически
conda create -n ml python=3.11
conda activate ml
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

# Проверка
python -c "import torch; print(torch.cuda.is_available(), torch.version.cuda)"

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

import torch

print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA version: {torch.version.cuda}")
print(f"cuDNN version: {torch.backends.cudnn.version()}")
print(f"GPU count: {torch.cuda.device_count()}")
print(f"GPU name: {torch.cuda.get_device_name(0)}")

# Тест производительности матричного умножения
x = torch.randn(8192, 8192, device='cuda', dtype=torch.float16)
y = torch.randn(8192, 8192, device='cuda', dtype=torch.float16)
torch.cuda.synchronize()
import time
t = time.time()
z = x @ y
torch.cuda.synchronize()
print(f"MatMul 8192x8192 (FP16): {time.time()-t:.3f}s")
# A100: ~0.05s, RTX 3090: ~0.12s

Типичные проблемы

"CUDA error: no kernel image is available" — PyTorch скомпилирован для другой версии CUDA. Переустановить PyTorch для нужной CUDA.

"libcuda.so not found" — LD_LIBRARY_PATH не настроен. Добавить /usr/local/cuda/lib64 в конфиг.

Низкая производительность — проверить nvidia-smi -q | grep "Performance State". GPU в режиме P8 вместо P0: выполнить nvidia-smi -pm 1 для Persistence Mode.