cuDNN
Библиотека NVIDIA с высокопроизводительными примитивами для нейросетей поверх CUDA.
Что такое cuDNN
cuDNN (CUDA Deep Neural Network library) — библиотека NVIDIA, реализующая примитивы для нейросетей с максимальной производительностью: свёртки, нормализация, операции пулинга, активации, attention. Является нижним уровнем PyTorch, TensorFlow и большинства ML-фреймворков — разработчику не нужно вызывать её напрямую.
cuDNN автоматически выбирает оптимальный алгоритм для каждой операции в зависимости от размера тензоров и архитектуры GPU. Это позволяет получить 2–5× ускорение по сравнению с наивной реализацией на CUDA.
Как cuDNN взаимодействует с PyTorch
import torch
# cuDNN автоматически используется для всех convolution и attention операций
# Включить benchmark-режим (cuDNN выберет лучший алгоритм для конкретных размеров)
torch.backends.cudnn.benchmark = True # выгодно, если размеры входа постоянны
# Для воспроизводимости результатов
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
# Проверить версию cuDNN
print(torch.backends.cudnn.version()) # → 90100 (cuDNN 9.1.0)
Flash Attention и cuDNN
С выходом cuDNN 8.9+ в него интегрированы оптимизированные реализации Flash Attention, доступные через PyTorch 2.x F.scaled_dot_product_attention. На A100/H100 это даёт значительное ускорение attention без установки отдельного пакета.
Связанные термины
- CUDA — платформа, на которой работает cuDNN
- CUDA Toolkit — пакет, включающий cuDNN
- PyTorch — фреймворк, использующий cuDNN
- Tensor Core — аппаратные блоки, используемые cuDNN
Готовы запустить GPU-задачу?
Запустить GPU-сервер