人工智能咨询培训老师叶梓 转载标明出处
想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。
1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。
CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987
更多分享,关注视频号:sphuYAMr0pGTk27 抖音号:44185842659
DeepSeek开源第三弹:DeepGEMM。 是一个专为 NVIDIA Hopper 架构设计的高效 FP8 GEMM(通用矩阵乘法)库,支持密集(dense)和混合专家(MoE)分组矩阵乘法运算。其核心代码仅约 300 行,但性能却优于专家调优的内核,是大模型训练和推理中加速矩阵运算的重要工具。
性能表现
DeepGEMM 在 Hopper 架构 GPU 上表现出色,计算性能最高可达 1350+ TFLOPS。其性能优势主要体现在以下几个方面:
1、普通矩阵乘法(非分组)
在标准矩阵乘法中,DeepGEMM 的加速比最高可达 2.7 倍,特别是在小批量数据处理(如 M=64 或 128)时表现尤为突出。例如,在矩阵形状为 64×2112×7168 的测试中,其计算性能达到 206 TFLOPS,内存带宽为 1688 GB/s。
2、混合专家模型(MoE)分组矩阵乘法
DeepGEMM 支持两种 MoE 布局:连续布局 和 掩码布局。在这些场景下,性能提升稳定在 1.1-1.2 倍。例如,在 4 组、每组 8192×4096×7168 的连续布局测试中,计算性能达到 1297 TFLOPS,内存带宽为 418 GB/s。
核心优化技术
DeepGEMM 的高性能得益于一系列先进的优化技术:
-
即时编译(JIT)设计
DeepGEMM 采用完全即时编译技术,所有内核在运行时编译,无需安装时预编译。这种方法将矩阵形状、块大小等作为编译时常量,节省寄存器资源并为编译器提供更多优化机会。此外,JIT 设计还允许动态选择最优参数配置,特别适用于小规模矩阵。 -
CUDA 核心两级累积
为解决 FP8 张量核心累积精度不足的问题,DeepGEMM 引入了 CUDA 核心两级累积技术,确保计算结果的准确性。 -
Hopper TMA 特性
DeepGEMM 充分利用 Hopper 架构的 Tensor Memory Accelerator(TMA)特性,加速数据加载和存储。例如,通过 TMA 多播和描述符预取,进一步提升数据传输效率。 -
线程专业化与统一调度器
DeepGEMM 采用线程专业化技术,将数据移动、核心计算和结果处理分配给不同的线程,形成高效的流水线。此外,其统一调度器结合光栅化技术,提升了 L2 缓存的复用率。 -
非标准块大小支持
DeepGEMM 支持非标准块大小(如 112×128),以更好地适应特定矩阵形状,显著提高硬件资源利用率。 -
指令级优化
DeepGEMM 在 SASS 汇编层面进行了优化,例如调整 FFMA 指令的交错模式,提升 warp 级别的并行度。
开发与使用
DeepGEMM 的开发环境要求包括支持 Hopper 架构的 GPU、CUDA 12.3 及以上版本(推荐 12.8)、PyTorch 2.1 及以上版本等。开发时需通过 Git 子模块克隆 CUTLASS 和 CuTe 等依赖,并运行以下命令完成开发环境搭建:
bash复制
git clone --recursive git@github.com:deepseek-ai/DeepGEMM.git
python setup.py develop
安装后,用户可在 Python 项目中直接导入 deep_gemm
模块使用。
DeepGEMM 以其简洁的设计、高性能表现和灵活的优化技术,成为大模型训练和推理中加速矩阵运算的有力工具。它不仅在性能上超越了传统优化库,还通过即时编译和细粒度缩放等技术,为用户提供了高效、易用的矩阵乘法解决方案。
https://github.com/deepseek-ai/DeepGEMM