DeepSeek 的含金量还在上升
大家好啊,我是董董灿。
最近 DeepSeek 越来越火了。
网上有很多针对 DeepSeek 的推理测评,除此之外,也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。
比如今天就看到了一篇文章,探讨 DeepSeek 在使用 GPU 进行模型训练和推理时,绕过了 CUDA 编程。
难道 CUDA 的护城河不在了?
针对这个问题我想聊一聊,因为 AI 编译器也正好是我的专业。
CUDA 编程之所以说是英伟达软件生态的护城河,原因是英伟达的编译器对 CUDA 语言做了很多优化和适配,使 CUDA 编写的程序可以非常容易且高效的运行在 GPU 芯片上。
这其中,CUDA 语法并不是核心,编译 CUDA 语言的编译器才是。
就像是 Gcc/Clang 等编译器一样。
你可以很容易的用 C 语言写出一段逻辑,然后在很多后端硬件(比如 x86 架构,ARM 架构等等)上运行,并且性能还不错。
CUDA 也是一样的,它本身也是一种类 C 语言的“高级语言”,说它高级是相对于底层汇编而言的,而非真正的高级语言。
利用 CUDA 写好的程序经过英伟达的编译器编译完成后,可以得到汇编语言,进而转换为机器码在英伟达的 GPU 上运行。
这些机器码程序可以有非常不错的性能,而且有很强的移植性。
这一切都是英伟达的编译器自动优化的结果。
而 DeepSeek 绕过了 CUDA 编程,直接手写了汇编代码,这确实需要非常强的技术功底才能实现。
相当于手写汇编代替了编译器的工作。
这样做的好处就是可以自己控制 GPU 的各种资源,比如寄存器和内存,而坏处就是难度高,代码可维护性差,并且不易移植。
不易移植也就是说,在 H100 上编写的汇编代码,在 A100 上可能性能非常差甚至跑不起来。
很多公司在追求性能的时候都会手写汇编。
之前就有过某厂家为了将自己的产品打响,用汇编手写了一整个 AI 模型,效果也是非常好,但就是刚才说的那个问题,难以移植。
会这么做的公司,一方面要有技术积累,另一方面都在追求极致的性能。
DeepSeek 也不例外,但很显然 DeepSeek 有类似的技术积累。
幻方量化交易的高性能计算或许为此提供了很多技术支持。
也难怪 DeepSeek 都快火出圈了。
但虽然如此, CUDA 的护城河仍然存在,因为并不是所有的公司都能做到手写汇编,这里的技术壁垒还是挺高的。
要想真正打破 CUDA 护城河,需要重新定义和建立新的芯片架构和编程范式,这一点在目前的情况下还是挺难的。
即使手写的汇编,也依然在 GPU 的定义框架内运行,依然没有跳开英伟达。