news 2026/6/17 11:29:51

深入解析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/6/15 19:03:11

基于spring boot的民宿预约管理系统的设计与实现

三、系统分析 进行民宿预约管理系统的开发,首先需要进行系统需求分析。对用户需求进行调研,接着设计系统的体系构造和数据库表构造,确定使用的开发工具和后台数据库。 系统分析的重点是对用户和系统的需求进行相关分析,包括对系统…

作者头像 李华
网站建设 2026/5/30 23:06:55

python基于Vue的四川火锅餐饮地方美食文化点评网站的设计与实现_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的四川火锅餐饮地方美食…

作者头像 李华
网站建设 2026/6/15 7:32:57

python基于Vue的实验室安全考试系统设计与实现_x7h05_django Flask pycharm项目

目录 已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的实验室安全考试系统…

作者头像 李华
网站建设 2026/6/13 22:27:25

接口自动化测试怎么做?

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快一、前言接口通俗来讲就是前端和后段之间传输数据的桥梁,注意:不是每一个项目都有接口,一些大型项目是前后端分离的,…

作者头像 李华
网站建设 2026/6/10 13:27:42

为什么一定要做Agent?大模型时代的必然选择(建议收藏)

作者通过深入分析、理解、归纳,最后解答了“为什么一定要做Agent”这个问题。 我们团队近一年多的时间一直在服务领域持续构建、深耕Agent能力,在这方面我本人也投入了大量的精力。不过呢,在进行Agent能力落地、推广的过程中,我经…

作者头像 李华