deepseek开源周,继deepep之后,第三弹deepgemm震撼来袭。今天我们来探讨一下:吃瓜:DeepGMEE是
deepseek开源周,继deepep之后,第三弹deepgemm震撼来袭。今天我们来探讨一下:
【1】DeepGMEE是干什么用的?
DeepGMEE,全称General Matrix Multiplication,是一个FP8通用矩阵乘法库(library)。
画外音,FP8:8-bit Floating Point,8位浮点格式。
【2】关于FP8通用矩阵乘法
有人可能会问,矩阵乘法的优化值得这么吹吗?
矩阵乘法是现代AI计算的基石:
传统AI的矩阵乘法通常使用NVIDIA开源的CUDA C++模板库CUTLASS,采用FP16/FP32格式,但存在一些不足:
为什么之前不直接采用FP8呢?因为FP8虽然占用资源少,资源利用率高,但会带来精度损失。
高精度乘法:1.2 * 3.4 = 4.08
如果直接降低精度,用整数表示浮点数,变为1 * 3 = 3,精度损失是无法接受的。
我们可以对浮点数进行整数化编码处理:
步骤一:1.2用(12, 1)表示,其中1是小数位数;步骤二:3.4用(34, 1)表示;步骤三:1.2 3.4 = (12, 1) (34, 1) = (12*34, 1+1) = (408, 2)
如此一来,就没有精度损失了。
矩阵乘法的精度补偿比这个复杂,其核心思路是:使用低精度乘法矩阵快速计算,高精度加法补足。
结论就是:DeepSeek使用FP8就能完成FP16/FP32的计算,降低显存占用+提高显存利用率的同时,仍然能够保持高精度。
【3】DeepGMEE的特点
Git介绍中对DeepGMEE有三个关键形容词:
为什么说DeepGMEE简洁?
画外音:我看了一下,调整数据分块策略,只需要修改10-20行代码。
为什么说DeepGMEE高效?
这是FP8对比FP16/FP32的天然优势,相比CUTLASS:
为什么说DeepGEMM高精度?
采用FP8矩阵乘法加速计算,BF16累加修正精度的办法,平衡了速度与精度。
除此之外,DeepGEMM还有不少特色:
上面种种,DeepGMEE本次最大的创新,我认为是:FP8优化,JIT优化,以及MOE优化。
【4】DeepGMEE是怎么做到的?
信息密度太大,头疼,有点学不过来了,感兴趣的同学去官网看吧,我Copy一下git的信息:
1. Persistent warp-specialization
2. Hopper TMA features
3. A unified and optimized block scheduler
4. Fully JIT design
5. Unaligned block sizes
6. FFMA SASS interleaving
7. Common detail optimizations
画外音:其实你也不想知道这些how?
【5】了解GEMM对普通人写提示词有什么启示?
没有启示,这东西和提示词没关系。
【6】结尾
对于DeepGEMM,我的思考是:
先睡了,共勉!
画外音:球球deepseek,明天不要开源新东西了。
补充阅读材料:
《DeepGEMM》
https://www.php.cn/link/e0c082bdcbcf050ff454698580c89289
可参考。
==全文完==
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源