DeepSeek开源周第三天:FP8 通用矩阵乘法 (GEMM)库
deepseek开源周第三天为我们带来了deepgemm,一个fp8通用矩阵乘法(gemm)库,专门为高效、干净的fp8 gemm 设计,支持密集 gemm 和 moe gemm,用于v3/r1训练和推理。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
DeepGEMM 是一个专为FP8 GEMM 设计的库,采用细粒度缩放,如DeepSeek-V3中所建议。它支持普通和混合专家(MoE)分组 GEMM。该库使用CUDA编写,通过轻量级即时(JIT)模块在运行时编译所有内核,无需在安装时编译。
目前,DeepGEMM 仅支持NVIDIA Hopper 张量核。为了解决FP8 张量核心累积不精确的问题,它采用了CUDA 核心两级累积(提升)。虽然它借鉴了CUTLASS 和 CuTe 的一些概念,但避免了对它们的模板或代数的严重依赖。相反,该库设计简洁,只有一个核心内核函数包含大约300行代码。这使其成为学习Hopper FP8 矩阵乘法和优化技术的干净且易于访问的资源。
尽管采用轻量级设计,DeepGEMM 的性能与各种矩阵形状的专家调优库相当或超过。
⚡ 在Hopper GPU 上高达1350+ FP8 TFLOPS
✅ 没有繁重的依赖,像教程一样干净
✅ 完全Just-In-Time 编译
✅ ~300行的核心逻辑 - 但在大多数矩阵大小中都优于专家调优的内核
✅ 支持密集布局和两种MoE 布局
适用于:
Hopper 架构GPU,必须支持 sm_90aPython 3.8 或更高版本CUDA 12.3 或更高版本,强烈建议使用12.8 或更高版本以获得最佳性能PyTorch 2.1 或更高版本CUTLASS 3.6 或以上(可由Git 子模块克隆)
在H800 上使用NVCC 12.8 测试了DeepSeek-V3/R1 推理中可能使用的所有形状(包括预填充和解码,但没有张量并行)。
DeepGEMM 在多种矩阵形状下的性能表现如下:
普通 GEMM(密集模型)M N K 计算量 (TFLOPS) 内存带宽 (GB/s) 速度提升 64
2112
7168
206
1688
2.7x
64
24576
1536
289
2455
1.7x
64
32768
512
219
2143
1.8x
64
7168
16384
336
2668
1.4x
64
4096
7168
287
2320
1.4x
64
7168
2048
295
2470
1.7x
128
2112
7168
352
1509
2.4x
128
24576
1536
535
2448
1.6x
128
32768
512
358
2103
1.5x
128
7168
16384
645
2604
1.4x
128
4096
7168
533
2221
2.0x
128
7168
2048
510
2277
1.7x
4096
2112
7168
1058
527
1.1x
4096
24576
1536
990
786
1.0x
4096
32768
512
590
1232
1.0x
4096
7168
16384
1358
343
1.2x
4096
4096
7168
1304
500
1.1x
4096
7168
2048
1025
697
1.1x
分组 GEMM(连续布局,MoE 模型)分组数 每组 M N K 计算量 (TFLOPS) 内存带宽 (GB/s) 速度提升 4
8192
4096
7168
1297
418
1.2x
4
8192
7168
2048
1099
681
1.2x
8
4096
4096
7168
1288
494
1.2x
8
4096
7168
2048
1093
743
1.1x
分组 GEMM(掩码布局,MoE 模型)分组数 每组 M N K 计算量 (TFLOPS) 内存带宽 (GB/s) 速度提升 1
1024
4096
7168
1233
924
1.2x
1
1024
7168
2048
925
968
1.2x
2
512
4096
7168
1040
1288
1.2x
2
512
7168
2048
916
1405
1.2x
4
256
4096
7168
932
2064
1.1x
4
256
7168
2048
815
2047
1.2x
性能对比图:
架构特性示意图
分组GEMM布局对比接口说明DeepGEMM 提供了以下主要接口:
普通 GEMM:deep_gemm.gemm_fp8_fp8_bf16_nt,支持非分组的FP8 GEMM。分组 GEMM(连续布局):m_grouped_gemm_fp8_fp8_bf16_nt_contiguous,适用于MoE 模型的训练前向传播或推理预填充。分组 GEMM(掩码布局):m_grouped_gemm_fp8_fp8_bf16_nt_masked,适用于推理解码阶段。此外,还提供了一些辅助工具函数,例如设置最大SM 数量、获取TMA 对齐大小等。
优化技术DeepGEMM 的优化技术包括:
持久化warp 专业化:通过warp 专业化实现数据移动、Tensor Core MMA 指令和CUDA Core 提升的重叠。Hopper TMA 特性:利用Tensor Memory Accelerator(TMA)进行快速异步数据移动。统一优化的块调度器:为所有非分组和分组内核提供统一调度。完全JIT 设计:运行时即时编译,无需安装时编译,支持动态优化。未对齐块大小:针对某些形状优化SM 利用率。FFMA SASS 交错:通过修改编译后的二进制指令提升性能。如果觉得不错,欢迎点赞、在看、转发,您的转发和支持是我不懈创作的动力~
相关攻略
Pywinrm 通过Windows远程管理(WinRM)协议,让Python能够像操作本地一样执行远程Windows命令,真正打通了跨平台管理的最后一公里。 在混合IT环境中,Linux机器管理Wi
早些时候,聊过 Python 领域那场惊心动魄的供应链攻击。当时我就感叹,虽然我们 JavaScript 开发者对这类套路烂熟于心,但亲眼目睹这种规模的“投毒”还是头一次。 早些时候,聊过 Pyth
Toga 是 BeeWare 家族的核心成员,号称“写一次,跑遍所有平台”,而且用的是系统原生控件,不是那种一看就是网页套壳的界面 。 写了这么多年 Python,你是不是也想过:要是能一套代码跑
异常处理的核心:让错误在正确的地方被有效处理。正确的地方,就是别在底层就把异常吞了,也别在顶层还抛裸奔的 Exception。 异常处理写得好,半夜不用起来改 bug。1 你是不是也这么干过?tr
1 Skills机制概述 提起OpenClaw的Skills机制,不少人可能会把它想象成传统意义上的可执行插件。其实,它的内涵要更精妙一些。 简单说,Skills本质上是一套基于提示驱动的能力扩展机制。它并不是一个可以独立“跑”起来的程序模块,而是通过一份结构化描述文件(核心就是那个SKILL m
热门专题
热门推荐
加密货币行业翘首以盼的监管里程碑,终于有了实质性进展。美国证券交易委员会(SEC)主席保罗·阿特金斯(Paul Atkins)近日证实,那份允许加密项目在早期获得注册豁免权的“安全港”框架提案,已经正式送抵白宫,进入了最终审查阶段。 在范德堡大学与区块链协会联合举办的数字资产峰会上,阿特金斯透露了这
微策略Strategy报告:第一季录得144 6亿美元浮亏 再斥资约3 3亿美元买进4871枚比特币 市场震荡的威力有多大?看看Strategy的最新季报就明白了。根据其最新向美国证管会(SEC)提交的8-K报告,受市场剧烈波动影响,这家公司所持的比特币在第一季度录得了一笔惊人的数字——144 6亿
稳定币巨头Tether的动向,向来是加密世界的风向标。这不,它向Web3基础设施的版图扩张,又迈出了关键一步。公司执行长Paolo Ardoino在社交平台X上透露,其工程团队正在全力“烹制”一个新项目——去中心化搜索引擎 “Hypersearch”。这个消息一出,立刻引发了行业的广泛猜想。 采用D
基地位于Coinbase旗下以太坊Layer2网络Base的Seamless Protocol,日前正式宣告了服务的终结。这个曾经吸引了超过20万用户的原生DeFi借贷协议,在运营不到三年后,终究没能跑赢时间。它主打的核心产品是Integrated Leverage Markets(ILMs)——一
PAAL代币揭秘:深度解析Web3社区治理的核心钥匙 在去中心化自治组织的浪潮中,谁真正掌握了项目的话语权?PAAL代币提供了一套系统化的答案。它不仅是生态内流转的价值媒介,更是开启链上治理大门的核心凭证。通过持有并质押PAAL代币,用户能够对协议升级、资金分配乃至战略方向等关键事务投出决定性的一票





