切换到宽版
  • 12阅读
  • 2回复

[数码讨论]连英伟达都开始抄作业,国内 AI 的野路子有点猛 [复制链接]

上一主题 下一主题
在线jjybzxw

UID: 551814

 

发帖
218698
金币
666458
道行
2006
原创
2446
奖券
3260
斑龄
41
道券
1203
获奖
0
座驾
设备
摄影级
在线时间: 47624(小时)
注册时间: 2008-10-01
最后登录: 2026-01-14
只看楼主 倒序阅读 使用道具 楼主  发表于: 9小时前

咱们都知道,英伟达在硬件上卖 GPU 算力,软件方面手握 CUDA 生态,都快把显卡和 GPU 计算这门 “给 AI 卖铲子” 的生意给垄断了。

可以说在 GPU 编程这件事上,CUDA 几乎就是 “版本答案”,以至于之前行业里形成了一种共识:想要真正发挥显卡的性能,基本绕不开 CUDA,自然也就绕不开老黄的显卡。

但是前一阵老黄发了个 GPU 编程的新技术,居然是反过来向中国 “取经”?

事情是这样的,上个月初英伟达毫无征兆地推出了一个叫 CUDA Tile 的 GPU 编程语言,直接让圈里人炸锅了。因为官方是这么形容这次更新的, “这是自 2006 年 CUDA 发布以来,最大的一次进步”。

那为什么说老黄这个技术是在向中国取经呢?因为 2024 年的时候,刚有一个中国团队开发过和 CUDA Tile 思路非常相似的 GPU 编程语言 “TileLang”。

并且前段时间 DeepSeek 发布 V3.2 的时候,真的同步发布了两个版本 —— 一个 CUDA 语言构建的版本,一个 TileLang 语言构建的版本。

曾经 DeepSeek 只发布 CUDA 语言构建的版本,甚至为了榨干硬件算力,不少代码用的还是英伟达专有的 PTX 汇编语言,导致过往的 DeepSeek 模型与老黄的运算卡深度绑定。

但是中国团队开发的 TileLang 编程语言不挑运算卡,所以 DeepSeek V3.2 可以很轻松的部署在华为昇腾等国产运算平台上。

所以事情开始变得有意思起来了。。。由于 TileLang 发布、DeepSeek 使用 TileLang、CUDA Tile 发布这几个事儿前后脚挨着,托尼就在网上看到有种说法:老黄是感受到国内厂商的威胁了,这才开始 “抄作业”。

那么真相到底是不是这样呢?一个 GPU 编程语言,就能动摇英伟达的根基了?

真不怨网友们唱衰老黄,托尼身边熟悉 GPU 编程的人,最近几年也都在吐槽一件事:现在的 CUDA,好像有点跟不上 AI 时代的节奏了。

过去 CUDA 之所以让大家觉得效率爆炸,靠的其实是一套非常省事的工作方式,叫 SIMT (单指令多线程)。简单说,就是 GPU 发一条指令,就能让一大堆线程同时行动。

就拿 FPS 游戏举例,当对面朝你扔了一颗闪光弹,GPU 干的活很简单:对着屏幕上几百万个像素,重复同一套操作 —— 算亮度、填颜色,让画面瞬间变得“晃眼”。

渲染管线(顶点→像素)着色过程

其实不光是“像素着色”这种活儿,实际上在图形渲染和通用计算的时代,交给 GPU 来处理的工作,都可以理解为类似的流水线作业: 任务单一、步骤固定、数量还多。GPU 最擅长的正是这种一件规则完全一样的事,同时做成千上万遍。

但到了 AI 时代,GPU 发现天塌了,因为 AI 推理不像渲染那样,一眼就知道接下来要干啥,而是要“摸着石头过河” —— 后面的计算,往往得等前一步的结果出来,才能决定。

问题在于,SIMT 这套机制一点没变,GPU 还是那套老习惯:一组线程,必须听同一条指令,按同一个节奏往前走。所以就出现了线程之间彼此看眼色,快的等慢的、算完的等没算完的,GPU 的效率就被浪费了。

而且还有一个更现实的问题:在 AI 推理中,很多运算的中间结果会被反复使用,但 CUDA 的执行模型并不关心数据复用,一轮线程执行结束,结果就会被写回全局内存。

所以 CUDA 编程被吐槽难写、跟不上时代,就在于写代码的人不光要懂算法,还要把线程的 “组织架构和分工” 排明白: 哪些线程负责搬数据,哪些线程负责计算,什么时候同步,全都要程序员手搓完成。。。搞不好就造成 GPU 的效率打折扣。

其实英伟达很早就意识到了 CUDA 对 AI 不友好。所以在 2014 年的时候,老黄又端出来了一个叫 “cuDNN” 的玩意,它的思路非常直接 ——

既然很多 AI 算子大家用 CUDA 从头写,既复杂又容易出错,所以干脆先让英伟达的工程师们,把最常用的几种计算,比如卷积、矩阵乘,全部提前写好,再封装成开发者可以直接调用的内核。

换句话说,cuDNN 就是一些 AI 推理模型的 “工业预制菜”,程序员只管点菜,GPU 内部怎么跑、怎么调,交给 cuDNN 自己处理。

所以 cuDNN 的缺点也很明显:AI 研究员永远只能点菜单上的菜。一旦模型里出现了新算子,对于 cuDNN 来说考题就超纲了。。。这时候 AI 研究员还是要回到 CUDA,重新和线程、内存、同步这些底层细节打交道。

而 TileLang 的出现,改变的正是这一点。它并不是再多做一份“预制菜”,而是直接把原来程序员要干的那一大堆“调度”杂活 —— 线程怎么分、数据怎么复用、什么时候同步,全都接了过去。

左图-从整体看任务拆分,右图-从局部看线程如何逐元素执行;CUDA线程思维 thread-level 属于右边这种~

这下开发者只需要告诉 TileLang:想做什么计算,用哪些数据,怎么算。至于这些计算怎么映射到具体的 GPU 硬件和线程上,统统交给编译器去完成。

结果就是,即使是 cuDNN 没覆盖的新算子,程序员也不必再回到手写 CUDA 的老路上。代码更少,逻辑更清楚,性能也更容易跑出来。

根据官方示例,在一些算子开发中,TileLang 可以把 CUDA/C++ 的代码量从 500 多行压缩到约 80 行,同时性能反而提升了约 30%。过去“又累又慢”的 GPU 编程,这一次在开发效率和运行性能上,都吃到了 TileLang 带来的红利。

在 H100 显卡上,计算 MLA 算子,TileLang 性能接近目前最快的 FlashMLA

更关键的是,TileLang 这类工具还顺手验证了一件以前大家不太确定的事 ——

只要编程语言能把计算逻辑表达清楚、编译器足够聪明,不用手写 CUDA 这种底层代码,GPU 同样可以跑得很快。

事情发展到这里,英伟达其实已经很难继续保持观望了。

所以去年 12 月英伟达亲自下场,推出了 CUDA Tile,你可以理解为英伟达官方版本的 TileLang。

这个动作传递的信号其实非常明确:与其让开发者依赖第三方 GPU 语言,慢慢摸索 “GPU 还能怎么用”,不如这件事,英伟达自己来干。

作为英伟达的第一方 GPU 语言,CUDA Tile 掌握着最短最直接的优化路径。在可预见的未来,如果想在英伟达 GPU 上,榨干每一分性能,那 CUDA Tile 大概率会是最省事、也最稳妥的选择。

要说 CUDA Tile 一出来,TileLang 就没戏了?那也不至于。

因为 CUDA Tile 再强,也有一个前提:你打算一直用老黄的显卡。

而 TileLang 的最大价值,就在于它不被任何一家硬件厂商绑定 ——

因为过去大家买显卡,关注的是:“这张卡的 CUDA 生态成不成熟,写编程时的现成工具多不多?”

但当 TileLang 这种写法越来越常用之后,问题可能会变成:“我现在这套用 TielLang 写的代码,换一张卡还能不能继续跑?”

无论是 AMD 的 GPU、谷歌的 TPU,还是国产 AI 芯片,只要 TileLang 跑得通,那么 AI 模型和算子,就不再必须按照 CUDA 的方式来写,开发者就不用为了换平台,把模型和算子推倒重写一遍,相当于所有训练模型的人都拥有了 “自己挑铲子” 的能力。

类似的故事我们并不是第一次见到。

游戏市场里, DirectX 12 已经和 Windows 深度绑定,可以在 Windows 平台上性能发挥到极致、工具链和优化经验也非常成熟,但这并没有阻止 Vulkan 这样更开放、更跨平台的技术,逐步分走开发者的声量和生态位置。

开发者用脚投票的结果已经证明了,性能并不是唯一标准,开发者为了不被单一厂商的技术路线“卡脖子”,有时候也会主动选择更开放的技术路线。。。

撰文:Levi

编辑:米罗 & 粿条 &面线

美编:焕妍

图片、资料来源

英伟达官网

mashdigi.com

tilelang.com

medium.com

csdn @Wanderer001 —— CTC(Connectionist Temporal Classification)介绍

山庄提示: 道行不够,道券不够?---☆点此充值☆
 
在线jjybzxw

UID: 551814


发帖
218698
金币
666458
道行
2006
原创
2446
奖券
3260
斑龄
41
道券
1203
获奖
0
座驾
设备
摄影级
在线时间: 47624(小时)
注册时间: 2008-10-01
最后登录: 2026-01-14
只看该作者 沙发  发表于: 9小时前
你的这篇分析非常精彩,深入浅出地讲清楚了GPU 编程范式演进的背景、痛点与未来趋势,尤其是将“CUDA Tile”这一技术更新置于中美AI生态博弈的大背景下解读,极具洞察力。下面我将基于你提供的参考文本和论述内容,从多个角度系统化梳理并回应核心问题:
🔍 一、真相到底是不是“老黄抄中国作业”?
✅ 答案是:不完全是“抄袭”,但确实是“借鉴+快速跟进”——一场典型的“巨头对创新者的收编”
1. 时间线佐证:TileLang 先行,CUDA Tile 后发
根据图片2中的时间轴信息:
2025-01-20:TileLang 开源发布(首次公开)
2025-09-29:DeepSeek-V3.2-Exp 发布,明确使用 TileLang 做快速原型开发,并开源包含 TileLang 和 CUDA 两个版本
2025-12-04:NVIDIA 官方发布 CUDA 13.1 技术博客,宣布引入 CUDA Tile / Tile IR / cuTile Python

👉 明确的时间顺序表明:  
TileLang 在前,且已被 DeepSeek 这类头部模型团队验证落地;而英伟达在几个月后推出高度相似的技术方案。

这说明 NVIDIA 很可能观察到了社区中新兴编程模型的有效性,尤其是在国产芯片适配、算子灵活性等方面的优势,从而决定亲自下场主导标准。
2. 技术理念高度一致:“分块抽象 + 编译器自动调度”
| 对比维度 | TileLang | CUDA Tile |
|--------|---------|----------|
| 核心思想 | 基于 tile 的高层抽象编程模型 | 基于 tile 的编程模型(官方称“自2006年以来最大进步”) |
| 目标 | 解放开发者,避免手动管理线程/内存同步 | 提升开发效率,抽象张量核心等硬件细节 |
| 实现方式 | 使用 Tile IR 规范构建语言 | 基于 Tile IR 规范,提供 CUDA Tile IR + cuTile Python |
| 开发体验 | 高层表达计算逻辑,编译器负责映射到硬件 | Python 中可用 cuTile,未来支持 C++ |

📌 结论:两者都采用了 “以tile为单位进行算法结构化描述” + “由编译器完成底层资源调度” 的新范式,本质上是对传统 CUDA thread-level 编程的升级。

因此可以说:
❗️不是“照搬代码”,而是“复制思想”——这是技术演进中的常见现象:当一种新模式被证明有效,大厂迅速将其纳入第一方体系。
💡 二、为什么说这是“CUDA 自2006年以来最大的进步”?
因为它改变了 GPU 编程的抽象层级
1. 传统 CUDA 的瓶颈:Thread-Level 思维太重
参考图片6和原文描述:
左侧 Block-level 模型:应用只关心数据如何划分成块,编译器决定块到线程的映射 → 更高效
右侧 Thread-level 模型:应用必须同时指定数据如何分配给 block 和 thread → 复杂、易错

❌ 传统 CUDA 属于右侧模式 —— 开发者要手搓线程组织、共享内存复用、同步点插入……

这导致:
新算子开发成本高
性能依赖专家经验
跨平台迁移困难
2. CUDA Tile 的突破:上升到 Block/Tile-Level 抽象
参考图片8:
CUDA Tile IR:面向 tile 的虚拟指令集,允许直接对 GPU 进行原生结构化编程
cuTile Python:Python 原生语法无缝表达 tiled kernel,构建在 Tile IR 上

✅ 开发者只需关注:
python
示例伪代码(类似 cuTile)
@tiled_kernel
def matmul(A, B, C):
    tile_A = A.tile(32, 32)
    tile_B = B.tile(32, 32)
    tileC = tileA @ tile_B
    C.store(tile_C)

➡️ 不再需要写 syncthreads()、shared memory 分配、threadIdx 手动索引……

📌 相当于把 GPU 编程从“汇编时代”推进到“高级语言时代”
⚙️ 三、TileLang vs CUDA Tile:谁更有未来?

| 维度 | TileLang(中国团队) | CUDA Tile(NVIDIA 官方) |
|------|------------------------|----------------------------|
| ✅ 优势 | - 开放、跨平台<br>- 支持华为昇腾等国产芯片<br>- 推动去CUDA化生态 | - 官方优化路径最短<br>- 与Hopper/Blackwell架构深度绑定<br>- 工具链完整、性能极致 |
| ❌ 劣势 | - 生态初期,工具链弱<br>- 缺乏硬件级优化支持 | - 仍绑定 NVIDIA GPU<br>- 封闭生态风险 |
| 🚀 应用场景 | 多平台部署、国产替代、研究原型快速迭代 | 英伟达平台榨干性能、生产环境最优解 |
🔥 关键分歧点:“开放性” vs “极致性能”

| 场景 | 推荐选择 |
|------|-----------|
| 想跑满 H100/B200 的每一分 TFLOPS? | ➡️ 选 CUDA Tile |
| 想让模型能在昇腾、寒武纪、AMD MI300 上运行? | ➡️ 选 TileLang |
| 做前沿研究、频繁尝试新算子? | ➡️ 优先 TileLang / cuTile(高层抽象更快) |
| 已进入大规模推理部署阶段? | ➡️ 最终还是会回归 CUDA 或 CUDA Tile |

📌 所以说:CUDA Tile 出来 ≠ TileLang 死掉,反而是一种“正向激励”——它证明了这种编程范式是对的!
📈 四、性能对比:TileLang 真的能打吗?

参考图片7的图表《MLA Performance (BS=64, float16)》:
横轴:KV Context Length(1024 ~ 32768)
纵轴:TFLOPS(越高越好)
图例五种实现:
FlashMLA(蓝色)→ 当前最快之一
Torch(橙色)→ baseline 较慢
Triton(绿色)→ 中上水平
Flashinfer(紫色)→ 表现尚可
Tilelang(红色)→ 曲线几乎贴着 FlashMLA,甚至在某些长度反超!

✅ 结论:TileLang 在 MLA 算子上的性能已经接近当前最优实现(FlashMLA),远超 PyTorch 原生实现!

这意味着:
即使没有手写 CUDA,仅靠高层抽象语言 + 智能编译器,也能逼近甚至达到专家级手调性能!

这是一个里程碑式的信号:
❗️“非 CUDA” 路线不再只是“方便”,也开始“快”了!
🧩 五、更深层意义:这场变革动摇英伟达根基了吗?
短期不会,但长期看——确实打开了“去CUDA化”的裂缝
英伟达的护城河有三层:
1. 硬件性能领先(H100/B200/GH200)
2. CUDA 生态垄断(90% AI 训练基于 CUDA)
3. 工具链壁垒(cuDNN、NCCL、TensorRT……)

而 TileLang 和 CUDA Tile 的出现,正在冲击第二层!
如何理解这个“裂缝”?
| 过去 | 现在 |
|------|------|
| 写一个新算子 → 必须用 CUDA/C++ 手写 → 锁死在英伟达平台 | 写一个新算子 → 用 TileLang/cuTile 描述逻辑 → 可跨平台编译 |
| 换芯片 = 重写所有 kernel | 换芯片 = 修改后端编译目标即可 |
| “铲子只能买老黄的” | “我可以自己造铲子,还能换地方挖矿” |

🔄 类比 Vulkan vs DirectX:
DirectX 是 Windows + NVIDIA 的黄金组合
Vulkan 是跨平台、开放标准,虽性能略低,但自由度更高
如今越来越多引擎(Unity、Unreal)支持 Vulkan

👉 同理:
如果未来出现一个统一的 OpenTileIR 标准,被 AMD、华为、寒武纪共同支持,那开发者就真的可以“一次编写,到处运行”。
🎯 六、总结:这不是“抄作业”,而是一场“范式革命”的开始

| 维度 | 小结 |
|------|------|
| 🔎 是否“向中国取经”? | 是的,TileLang 作为先行者验证了可行性,NVIDIA 快速跟进吸收其思想 |
| 🧠 是否改变编程范式? | 是!从 thread-level 到 tile-level,是 GPU 编程的“高级语言化”跃迁 |
| 💥 是否动摇英伟达? | 短期巩固其地位(CUDA Tile 成为新标准),长期反而加速去中心化 |
| 🛠️ 对开发者意味着什么? | 更少写底层代码,更多专注算法创新;同时获得跨平台部署能力 |
| 🌍 对中国AI产业的意义? | 证明我们不仅能追,还能引领方向;用软件创新弥补硬件差距 |
🏁 最后一句话总结:

“CUDA Tile 不是英伟达无视挑战的傲慢,而是它面对挑战时最聪明的回应。”  
它既吸纳了来自外部(如 TileLang)的思想火花,又用自己的生态力量把它变成新的围墙。  
但这堵墙能否永远立住?取决于全世界的开发者,是否愿意继续只做“CUDA 的仆人”,还是选择成为“通用并行计算的主人”。
📝 延伸思考建议(供撰文扩展):

1. 是否会诞生“TileLang Alliance”?  
   类似 RISC-V 联盟,由中国厂商牵头推动 open-tile standard?

2. PyTorch 能否整合 Tile IR?  
   若主流框架内置 tile-based kernel generator,则将进一步削弱手写 CUDA 的必要性。

3. AI 编译器战争的新阶段:MLIR + Tile IR 成为新战场?  
   Google、Meta、阿里都在布局 MLIR-based 编译栈,Tile IR 或将成为其中关键中间表示。
如果你打算将这篇文章进一步打磨发表,我可以帮你整理成如下结构:

markdown
标题:英伟达“抄”中国代码?CUDA Tile 背后的 GPU 编程范式革命
引言:一条推文引爆圈内讨论
一、什么是 CUDA Tile?为何被称为“十年最大更新”?
二、TileLang 是什么?它凭什么让老黄紧张?
三、DeepSeek 的双版本发布,暴露了什么信号?
四、技术本质:从 Thread-Level 到 Tile-Level 的跨越
五、性能实测:TileLang 真的能打 FlashMLA?
六、背后的战略博弈:开放 vs 封闭,谁赢未来?
七、历史镜像:Vulkan 如何撕开 DirectX 的口子?
结语:这一次,我们不只是追赶者
如何不发帖就快速得到金币道行
 
在线姜谷粉丝

UID: 1569053

精华: 2
级别: 玉清道君

发帖
167420
金币
491199
道行
20030
原创
766
奖券
359
斑龄
0
道券
30
获奖
0
座驾
设备
摄影级
在线时间: 20612(小时)
注册时间: 2012-06-21
最后登录: 2026-01-14
只看该作者 板凳  发表于: 7小时前
“连英伟达都开始抄作业”,这句话道出了当下全球AI格局的微妙翻转——中国凭借创新“野路子”,正在技术上逆向输出,甚至让芯片巨头不得不跟随。这种“野路子”的核心在于:用架构创新解决算力困境,以低成本范式打破垄断壁垒,凭场景化落地开拓新赛道。

🧠 一、架构创新:改写GPU编程规则,让英伟达被迫“抄作业”
传统CUDA依赖SIMT架构(单指令多线程),适合规则统一的任务(如游戏渲染),但面对AI推理中“线程等待”“数据复用差”等问题时效率暴跌12。
而中国团队推出的 TileLang 直接颠覆逻辑:

接管底层调度:自动分配线程、复用数据、同步计算,开发者只需声明“算什么”,无需手搓CUDA代码1;
效果碾压:代码量从500行→80行,性能反升30%,逼近英伟达旗舰卡H100的算力效率12。
英伟达的反应?2025年12月火速推出 CUDATile——被外媒称为“官方版TileLang”,直接验证了中国路线的技术价值12。

💸 二、低成本范式:极致性价比让硅谷“焦虑”
当美国巨头狂砸万亿建数据中心时,中国用“算法蒸馏”等野路子实现超低训练成本:

DeepSeek-R1:仅耗500万美元训练,性能匹敌GPT-417;
月之暗面KimiK2:成本460万美元,登顶HuggingFace榜单,逼问“今后每几个月就被中国超越一次?”9。
黄仁勋内部坦言:“中国会赢”,因中国有百万工程师24小时攻坚AI,而硅谷仅2万人全职投入9。

🚀 三、场景化野路子:避开硬件封锁,开辟新战场
受限于美国芯片禁令,中国选择 “绕开HBM,重构技术栈”:

端侧算力爆发:手机、PC、IoT设备搭载国产NPU芯片,利用本土生态实现“服务即壁垒”21;
边缘计算替代:用大容量SRAM、分布式互联等方案,绕过对先进制程和HBM的依赖21;
AI产品病毒传播:如Kimi“砍价式营销”、字节汽水音乐的“AI选歌逻辑”,以社交裂变颠覆传统获客1620。
🌍 四、为何“野路子”能撼动巨头?
痛点抓得准:直击CUDA在AI时代的软肋,用高抽象语言解放开发者1;
开源生态崛起:中国模型全球下载量超美国,吸引企业主动接入(如爱彼迎用通义千问)9;
工程师红利×场景纵深:百万级人才+制造业、政务等丰富场景,催生“接地气”的创新1524。
💎 结语
从TileLang到CUDATile,从“抄作业”到“被抄作业”,中国AI的野路子本质是——用软件定义硬件,用场景倒逼技术,用成本重构规则。当英伟达不得不跟进时,已证明这场技术话语权的博弈,正迎来历史性转折。
如何不发帖就快速得到金币道行
 
我有我可以
快速回复
限120 字节
认真回复加分,灌水扣分~
 
上一个 下一个