news 2026/5/12 8:43:35

深入解析NVIDIA CUDA Tile:面向GPU的平铺编程新范式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入解析NVIDIA CUDA Tile:面向GPU的平铺编程新范式

随着CUDA 13.1的发布,该平台引入了自2006年诞生以来最重大的进展之一:NVIDIA CUDA Tile。这项令人兴奋的创新引入了一个面向基于平铺(Tile)的并行编程的虚拟指令集,其核心在于让开发者能够以更高的抽象级别编写算法,并屏蔽专用硬件(如张量核心)的细节。

为何为GPU引入平铺编程?

CUDA为开发者提供了一个单指令多线程(SIMT)的硬件和编程模型。这要求(并使得)开发者能够以最大的灵活性和特异性,精细地控制代码的执行方式。然而,编写出高性能的代码,尤其是在跨越多代GPU架构时,通常需要付出巨大的努力。

市面上已有许多库来帮助开发者挖掘性能,例如某中心的CUDA-X和CUTLASS。而CUDA Tile则引入了一种比SIMT更高级别的GPU编程新方式。

随着计算负载的演进,特别是在人工智能领域,张量已成为一种基本数据类型。某中心已开发出专门的硬件来对张量进行操作,例如某中心的张量核心(TC)和张量内存加速器(TMA),它们已成为每一代新GPU架构不可或缺的部分。

随着硬件变得越来越复杂,需要更多的软件来帮助驾驭这些能力。CUDA Tile抽象了张量核心及其编程模型,使得使用CUDA Tile编写的代码能够与当前及未来的张量核心架构兼容。

基于平铺的编程使您能够通过指定数据块(或称为“平铺”)来编写算法,然后定义在这些平铺上执行的计算。您无需在元素级别设置算法的执行方式:编译器与运行时将为您处理这些细节。

图1展示了CUDA Tile引入的平铺模型与CUDA SIMT模型在概念上的差异。

图1. 平铺模型(左)将数据划分为块,编译器将其映射到线程。SIMT模型(右)将数据同时映射到线程块和线程。

这种编程范式在Python等语言中很常见,像NumPy这样的库允许您指定矩阵等数据类型,然后用简单的代码指定并执行批量操作。在底层,正确的事情会自动发生,您的计算过程对您完全透明。

CUDA Tile IR:平铺编程的基础

CUDA Tile的基石是CUDA Tile IR(中间表示)。CUDA Tile IR引入了一套虚拟指令集,支持将硬件作为平铺操作进行原生编程。开发者可以编写更高级别的代码,这些代码能在多代GPU上高效执行,且只需极少改动。

虽然某中心的并行线程执行(PTX)确保了SIMT程序的可移植性,但CUDA Tile IR为CUDA平台扩展了原生的平铺程序支持。开发者专注于将他们的数据并行程序划分为平铺和平铺块,而让CUDA Tile IR来处理如何将这些映射到硬件资源上,例如线程、内存层次结构和张量核心。

通过提高抽象级别,CUDA Tile IR使用户能够为某中心硬件构建更高级别的、硬件特定的编译器、框架和领域特定语言(DSL)。对于平铺编程而言,CUDA Tile IR的作用类似于SIMT编程中的PTX。

需要指出的是,这并非非此即彼的选择。在GPU上进行平铺编程是编写GPU代码的另一种途径,但您不必在SIMT和平铺编程之间二选一;它们可以共存。当您需要SIMT时,您可以像往常一样编写您的内核。当您希望利用张量核心进行操作时,您可以编写平铺内核。

图2展示了CUDA Tile如何融入一个代表性的软件栈的高层示意图,以及平铺路径如何作为现有SIMT路径的一个独立但互补的路径存在。

图2. 编译的平铺路径(橙色)融入到整个软件栈中,与SIMT路径(蓝色)并行。

开发者如何使用CUDA Tile编写GPU应用

CUDA Tile IR位于绝大多数程序员与平铺编程交互的层面之下。除非您正在编写编译器或库,否则您可能不需要关心CUDA Tile IR软件的细节。

  • 某中心 cuTile Python:大多数开发者将通过诸如某中心 cuTile Python这样的软件与CUDA平铺编程交互——这是一个使用CUDA Tile IR作为后端的某中心Python实现。有一篇博客文章解释了如何使用cuTile-python,并附有示例代码和文档链接。
  • CUDA Tile IR:对于希望构建自己的DSL编译器或库的开发者,CUDA Tile IR是您与CUDA Tile交互的地方。CUDA Tile IR文档和规范包含了关于其编程抽象、语法和语义的信息。如果您正在编写一个当前以PTX为目标的工具/编译器/库,那么您可以调整您的软件,使其也能以CUDA Tile IR为目标。

视频1. 解析CUDA Tile的核心概念

如何获取CUDA Tile软件

CUDA Tile随CUDA 13.1一同发布。所有信息,包括文档链接、GitHub代码库和示例代码,均可在我们的CUDA Tile页面上找到。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 12:59:03

为什么“容器化“技术很重要?——从虚拟机到 Docker

📦 为什么"容器化"技术很重要?——从虚拟机到 Docker 🚀大家好,我是无限大,欢迎收看十万个为什么系列文章 希望今天的内容能对大家有所帮助今天咱们来聊聊容器化这个"软件界的集装箱革命"&#xf…

作者头像 李华
网站建设 2026/5/11 15:14:48

微软开源Agent开发教程(37k start )

读者收益:这个全面的学习路径将引导你探索AI智能体的精彩世界,从基础概念到生产级实现。无论你是希望为应用程序增加智能体功能的开发者,还是想了解这项变革性技术的科技爱好者,本课程为你提供了入门所需的一切。 概述(什么是智能…

作者头像 李华
网站建设 2026/5/3 3:40:27

别再被 RAG 绕晕了!3 分钟搞懂大模型“检索-增强-生成”逻辑!

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型的人工智能技术。 该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型&#xf…

作者头像 李华