CUDA Cores
CUDA Cores
CUDA Cores — базовые параллельные вычислительные ядра в GPU NVIDIA, выполняющие операции с плавающей точкой. Тысячи ядер обеспечивают массивный параллелизм для ML-задач.
Что такое CUDA Cores
CUDA Cores (Compute Unified Device Architecture) — базовые вычислительные ядра GPU NVIDIA. В отличие от CPU с десятками мощных ядер, GPU содержит тысячи простых CUDA-ядер, работающих параллельно.
Как работает
Ядра объединены в Streaming Multiprocessors (SM) — кластеры из CUDA Cores, Tensor Cores, кэшей и планировщиков. GPU распределяет тысячи потоков по SM, обеспечивая параллельное выполнение одинаковых операций над разными данными (архитектура SIMT — Single Instruction, Multiple Threads).
| GPU | CUDA Cores | SM | Архитектура |
|---|---|---|---|
| RTX 3090 | 10 496 | 82 | Ampere |
| A100 | 6 912 | 108 | Ampere |
| H100 | 16 896 | 132 | Hopper |
| RTX 4090 | 16 384 | 128 | Ada Lovelace |
CUDA Cores vs Tensor Cores
CUDA Cores выполняют скалярные FP32/FP64-операции — по одному умножению за такт на ядро. Подходят для общих вычислений и классических нейросетей.
Tensor Cores выполняют матричные операции целыми блоками (4×4) за один такт в FP16/BF16/FP8. Для трансформеров и LLM Tensor Cores дают 10-20× ускорение по сравнению с CUDA Cores.
Когда важны CUDA Cores
- Задачи с FP32-вычислениями (без mixed precision)
- Компьютерное зрение (классические CNN)
- Научные вычисления и симуляции
- Рендеринг и обработка видео
Для LLM-обучения и инференса ключевую роль играют Tensor Cores, а CUDA Cores обеспечивают вспомогательные вычисления.
# Проверка количества CUDA Cores
import torch
if torch.cuda.is_available():
props = torch.cuda.get_device_properties(0)
print(f"GPU: {props.name}")
print(f"SM: {props.multi_processor_count}")
# CUDA Cores ≈ SM × cores_per_SM (зависит от архитектуры)