Lección 16: Fundamentos de la memoria compartida
La memoria compartida es una memoria pequeña y rápida que está en el chip del SM y sirve como bloc de notas para todos los hilos del mismo bloque. Se declara con la palabra clave __shared__, por ejemplo __shared__ float tile[256];, y es aproximadamente 100 veces más rápida que la memoria global — pe
La memoria global es un almacén enorme y lejano. La memoria compartida es un cajón pequeño junto al escritorio del equipo: traes algo del almacén una vez, lo pones en el cajón, y todo el equipo lo toma de ahí rápidamente. Cada equipo (bloque) obtiene su propio cajón separado.
- memoria compartida
- Memoria rápida en el chip compartida por todos los hilos del mismo bloque, declarada con __shared__. Mucho más rápida que la global pero pequeña.
- bloc de notas (scratchpad)
- Un espacio de trabajo temporal donde el bloque guarda datos que se leen una y otra vez, para evitar ir a la memoria global lenta cada vez.
- alcance de bloque (block scope)
- El alcance de la memoria compartida: solo para el bloque que la creó, y solo mientras ese bloque corre. Otros bloques no la ven.
- reutilización de datos
- Cuando se necesita el mismo valor muchas veces. Entonces vale la pena cargarlo una vez en memoria compartida y leerlo desde ahí de forma barata.