DeepSeek 的含金量还在上升

server/2025/2/9 4:50:37/

大家好啊,我是董董灿。

最近 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 的定义框架内运行,依然没有跳开英伟达。


http://www.ppmy.cn/server/166123.html

相关文章

团体程序设计天梯赛-练习集——L1-034 点赞

前言 20分的题目题目不难,理解也不难,做起来有点问题 L1-034 点赞 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本…

自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数

自定义数据集:继承 torch.utils.data.Dataset 类创建自定义数据集,并重写 __len__ 和 __getitem__ 方法。 定义逻辑回归模型:继承 nn.Module 类,定义一个线性层,并在 forward 方法中应用sigmoid激活函数。 训…

【高级架构师】计算机网络基础:第二章 计算机网络体系结构(上)

文章目录 第二章 计算机网络体系结构2.1 常用的计算机网络体系结构2.1.1 OSI体系结构2.1.2 具有五层协议的体系结构 2.2 物理层2.2.1 物理层的基本概念2.2.2 传输媒体 2.3 数据链路层2.3.1 数据链路层概述2.3.2 封装成帧2.3.3 透明传输2.3.4 差错校验2.3.4 以太网2.3.5 以太网的…

【2024华为OD-E卷-100分-木板】(题目+思路+JavaC++Python解析)

题目描述 给定一块木板,其长度为 n 个单位。现在需要在这块木板上切割出 m 个长度为 k 的木板段。每次切割只能沿着木板的整数位置进行,并且每次切割的成本为切割位置到木板两端中较近一端的距离。求最小的切割成本总和。 输入 第一行输入一个整数 n&…

云原生详解:构建未来应用的架构革命

引言 在数字化转型的浪潮中,企业的应用开发与运维模式正经历颠覆性变革。传统单体架构的笨重、资源浪费和低效迭代已无法满足快速变化的市场需求。而**云原生(Cloud Native)**作为一种新型的架构理念和技术体系,正在重塑现代应用的设计与交付方式。它不仅是技术的革新,更…

vite共享配置之---css相关

vite和webpack都有对样式的处理,涉及到的有css、sass、scss、postcss、模块化,以下是vite和webpack对样式的处理方式 特性ViteWebpackCSS 处理方式自动处理,无需配置,使用浏览器的原生支持需要配置 style-loader 和 css-loader&a…

基于离散浣熊优化算法(Discrete Coati Optimization Algorithm,DCOA)的骑手配送路径规划研究,MATLAB代码

一、问题定义 多骑手单起点路径规划问题,是配送领域中极具挑战性的组合优化问题。在这一情境下,设有一个固定的起始点,比如城市中的外卖配送站、快递网点或货物仓储中心。同时,存在着多名负责配送任务的骑手,以及大量…

如果$nextTick内部抛出错误,如何处理?

如果 $nextTick 内部抛出错误,可以通过在回调函数中使用 try…catch 语句来捕获和处理这些错误。由于 $nextTick 是异步执行的,因此错误不会直接影响到 Vue 的运行,但捕获错误可以帮助你进行更好的错误处理和调试。 一、使用 try…catch 以下是如何在 $nextTick 中捕获错误…