Skip to content

Double Buffer SGEMM

Use two sets of shared memory buffers to prefetch the next tile while computing the current tile.

Key Idea

cpp
__shared__ float As[2][TILE_SIZE][TILE_SIZE];
__shared__ float Bs[2][TILE_SIZE][TILE_SIZE];

Performance

  • Hides memory latency: computation overlaps with loading
  • TFLOPS: ~3.5

References

Released under the MIT License.