Lección 28: Occupancy: warps activos por SM
Cada Streaming Multiprocessor (SM) de la GPU solo puede tener un número limitado de warps activos a la vez. La occupancy se define como la razón: occupancy = warps activos / máximo de warps posibles por SM. ¿Por qué importa esto? Cuando a un warp se le acaba el trabajo o está esperando por memoria,
Imagina a un mesero atendiendo varias mesas a la vez. Cuando una mesa todavía no terminó de elegir del menú, él se va a otra mesa en lugar de quedarse parado esperando. Mientras más mesas activas tenga, menos tiempo desperdicia esperando. Pero si tiene demasiadas mesas, cada mesa recibe menos atención — así que más mesas no siempre es mejor.
- occupancy
- La razón entre los warps activos en un SM y el máximo de warps que el SM soporta. Una occupancy alta ayuda a ocultar las esperas de memoria.
- SM (Streaming Multiprocessor)
- La unidad de procesamiento de la GPU que ejecuta bloques. Sus recursos (registros, memoria compartida) tienen una capacidad limitada que se reparte entre los bloques.
- ocultamiento de latencia (latency hiding)
- Cuando un warp espera por memoria, el SM cambia a otro warp. Más warps activos significa más trabajo detrás del cual ocultar la espera.
- límite de recursos
- Registros por hilo, memoria compartida por bloque, y tamaño del bloque — cada uno puede limitar cuántos bloques caben en un SM.