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