news 2026/7/3 21:36:50

聚焦算法:深入解析NVIDIA CUDA Tile硬件抽象技术

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
聚焦算法:深入解析NVIDIA CUDA Tile硬件抽象技术

随着自2006年NVIDIA CUDA平台发明以来最大的一次进步,CUDA 13.1推出了NVIDIA CUDA Tile。这项激动人心的创新引入了一个用于基于图块的并行编程的虚拟指令集,其核心在于能够以更高的层次编写算法,并抽象掉专用硬件(如张量核心)的细节。

为何为GPU引入图块编程?

CUDA为开发者提供了一个单指令多线程(SIMT)的硬件和编程模型。这要求(并使得)开发者能够以最大的灵活性和特异性,对代码的执行方式进行细粒度控制。然而,这也可能需要投入大量精力来编写性能优良的代码,尤其是在跨越多个GPU架构时。

市面上有许多库可以帮助开发者挖掘性能,例如某中心的CUDA-X和某中心的CUTLASS。CUDA Tile引入了一种在比SIMT更高层次上对GPU进行编程的新方法。

随着计算工作负载(尤其是AI领域)的演进,张量已成为一种基本数据类型。某中心开发了用于处理张量的专用硬件,例如某中心张量核心(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对于图块编程的意义,类似于PTX对于SIMT编程。

需要指出的是,这并非非此即彼的情况。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文档和规范包含了关于CUDA Tile IR编程抽象、语法和语义的信息。如果你正在编写一个当前以PTX为目标的工具/编译器/库,那么你可以调整你的软件,使其也能以CUDA Tile IR为目标。

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

如何获取CUDA Tile软件

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

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

低查重AI教材编写指南!让AI成为你教材创作的得力助手!

编写教材的挑战与AI工具解决方案 在编写教材时,如何精确地满足不同需求确实是一大挑战。不同年龄段的学生在认知能力上差异明显,教材内容的深度和浅显程度都需要把握得当;课堂教学与自主学习的环境需求也各不相同,因此教材的呈现…

作者头像 李华
网站建设 2026/6/26 15:17:00

这片子豆瓣评分连续上涨?观众:还是低了!

董子健第一次当导演,真的让人眼前一亮!他的电影《我的朋友安德烈》上映后,口碑一路看涨。最明显的就是豆瓣评分,从最初的6.7分开始,连续涨了两次,现在已经到了6.9分。要知道,在豆瓣上分数想往上…

作者头像 李华
网站建设 2026/7/1 22:16:31

SQL语句性能优化分析及解决方案

前言 应用系统性能测试过程中,性能优化是绕不开的话题,对测试人员而言,性能优化的第一站就是SQL语句的优化与分析。因此本文主要以MySQL数据库为例,介绍常见的慢查询SQL语句执行效率分析与优化方法和简单示例,为致力于…

作者头像 李华
网站建设 2026/6/18 14:24:51

leetcode 929. Unique Email Addresses 独特的电子邮件地址

Problem: 929. Unique Email Addresses 独特的电子邮件地址 依次检查是否存在,若存在分割字符串,后缀检查长度>4且最后存在.com,前缀去掉和后续,去掉’.,检查前缀长度>0 Code class Solution { public:int num…

作者头像 李华
网站建设 2026/6/26 10:45:57

告别低效繁琐!断层领先的降AI率软件 —— 千笔·专业降AI率智能体

在AI技术深度渗透学术写作的当下,越来越多的学生开始借助AI工具提升论文写作效率。然而,随着知网、维普、万方等查重系统对AI生成内容的识别能力不断升级,以及Turnitin等国际平台对AIGC的严格检测,论文中的AI痕迹和重复率问题愈发…

作者头像 李华