HardwareRuta Optimización

Tensor Core

Leerlo en el Capítulo 4 · checkpoint +50 XP →

Unidades de multiplicar y acumular matrices que aportan la mayoría de los FLOPs de una GPU moderna, si las alimentas con la precisión y formas correctas.

Los tensor cores calculan productos de matrices pequeñas (p. ej. bloques de 16×16) en una sola instrucción. En una H100 entregan ~989 TFLOP/s densos en BF16 frente a ~67 TFLOP/s en FP32 simple. Esa diferencia es la razón por la que el entrenamiento en precisión mixta es lo normal.

Cómo obtener los FLOPs

  • Usa BF16/FP16 (o FP8 con Transformer Engine) para las multiplicaciones de matrices. FP32 sin TF32 nunca los usa.
  • Mantén las dimensiones de las GEMM grandes y múltiplos de 8/16. Micro-batches diminutos o shards de paralelismo tensorial muy estrechos generan GEMM pequeñas que no saturan las unidades.
  • Mantén los datos fluyendo desde HBM. Los tensor cores son tan rápidos que muchas operaciones (normalización, activaciones, softmax de atención) pasan a estar limitadas por memoria. Para eso existe la fusión de kernels como FlashAttention.

El Model FLOPs Utilization (MFU (Model FLOPs Utilization)) es, en el fondo, una medida de qué tan ocupados están los tensor cores.

EN VIVO Explorador de roofline
0.11101001k0.11101001k10kFLOPs por byteTFLOP/salcanzablevector addlayer normsmall GEMM4k×4k GEMMtú
Alcanzable
105.9 TFLOP/s
% del pico
11%
Punto de inflexión
295 FLOP/B
Régimen
limitado por memoria

Intensidad aritmética = FLOPs ÷ bytes movidos desde HBM. Las posiciones de los kernels son ilustrativas.

Relacionado

Fuentes y lecturas adicionales

Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.