Project Icon

MatmulTutorial

CUDA矩阵乘法内核设计与性能优化实例

MatmulTutorial项目展示了CUDA矩阵乘法的多种高性能实现,包括自定义、CuBLAS和CUTLASS等。项目通过详细的性能对比,帮助CUDA初学者理解内核设计优化。在A100 GPU上,项目实现比Relay+CUTLASS平均快1.73倍,与CuBLAS性能相当。项目还研究了MLIR生成CUDA内核,性能达到手写内核的86%。

TensorOp矩阵乘法教程

这是一个CUDA矩阵乘法实现的示例仓库。该仓库旨在为CUDA初学者提供高性能内核设计的一些见解。目前,我只在examples/matmul/this中提供了一些实现示例。 欢迎贡献更多的内核和其他矩阵乘法实现。

关于

这里有一个详细的解释,介绍了examples/matmul/this中不同版本的矩阵乘法内核。

内容

  • examples:

    • matmul: 矩阵乘法实现

      • this-sm90: Hopper版本的矩阵乘法
      • this-sm80: 本仓库实现的矩阵乘法
      • cublas: 调用CuBLAS进行性能测试
      • cutlass: 调用CUTLASS进行性能测试
      • mlir-gen: 由MLIR生成的CUDA代码
      • triton: 调用Triton进行性能测试
      • tvm: 调用Relay+CUTLASS/CuBLAS或TensorIR进行性能测试
    • atom: 单个内部指令/指令的使用

    • reduction: 用于后处理的一些归约内核

性能结果

H800 GPU上的性能

图片 当前版本平均只达到CuBLAS性能的70%。我仍在努力提高性能。

A100 GPU上的性能

<img src=static/this.png alt="A100-GEMM-perf" width="2000" height="600"> Relay、CuBLAS、CUTLASS、TensorIR、Triton和我们实现之间的整体性能比较。y轴是相对于Relay+CUTLASS的加速比。

总体而言,相对于Relay+CUTLASS的几何平均加速比为1.73倍,相对于TensorIR(每个案例使用MetaSchedule进行1000次调优尝试)为1.22倍,相对于CuBLAS为1.00倍,相对于CUTLASS为0.999倍,相对于Triton为1.07倍。 61种形状如下:

编号MNK
1537653762048
25376-12853762048
35376-2*12853762048
............
115376-10*12853762048
125376+12853762048
135376+2*12853762048
............
215376+10*12853762048
2253765376-1282048
2353765376-2*1282048
............
3153765376-10*1282048
3253765376+1282048
3353765376+2*1282048
............
4153765376+10*1282048
42537653762048-128
43537653762048-2*128
............
51537653762048-10*128
52537653762048+128
53537653762048+2*128
............
61537653762048+10*128

MLIR生成的CUDA内核

我还使用MLIR生成矩阵乘法内核。生成的内核位于examples/matmul/mlir-gen中。与手写内核(examples/matmul/this)相比的性能如下所示。由于MLIR生成的内核只实现了手写内核使用的部分优化,我们将MLIR生成的内核称为部分,将手写内核称为完整

mlir-gen 总体而言,MLIR生成的版本达到了手写内核性能的86%。

计划

更多内核

我计划在未来实现其他运算符(如softmax)的内核。

在实现中使用CUTLASS

计划使用CUTLASS的CuTe接口来实现高性能内核。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号