Streaming Multiprocessor (SM)
Leerlo en el Capítulo 1 · checkpoint +50 XP →
El bloque básico de la GPU: planificadores, registros, memoria compartida, CUDA cores y tensor cores.
Un SM es más o menos lo que un "núcleo" es en una CPU, pero diseñado para rendimiento. Cada SM tiene planificadores de warps, un banco de registros grande, memoria compartida / L1 configurable y unidades de ejecución: "CUDA cores" FP32/INT, unidades de funciones especiales y tensor cores.
Un lanzamiento de kernel se divide en thread blocks. Cada bloque cae en un SM y se queda ahí. El SM intercala los warps de todos los bloques residentes en cada ciclo, así que cuando un warp espera a la memoria otro emite instrucciones.
Por qué te importa como operador
- Número de SM × reloj fija los FLOP/s máximos. Una GPU limitada al 55% del reloj (por temperatura o potencia) entrega ~55% del cómputo. Ver potencia y temperatura.
DCGM_FI_PROF_SM_ACTIVEySM_OCCUPANCY(de DCGM) te dicen si los SM están realmente ocupados. La "GPU utilization" de nvidia-smi solo significa que algún kernel estaba corriendo, no que todos los SM trabajaran.
Relacionado
Fuentes y lecturas adicionales
- Modal GPU Glossary — hardware and software vocabulary
- CUDA C++ Programming Guide
- PRACE Best Practice Guide – GPGPU — GPU programming and tuning practice for HPC
Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.