超神经HyperAI · 6 天前 · 北京

CUDA初始团队成员锐评cuTile「专打」Triton,Tile范式能否重塑GPU编程生态竞争格局

2025 年 12 月,在 CUDA 发布近二十年后,NVIDIA 推出了最新版 CUDA 13.1,核心变化在于全新的 CUDA Tile(简称 cuTile)编程模型,通过「Tile-based」编程模型重新组织了 GPU 的内核结构,支持开发者在不直接操作底层 CUDA C++ 的前提下,写出具备高性能特性的 Kernel。 对于 GPU 编程生态来说,这无疑是一个值得关注的节点:它或许是 NVIDIA 为了应对 AI 时代日益增长的自定义算子需求,进一步提升软件生态粘性而推出的新层级产品。

而在进入公共视野后,cuTile 也迅速在开发者社区引发了有关自定义算子开发周期、与竞品 Triton 的直接竞争,以及能否成为 Python 默认入口的广泛讨论。虽然 cuTile 还处在非常早期的阶段,但从目前的开发者反馈来看,它已经具备成为新范式的潜力。

随着相关生态逐步成形,cuTile 的定位与潜力也变得更加清晰。在 GitHub、论坛与内部项目中,有大量工程师们肯定了 cuTile 在代码组织和可读性上的改进,部分社区用户则进行了将现有 CUDA 代码迁移到 cuTile 的尝试。在支持 Python 生态后,cuTile 是否会成为 GPU 编程的主流入口,抑或在 CUDA 与 Triton 之间形成新的技术分工?随着更多真实工作负载涌入,这些答案或许会在未来几年逐渐。

cuTile,让 GPU 编程进入「专注代码」的时代

在过去的很长一段时间里,CUDA 向开发者提供了单指令多线程(SIMT)的硬件和编程模型,让其通过「线程(thread)」的粒度来描述 GPU 的并行计算逻辑:一个 kernel 被切分成成千上万的线程,每个线程执行一小段计算,成组线程组成 block,再由硬件映射到 SM(Streaming Multiprocessor)上执行。

但随着计算需求特别是 AI 训练规模在过去 3-5 年呈指数级增长,这种以 thread 为中心的编程遇到越来越多的瓶颈。 研究人员与工程师不仅需要理解线程调度,还要深入考虑 memory coalescing、warp 发散甚至 Tensor Core 的执行格式。换句话说,写一个高性能的 CUDA kernel 需要对显卡架构的方方面面了然于胸,否则很难完全发挥出硬件全部性能。

而 cuTile 的出现,正是英伟达对这一趋势的回应——让开发者回归算法,而硬件性能激发则交给框架。

具体而言,cuTile 是一种面向 NVIDIA GPU 的并行编程模型,同时也是一个基于 Python 的领域专用语言(DSL)。它能够自动利用先进的硬件能力, 例如 Tensor Core 和张量内存加速器,并在不同的 NVIDIA GPU 架构之间保持良好的可移植性。

在这里插入图片描述

Tile 模型(左图)将数据划分为块,由编译器映射到线程;SIMT 模型(右图)则将数据同时映射到块和线程

从技术层面来看, CUDA Tile 的基础是 CUDA Tile IR(中间表示),其引入了一套虚拟指令集,使得硬件可以以 Tile 操作的方式进行原生编程。开发者可以编写更高层次的代码,而这些代码仅需极小的修改便能够跨多代 GPU 高效执行。

虽然 NVIDIA 的 Parallel Thread Execution(PTX) 保证了 SIMT 程序的可移植性,但 CUDA Tile IR 扩展了 CUDA 平台,使其原生支持基于 Tile 的程序。 开发者可以专注于将数据并行程序划分为 tiles 和 tile blocks,由 CUDA Tile IR 处理这些 tile 在硬件资源上的映射,包括线程、内存层次结构以及张量核心(tensor cores)。也就是说,基于 Tile 的编程使开发者能够通过指定 tiles 来编写算法,并定义这些 tiles 上执行的计算操作,但无需为算法的每个元素逐一设置执行方式,交由编译器来处理这些细节。

CUDA 推行 20 年,NVIDIA 为何选择更新编程范式

cuTile 的推出,距离 CUDA 首次发布已将近二十年。 自 2006 年发布以来,CUDA 逐步从 GPU 编程接口演变为贯穿框架、编译器、库与工具链的完整生态层,并作为 NVIDIA 软件体系的核心基础设施延续至今。NVIDIA 选择在 2025 年推出新的编程范式对 CUDA 进行迭代,其实并非单纯的技术演进,而是对行业环境变化的直接回应。

一方面,AI 工作负载的变化带来了极高的自定义算子需求,传统 CUDA C++ 的开发速度、调试成本以及人才稀缺问题已经成为制约。许多团队能够快速设计算法,但难以在短时间内写出高性能、可维护的 CUDA Kernel。cuTile 的推出正是为了解决这一矛盾:在不牺牲性能的前提下,提供一种对 Python 友好的入口,让更多开发者能在可控成本下构建自定义算子,从而降低整体 GPU 编程门槛并缩短迭代周期。

换言之,cuTile 是 NVIDIA 为未来十年 GPU 软件生态做的提前布局,是在算子 DSL 战争全面展开前,NVIDIA 把编程范式重新收回自己手里的关键动作。

而另一方面,在「去英伟达化」的趋势下,GPU 软件生态的竞争愈发激烈:AMD 推出开源加速计算平台 ROCm,通过开放架构吸引更多第三方库与工具接入,扩大生态覆盖;Intel 推出 OneAPI,试图构建跨架构统一的编程模型,并提供 DPC++ 等语言支持以降低异构系统开发的复杂度,这些无一不在削弱 CUDA 的独占地位。

此外,AI 大模型公司和芯片公司也竞相自研算子 DSL。早在 2022 年 10 月,OpenAI 就发布了 Triton。这种面向 GPU 的开源深度学习编程语言编译器,无需深入 CUDA C++ 的底层细节,就能让开发者使用简洁的 Python-风格代码编写高性能 GPU 内核。于是,Triton 在社区内迅速引起关注。许多研究者和工程师认为,Triton 降低了 GPU 算子开发的入门门槛。而 Meta/FAIR 相关的 TC/tensor language、以及社区围绕 TVM/Relay/DeepSpeed 等构建的算子编译和优化框架,也为软件生态的细分领域竞争提供了多样化的选择。

这直接推动了 cuTile 的出现——为了稳固商业护城河,NVIDIA 不得不进一步提升其软件体系的封装程度与使用体验,使更多开发者选择留在 CUDA 生态内。SemiAnalysis 发文称,cuTile 的问世是 NVIDIA 试图加深 CUDA 护城河的重要举措, 「PyTorch 编译器现在除了支持 Triton 之外,还可以支持 NVIDIA Python CuTeDSL,这使得 FlexAttention 的速度比 Triton 实现快 2 倍。NVIDIA 一直大力支持其闭源的 Python CuTeDSL、cuTile 和 TileIR 生态系统,通过 Python CuTeDSL/cuTile/TileIR,NVIDIA 重新获得了闭源编译器优化通道。」

在这里插入图片描述

SemiAnalysis 发文

复制 triton?cuTile 的「Tile 思维」,开发者这样说

事实上,cuTile 的市场反响中夹杂着争议的声音。 有开发者使用后反馈称,Tile 优化是新颖的进步,但 DSL 过多也带来了新的学习成本。Reddit 用户 Previous-Raisin 1434 评论表示,cuTile 新增的 DSL 让他在过渡阶段感到冗杂。

「为什么突然冒出上千种不同的东西?我之前用的是Triton,现在 NVIDIA 居然又推出了十几个新的 DSL。」他抱怨道。

在这里插入图片描述

Reddit 用户有关 DSL 的负面意见,例如抱怨 NVIDIA 又推出了多个新的 DSL

同时,还有相关从业人员质疑 cuTile 在产品的差异性和原创性上略显乏力,「cuTile 感觉像是 NVIDIA 对 Triton、Mojo 和 ThunderKittens 的回应,像把它们被整合在一起。」

在这里插入图片描述

使用者质疑 cuTile原创性,称其像是整合了 Triton、Mojo 和 ThunderKittens

对此,CUDA 初始团队成员 Nicholas Wilt 甚至也发文称, 「很难不怀疑 cuTile 就是直接针对 Triton 而开发的。cuTile 就是一个新的 eDSL,用于编写内核,就像 Triton 或 Helion 一样。」

在这里插入图片描述

CUDA 创始团队成员发文锐评:怀疑 cuTile 就是直接针对 Triton 而开发的

那么,cuTile 复制 triton 了吗?对此,大部分用户给出了否定的答案——事实证明,cuTile 的市场反响大体上仍趋于乐观,除了少数质疑意见外,大部分用户并未对此次更新表现出不满,甚至称赞 cuTile 是「颠覆性的产品」, 「cuTile 使用户无需再考虑内存交换、warp spclz、内存合并以及其他一百多种问题」。

在这里插入图片描述

X 平台用户大赞 cuTile 是颠覆性产品

根据一篇科技博客的观点,cuTile 赢取用户心智的核心魅力就在于其「Tile」思想将 GPU 计算引入了更高层次的抽象阶段。

「我本以为这又是一个 CUDA 的 Python 绑定或简化包装,但深入其文档和示例后,我发现它的野心更大。cuTile 的核心思想是 Tile,在并行计算和硬件加速领域, Tiling 是一种经典优化技术,将大数据集分割成小块,以便更好地利用高速缓存或共享内存。cuTile 将这个思想提升到了编程模型的高度。」该博客指出,「它允许开发者直接以 Tile 为基本单位来思考和描述计算。你不再需要显式地管理线程块中的每一个线程如何协作、如何从全局内存加载数据到共享内存、如何进行同步。相反,你定义数据的瓦片、定义在瓦片上执行的操作,cuTile 的编译器会帮你自动生成高效的内核代码,处理那些繁琐的底层细节。」

尽管 cuTile 仍处在早期阶段,但业内已经出现了主动探索迁移路径的实践。一些算法从业人员开始尝试构建从 CUDA C++ 到 cuTile 的自动化转换工具, 希望在现有工程代码和新范式之间建立可行的桥梁。其中,有 Reddit 社区的开发者发起了开源项目,能够将部分 CUDA Kernel 翻译为基于 Tile 的形式,以满足社群潜在迁移需求。

在这里插入图片描述

发布在 Reddit 的开源项目,将部分 CUDA Kernel 翻译为基于 Tile 的形式

但 NVIDIA 的「Tile」范式究竟能走多远,并没有明确的答案——作为新产品,cuTile 才刚刚进入验证期。如果从 CUDA 到 cuTile 的迁移工具链进一步成熟,并且社区愿意围绕 cuTile 形成新的尝试与讨论圈子,那么 cuTile 或将在未来的 GPU 软件生态中占据前所未有的位置。但无法跨过这些门槛的结果十分明确—— cuTile 可能止步于 CUDA 历史长河中的一次短暂实验。 总之,在目前的竞争环境下,cuTile 的持续吸引力将取决于它能否不断优化开发体验、降低迁移成本,并为复杂算子提供不可替代的性能优势。

参考链接:

1.https://byteiota.com/nvidia-c...

2.https://veyvin.com/archives/g...

3.https://cloud.tencent.com/dev...

4.https://developer.nvidia.com/...

推荐阅读
关注数
682
内容数
378
链接人工智能新场景
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息