DeepSeek绕过了英伟达引以为傲的CUDA,使用更底层的编程语言做优化
这一次是DeepSeek-V3论文中的更多细节,被人挖掘出来。
V3的硬件效率之所以能比Meta等高出10倍,可以总结为“他们从头开始重建了一切”。
在使用英伟达的H800 GPU训练DeepSeek-V3时,他们针对自己的需求把132个流式多处理器(SMs)中的20个修改成负责服务器间的通信,而不是计算任务,变相绕过了硬件对通信速度的限制。
这种操作是用英伟达的PTX(Parallel Thread Execution)语言实现的,而不是CUDA。
PTX在接近汇编语言的层级运行,允许进行细粒度的优化,如寄存器分配和Thread/Warp级别的调整。
这种编程非常复杂且难以维护,所以行业通用的做法是使用CUDA这样的高级编程语言。
换句话说,他们把优化做到了极致。
“首先要明确的是,PTX仍然是英伟达GPU架构中的技术,它是CUDA编程模型中的中间表示,用于连接CUDA高级语言代码和GPU底层硬件指令。
CUDA起到了提供高级编程接口和工具链的作用,可以简化开发者的工作。而PTX作为中间层,充当高级语言和底层硬件之间的桥梁。
所以说,DeepSeek做了PTX级别的优化不意味着完全脱离了CUDA生态,但确实代表他们有优化其他GPU的能力。我们不知道DeepSeek内部是否使用AI辅助编写了PTX代码——但是确实刚刚见证DeepSeek-R1编写的代码显著提升大模型推理框架的运行速度。”
也许是DeepSeek团队,先教会Deepseek用PTX,然后引导Deepseek直接用汇编编程, 他们只需要监督就行。 通过并行部分的程序,再让DeepSeek去蒸馏这个过程,学会如何编PTX重写 numpy, scipy