ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DeepSeek-R2曝5月前上线!第三弹DeepGEMM 300行代码暴击专家优化内核

DeepSeek-R2曝5月前上线!第三弹DeepGEMM 300行代码暴击专家优化内核 前言DeepSeek发布了DeepGEMM。这是一个支持稠密和MoE模型的FP8 GEMM通用矩阵乘法计算库可为V3/R1的训练和推理提供强大支持。仅用300行代码DeepGEMM开源库就能超越专家精心调优的矩阵计算内核为AI训练和推理带来史诗级的性能提升DeepGEMM库具有以下特征在Hopper GPU上实现高达1350 FP8 TFLOPS的算力极轻量级依赖代码清晰易懂完全即时编译即用即跑核心逻辑仅约300行代码却在大多数矩阵规模下超越专家级优化内核同时支持密集布局和两种MoE布局开发者惊叹道才300行代码就能打败专家优化的内核要么是DeepSeek真的破解了GPU运算的天机要么我们就是见证了有史以来最高级的编译器黑科技。总之这个DeepGEMM听起来简直是数学界的超级英雄比飞快的计算器还要快。它改变了我们使用FP8 GEMM库的方式简单、快速、开源。这就是AI计算的未来同时外媒还曝出了另一个重磅消息原计划在5月初发布的DeepSeek-R2现在发布时间将再次提前在DeepSeek-R2中将实现更好的编码还能用英语以外的语言进行推理。业内人士预测DeepSeek-R2的发布将是AI行业的一个关键时刻。目前DeepSeek在创建高成本效益模型上的成功已经打破了该领域少数主导玩家的垄断。DeepSeek开源两天前两个项目爆火程度难以想象。FlashMLA已在GitHub斩获近10k星标DeepEP的星标已有5k。DeepGEMMDeepGEMM是一个专为清晰高效的FP8通用矩阵乘法General Matrix MultiplicationsGEMMs设计的库它采用了DeepSeek-V3中提出的细粒度缩放技术。该库支持常规矩阵乘法和混合专家模型Mix-of-ExpertsMoE分组矩阵乘法。DeepGEMM使用CUDA编写无需在安装时进行编译而是通过轻量级即时编译Just-In-TimeJIT模块在运行时编译所有内核。目前DeepGEMM仅支持NVIDIA Hopper张量核。为了解决FP8张量核在累加计算时的精度问题该库采用了基于CUDA核心的两级累加提升技术。虽然DeepGEMM借鉴了CUTLASS和CuTe的一些概念但避免了过度依赖它们的模板或代数系统。相反该库追求设计简洁仅包含一个核心内核函数代码量仅约300行。这使其成为学习Hopper FP8矩阵乘法和优化技术的理想入门资源。尽管采用轻量级设计DeepGEMM在处理各种矩阵形状时的性能都能够达到甚至超越经专家调优的库。性能研究人员在配备NVCC 12.8的H800上测试了DeepSeek-V3/R1推理过程中可能使用的所有矩阵形状包括预填充和解码阶段但不包括张量并行计算。所有性能提升指标均与基于CUTLASS 3.6内部精心优化的实现进行对比计算得出。DeepGEMM在某些矩阵形状下的表现还不够理想如果你对此感兴趣可以提交优化相关的Pull Request拉取请求。稠密模型的常规GEMM下表展示了不同矩阵维度M、N、K下DeepGEMM库的性能数据结果显示在某些配置如 M128, N2112, K7168下实现了高达 2.4 倍的加速反映了DeepGEMM在优化GPU矩阵计算方面的效率和灵活性。MoE模型的分组GEMM使用连续存储布局MoE模型的分组GEMM使用掩码存储布局快速入门要求NVIDIA Hopper架构GPU需支持sm_90a计算能力Python v3.8或更高版本CUDA v12.3及以上版本强烈建议使用v12.8或更新版本以获得最佳性能PyTorch v2.1及以上版本CUTLASS v3.6或更高版本 可通过Git子模块[submodule]方式克隆获取开发下面代码是DeepGEMM项目的安装和测试指南。首先通过命令克隆仓库及其子模块。然后创建第三方库CUTLASS和CuTe的符号链接以便开发。接着测试JIT编译功能。最后测试所有GEMM实现。# Submodule must be clonedgit clone --recursive gitgithub.com:deepseek-ai/DeepGEMM.git# Make symbolic links for third-party (CUTLASS and CuTe) include directoriespython setup.py develop# Test JIT compilationpython tests/test_jit.py# Test all GEMM implements (normal, contiguous-grouped and masked-grouped)python tests/test_core.py安装下面代码使用脚本安装Python包会将包及其依赖项安装到系统中以便在项目中使用。python setup.py install接下来在你的Python项目中导入deep_gemm就可以开始使用啦优化技术注意下面用标记的是CUTLASS中未包含的技术。持久化线程束专用化遵循CUTLASS的设计DeepGEMM中的内核采用线程束warp专用化技术实现了数据移动、张量核心MMA矩阵乘累加指令和CUDA核心提升操作的重叠执行。下图简要说明了这个过程TMA线程主要负责数据加载Data load和任务分发TMA issue用黄色和蓝色表示。数学线程则交替执行WGMAWavefront Matrix Multiply-Accumulate计算绿色和数据提升Promotion黄色展示了一种并行计算策略其中数据加载与矩阵计算和优化操作协同工作以提高效率和性能。Hopper TMA特性张量内存加速器Tensor Memory AcceleratorTMA是Hopper架构引入的新硬件特性用于实现更快速的异步数据移动。具体来说在以下方面使用TMALHS左矩阵、LHS缩放因子和RHS右矩阵的TMA加载输出矩阵的TMA存储LHS矩阵的TMA多播TMA描述符预取常见的细节优化使用stmatrixPTX指令针对不同线程束组的寄存器数量精确控制最大化指令重叠如TMA 存储与非TMA RHS 缩放因子加载的重叠统一且经过优化的块调度器所有非分组和分组内核使用同一调度器采用光栅化技术提高L2缓存重用率完全JIT设计 DeepGEMM采用完全即时编译JIT设计无需在安装时编译。所有内核在运行时通过轻量级JIT实现进行编译。这种方法具有以下优势GEMM通用矩阵乘法形状、块大小和流水线阶段数被视为编译时常量有效节省寄存器空间使编译器能够进行更多优化能够自动选择块大小、线程组数量、最优流水线阶段和TMA张量内存访问集群大小即使在不进行自动调优的情况下也能确定性地选择最优配置完全展开MMA矩阵乘加流水线为编译器提供更多优化机会这一特性对处理小规模矩阵运算尤为重要详细信息请参考kernel文件中的launch_k_iterations部分总的来说JIT显著提升了小形状的计算性能这与Triton编译器采用的方法类似。非对齐块大小对于某些形状采用2的幂次对齐的块大小可能导致SM利用率不足。例如当M256N7168时传统的块大小分配BLOCK_M128BLOCK_N128只能利用 (256/128) * (7168/128) 112个SM总共132个。为解决这个问题团队为诸如112这样的非对齐块大小提供了支持使得 (256/128) * (7168/112) 128个SM能够充分工作。将这种技术与细粒度缩放结合需要精心优化但最终能带来显著的性能提升。FFMA SASS交错优化团队发现CUTLASS FP8内核在NVCC 12.2和12.3版本之间存在性能差异。通过比对编译后的SASS代码可以发现在一系列FADD指令中有一个位按交错模式翻转。参考开源CUDA汇编器实现后团队确定这个位控制着让出yield操作可能用于增强线程束级并行性推测是通过让出当前线程束使其他线程束得以执行。为此团队开发了专门的脚本来修改编译后二进制中的FFMA指令。除了修改让出位还调整了重用位当线程束被让出时禁用寄存器重用。这种优化通过创造更多MMA指令和提升类FFMA指令重叠的机会显著提高了细粒度缩放FP8 GEMM的性能在某些情况下提升超过10%。最后的最后感谢你们的阅读和喜欢作为一位在一线互联网行业奋斗多年的老兵我深知在这个瞬息万变的技术领域中持续学习和进步的重要性。为了帮助更多热爱技术、渴望成长的朋友我特别整理了一份涵盖大模型领域的宝贵资料集。这些资料不仅是我多年积累的心血结晶也是我在行业一线实战经验的总结。这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习相信它们一定能为你提供实质性的帮助。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进