自2006年问世以来最大革新:英伟达CUDA 13.1发布
IT之家 12 月 7 日消息,英伟达本周四发布了全新的 CUDA 13.1,这是自 2006 年 CUDA 平台问世以来规模最大的一次功能扩展更新。
英伟达介绍称,本次更新的重点在于引入了一种名为 CUDA Tile 的全新 GPU 编程方式,旨在让更广泛的开发者群体能够更轻松地运用强大的 AI 与加速计算能力。

NVIDIA CUDA Tile 引入了一套用于基于 Tile(数据块)的并行编程的虚拟指令集,其侧重点在于让开发者能够更高层次地编写算法,并屏蔽诸如张量核心等专用硬件的实现细节。
为何要为 GPU 引入 Tile 编程?英伟达表示,CUDA 向开发者暴露的是单指令多线程硬件与编程模型。这就要求(同时也使得)开发者能以最大的灵活性和精确度来细致控制代码的执行方式。然而,编写出高性能、尤其是能在多种 GPU 架构上均有优异表现的代码,也可能需要付出相当大的努力。虽然存在众多辅助开发者挖掘性能的函数库,例如 NVIDIA CUDA-X 和 NVIDIA CUTLASS,但 CUDA Tile 引入了一种比 SIMT 更高级别的 GPU 编程新范式。
随着计算负载,特别是 AI 领域的演进,张量(Tensor)已成为一种基础数据类型。NVIDIA 开发了专门操作张量的专用硬件,例如 NVIDIA 张量核心(TC)和张量内存加速器(TMA),它们已成为每一代 GPU 架构不可或缺的部分。
再加上硬件日趋复杂,就需要更多软件来帮助驾驭这些能力。CUDA Tile 抽象了张量核心及其编程模型,使得采用 CUDA Tile 编写的代码能够兼容当前及未来的张量核心架构。

据英伟达介绍,基于 Tile 的编程使开发者能够通过指定数据块(即 Tile),进而定义在这些 Tile 上执行的计算来编写算法。如此一来,开发者就无需设定算法的执行方式,而是让编译器与运行时自动处理这些细节。

上图展示了随 CUDA Tile 引入的 Tile 模型与 CUDA SIMT 模型在概念上的差异。这种编程范型在 Python 等语言中很常见,其中像 NumPy 这样的函数库可以让人指定矩阵等数据类型,然后用简单的代码指定并执行批量运算。
CUDA Tile IR:Tile 编程的基础CUDA Tile 的基础是 CUDA Tile IR(intermediate representation,中间表示)。Tile IR 引入了一套虚拟指令集,使得能够以 Tile 操作的方式对本机硬件进行编程。开发者可以编写更高级别的代码,只需最小改动即可在多代 GPU 上高效执行。
尽管 NVIDIA Parallel Thread Execution(PTX)确保了 SIMT 程序的可移植性,但 CUDA Tile IR 通过新增对基于 Tile 的程序的原生支持,扩展了 CUDA 平台。开发者专注于将其数据并行程序划分为 Tile 和 Tile 块,而由 CUDA Tile IR 负责处理到线程、内存层次结构和张量核心等硬件资源的映射。
通过提升抽象级别,CUDA Tile IR 使得用户能够为 NVIDIA 硬件构建更高级别的硬件专用编译器、框架以及领域专用语言。就 Tile 编程而言,CUDA Tile IR 的地位类似于 SIMT 编程中的 PTX。
需要指出的是,这并非强制选择。GPU 上的 Tile 编程只是编写 GPU 代码的一种可选方式,开发者不必在 SIMT 和 Tile 编程之间二选一(它们是共存的)。当需要 SIMT 时,开发者可以像往常一样编写内核;当希望利用张量核心进行操作时,则可以编写 Tile 内核。

上图展示了 CUDA Tile 如何融入一个典型的软件栈,以及 Tile 路径如何作为一条独立但互补的路径,与现有的 SIMT 路径并存。
开发者如何运用 CUDA Tile 编写 GPU 应用英伟达表示,CUDA Tile IR 位于大多数程序员与 Tile 编程交互的层面之下。“除非你正在编写编译器或函数库,否则很可能不需要关心 CUDA Tile IR 的软件细节。”
NVIDIA cuTile Python:大多数开发者将通过类似 NVIDIA cuTile Python 这样的软件与 CUDA Tile 编程进行交互 —— 这是一个使用 CUDA Tile IR 作为后端的 NVIDIA Python 实现。CUDA Tile IR:对于那些希望构建自己的领域专用语言编译器或函数库的开发者,CUDA Tile IR 将是您与之交互的层面。其文档与规范包含了关于 CUDA Tile IR 编程抽象、语法和语义的信息。如果您正在开发的工具 / 编译器 / 函数库目前以 PTX 为目标,那么您可以调整您的软件,使其也能以 CUDA Tile IR 为目标。参考地址:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
