🎓 SGEMM Tutorial: From Naive to Tensor Core
本模块是 CUDA Kernel Academy 的入门教程,聚焦于 SGEMM 的渐进式优化过程。
内容概览
- Naive SGEMM
- Shared-memory tiled SGEMM
- Bank-conflict-free SGEMM
- Double-buffered SGEMM
- Tensor Core / WMMA SGEMM
- 与 cuBLAS 对比的 benchmark
- 基于 GoogleTest 的正确性测试
目录结构
01-sgemm-tutorial/
├── src/
│ ├── kernels/
│ ├── utils/
│ └── main.cu
├── tests/
│ └── test_sgemm.cu
├── Makefile
└── README.md
构建方式
该模块是独立教程模块,不参与根目录 CMake 构建。
构建 benchmark
cd 01-sgemm-tutorial
make GPU_ARCH=sm_86
./build/sgemm_benchmark
运行测试
cd 01-sgemm-tutorial
make test
说明:
make test依赖系统可用的 GoogleTest(例如通过包管理器安装gtest/libgtest-dev)。GPU_ARCH可按本机 GPU 调整,例如sm_80、sm_86、sm_89、sm_90。
学习路径中的位置
01-sgemm-tutorial
↓
02-tensorcraft-core
↓
03-hpc-advanced
↓
04-inference-engine
适合什么人
- 想理解 CUDA GEMM 优化基本路径的学习者
- 想从最小示例入手理解 shared memory、bank conflict、double buffering、WMMA 的读者