文章预览
TensorCore编程相关的代码可以参考, 本文在这些代码的基础上进行整理, Credit属于这些代码的作者 Cuda-Samples [1] 中的cudaTensorCoreGemm 代码 知乎:木子知的 《Nvidia Tensor Core-CUDA HGEMM优化进阶》 [2] Cutlass v0.1.1 [3] 《DEVELOPING CUDA KERNELS TO PUSH TENSOR CORES TO THE ABSOLUTE LIMIT ON NVIDIA A100》 [4] 本文主要讲述TensorCore的供数优化相关的优化内容, 相关优化方法的测试对比 Kernel GFLOPs/S 相对于cuBLAS的性能 Cublas 90051.0 100% Load From GMEM 6921.4 7.6% Hierarchy Load 49311.8 54.7% + Padding SMEM 53842.7 59.7% + Async Copy 57837.5 64.2% + GMEM->SMEM Doublebuffer 69233.1 76.8% + SMEM->RF DoubleBuffer 70111.5 77.8% + Multistage with Swizzle 91842.1 101.9% 相关测试代码可以访问 github.com/zartbot/tensorecore_gemm [5] 本文目录如下: 0 . Recap GEMM Optimization 1 . TensorCore编程 1.1 从一个直接GMEM加载的反例谈起 1.2 GEMM的分层结构 1.3 Padding缓解Bank冲突 1.
………………………………