Tensor Core
Tensor Core
Tensor Core — специализированное вычислительное ядро в GPU NVIDIA, выполняющее операции матричного умножения-сложения (MMA) за один такт, ускоряя обучение и инференс нейросетей в 2-8 раз.
Что такое Tensor Core
Tensor Core — аппаратный блок в GPU NVIDIA, специально разработанный для ускорения операций тензорной алгебры. Каждый Tensor Core выполняет операцию D = A × B + C над малыми матрицами (4×4) за один такт.
Поколения Tensor Cores
| Поколение | GPU | Форматы | Операция за такт |
|---|---|---|---|
| 1-е (Volta) | V100 | FP16 | 4×4×4 MMA |
| 2-е (Ampere) | A100 | FP16, BF16, TF32, INT8 | 8×4×8 |
| 3-е (Ada) | RTX 4090 | + FP8 | 16×8×16 |
| 4-е (Hopper) | H100 | + FP8 E4M3 | 16×8×32 |
Зачем нужны Tensor Cores для ML
Обучение нейронной сети — это миллиарды операций умножения матриц. Обычные CUDA-ядра выполняют скалярные операции (число × число), а Tensor Core — матричные (матрица × матрица), что даёт колоссальный прирост.
Пример ускорения H100:
- Без Tensor Cores (FP32): ~67 TFLOPS
- С Tensor Cores (FP16): ~990 TFLOPS (15× быстрее)
Как использовать
Tensor Cores активируются автоматически при использовании mixed precision:
# PyTorch — автоматическое использование Tensor Cores
with torch.autocast(device_type="cuda", dtype=torch.float16):
output = model(input)
loss = criterion(output, target)
Требования для активации:
- Размеры матриц должны быть кратны 8 (для FP16) или 16 (для INT8)
- Использовать типы данных FP16, BF16, TF32 или FP8