Налаштування NVIDIA CUDA/cuDNN для GPU-обчислень

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Налаштування NVIDIA CUDA/cuDNN для GPU-обчислень
Простий
~1 день
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Налаштування 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.