Visualize how Swizzle<BBits, MBase, SShift> remaps addresses to avoid bank conflicts
This is one swizzle tile. The grid below is composed of these tiles.
The grid is composed of swizzle tiles. Tile boundaries are marked with thick black lines.
Click any cell in the grids above or SMEM bank organization below to see its address details.
Bank-level view of SMEM with standard row-major layout and swizzle applied. Each grid row is stored consecutively in memory. Numbers show logical column stored at each bank position.
Swizzle Tile: The fundamental swizzle unit (2^BBits × 2^BBits swz units). The swizzle pattern is defined within a tile.
Grid: The full shared memory layout, composed of one or more swizzle tiles. Tile boundaries are marked with thick black lines.
Colors: Each color represents a logical column. In the swizzled view, colors show which logical column's data is stored at each physical slot.
WITHOUT Swizzle: Looking down any column, all cells have the same color → bank conflict when reading column-major.
WITH Swizzle: Looking down any column, colors are shuffled → no bank conflicts, data spread across different logical columns.
To verify: Use "Highlight Slot" to see which logical columns are accessed when reading a physical slot across rows.