CUDA Compute Capability

Таблица совместимости GPU NVIDIA с версиями CUDA

CUDA Compute Capability (CC) — версия аппаратных возможностей GPU NVIDIA. Определяет, какие функции CUDA доступны: Tensor Cores, FP16, BF16, INT8, динамический параллелизм и другие.

Показано: 10 GPU
# Видеокарта CC VRAM FP32
1 NVIDIA GeForce GTX 560 Ti 448 2.0 1 GB 1 312,0 TFLOPS
2 NVIDIA GeForce GTX 560 Ti 2.1 1 GB 1 263,0 TFLOPS
3 NVIDIA Quadro K4000 3.0 3 GB 1 244,0 TFLOPS
4 NVIDIA Quadro P600 Mobile 6.1 4 GB 1 244,0 TFLOPS
5 NVIDIA H200 SXM 141 GB 9.0 141 GB 66,91 TFLOPS
6 NVIDIA H200 NVL 9.0 141 GB 60,32 TFLOPS
7 NVIDIA H100 SXM5 96 GB 9.0 96 GB 66,91 TFLOPS
8 NVIDIA H100 SXM5 94 GB 9.0 94 GB 66,91 TFLOPS
9 NVIDIA B200 SXM 192 GB 10.0 96 GB 62,08 TFLOPS
10 NVIDIA B100 10.1 96 GB 62,08 TFLOPS

Что такое CUDA Compute Capability?

CUDA Compute Capability (CC) — это числовой идентификатор, определяющий набор аппаратных возможностей GPU NVIDIA. Формат: major.minor, где major — поколение архитектуры, minor — инкрементальное улучшение внутри поколения.

Например, CC 7.0 — это Volta (Tesla V100), CC 8.0 — Ampere (A100), CC 8.9 — Ada Lovelace (RTX 4090), CC 9.0 — Hopper (H100). Каждая версия определяет, какие инструкции и функции доступны на GPU.

Когда нужно знать Compute Capability?

Обучение моделей (Training). PyTorch и TensorFlow используют CC для выбора оптимальных ядер. Для mixed precision training (FP16/BF16) нужен минимум CC 7.0 (Volta). Для BF16 — CC 8.0+. Для FP8 — CC 8.9+.

Инференс (Inference). TensorRT и vLLM оптимизируют модели под конкретную CC. Квантизация INT8 требует CC 6.1+, INT4 (через CUTLASS) — CC 7.5+. Flash Attention 2 требует CC 8.0+.

Компиляция CUDA-кода. При сборке nvcc нужно указать целевую архитектуру: -gencode arch=compute_80,code=sm_80. Неправильная архитектура — код не запустится или будет работать через JIT-компиляцию с потерей производительности.

Выбор GPU для аренды. Если проект требует Tensor Cores 3-го поколения (BF16, TF32) — нужен CC 8.0+ (A100, A30). Для Transformer Engine (FP8) — CC 8.9+ (L40S, RTX 4090) или CC 9.0 (H100).

Версии Compute Capability

CC 3.x (Kepler) — базовая поддержка CUDA, динамический параллелизм. Устарела, не поддерживается в CUDA 12+.

CC 5.x (Maxwell) — улучшенная энергоэффективность, FP32-операции. Поддержка заканчивается.

CC 6.x (Pascal) — FP16 (с ограничениями), INT8, NVLink. P100 (CC 6.0) — первый GPU с полной FP16-поддержкой.

CC 7.0 (Volta) — Tensor Cores 1-го поколения, аппаратный FP16. V100 — стандарт для ML до 2022 года.

CC 7.5 (Turing) — Tensor Cores 2-го поколения, INT8/INT4, RT Cores. T4 — самый популярный инференс-GPU.

CC 8.0 (Ampere, GA100) — Tensor Cores 3-го поколения, BF16, TF32, Sparsity. A100 — стандарт для LLM.

CC 8.6 (Ampere, GA10x) — потребительские Ampere: RTX 3090/3080. BF16 через Tensor Cores.

CC 8.9 (Ada Lovelace) — Tensor Cores 4-го поколения, FP8, DLSS 3. RTX 4090, L40S.

CC 9.0 (Hopper) — Transformer Engine, FP8 нативно, DPX-инструкции. H100 — лучший GPU для LLM-обучения.

CC 10.0 (Blackwell) — 5-е поколение Tensor Cores, FP4, Secure AI. B200, GB200.

CC 12.0 (Vera Rubin) — следующее поколение, анонсировано NVIDIA.

На что влияет Compute Capability

Совместимость с CUDA Toolkit. Каждая версия CUDA Toolkit поддерживает определённый диапазон CC. Например, CUDA 12.x поддерживает CC 5.0+, а CUDA 11.8 — последняя версия с поддержкой CC 3.5 (Kepler). Если ваш GPU слишком старый — новый CUDA Toolkit не заработает.

Доступные типы данных. FP16 Tensor — CC 7.0+. BF16 — CC 8.0+. TF32 — CC 8.0+. FP8 — CC 8.9+. FP4 — CC 10.0+. Это напрямую влияет на скорость обучения и инференса.

Производительность библиотек. cuDNN, cuBLAS, NCCL, Flash Attention и другие библиотеки выбирают оптимальные ядра на основе CC. Код, скомпилированный для sm_80, не использует преимущества sm_89 или sm_90.

Поддержка фреймворков. PyTorch 2.x рекомендует CC 7.0+. Некоторые операции (Flash Attention) требуют CC 8.0+. vLLM для оптимального инференса LLM рекомендует CC 8.0+ (Ampere и новее).