Cómo evitar conflictos de bancos en memoria compartida de CUDA con swizzling
CUDA Shared Memory Swizzling
La transposición de matrices en CUDA sufre conflictos de bancos en memoria compartida. Este artículo compara tres implementaciones: una con conflictos, otra con padding y otra con swizzling. El swizzling, que aplica un XOR a los índices, elimina los conflictos sin aumentar el uso de memoria. Las pruebas con matrices de 8192x8192 muestran que el swizzling es más rápido que el padding y que la versión con conflictos.
El swizzling de índices de memoria compartida es una técnica eficaz para eliminar conflictos de bancos sin aumentar el uso de memoria.