0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA CUDA Tile的创新之处、工作原理以及使用方法

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 2025-12-24 10:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

NVIDIA CUDA 13.1 推出 NVIDIA CUDA Tile,这是自 2006 年 NVIDIA CUDA 平台发明以来,最大的一次技术进步。这一令人振奋的创新引入了一套面向 Tile-based 并行编程的虚拟指令集,使开发者能够在更高层级编写算法,而无需关心底层专用硬件(如 Tensor Cores)的复杂细节。

本文将介绍 CUDA Tile 的创新之处、工作原理以及使用方法。

为什么在 GPU 上需要 Tile 编程?

CUDA 为开发者提供了一种单指令多线程(SIMT)的硬件与编程模型。这既要求也允许开发者对代码执行方式进行非常细致的控制,从而实现最大化的灵活性。然而,要让代码在各种不同的 GPU 架构上都表现良好,往往需要投入大量的调优工作。

NVIDIA CUDA-X、NVIDIA CUTLASS 等库为开发者提供了性能优化工具,而 CUDA Tile 则进一步提供了一种比传统 SIMT 更高层次的 GPU 编程方式。

随着计算任务的发展,尤其是 AI 领域中,Tensors 已经成为基础的数据类型。NVIDIA 也开发了面向 Tensors 运算的专用硬件,例如 NVIDIA Tensor Cores(TC)和 NVIDIA Tensor Memory Accelerators(TMA),并已成为所有新 GPU 架构的核心组件。

但硬件越复杂,软件就越需要承担抽象与封装的职责。CUDA Tile 对 Tensor Cores 及其编程模式进行了抽象,让使用 CUDA Tile 的代码天然兼容当前与未来的 Tensor Core 架构。

Tile-based 编程的方式是:你只需指定一块块数据,即Tiles,以及这些 Tiles 上要执行的运算即可。你不再需要在元素级别指定算法的执行方式,编译器和运行时(runtime )会自动处理。

图 1 展示了 CUDA Tile 引入的 Tile 模型,与传统 CUDA SIMT 模型之间的概念性差异。

wKgZPGlLTbSABJvfAAJ2j08fvN4638.png

图 1. Tile 模型(左)将数据划分为 Blocks,而编译器将其映射到 Threads。SIMT 模型(右)则将数据映射到 Blocks 和 Threads

这种编程模式在 Python 这样的语言中很常见,用户可以通过 NumPy 这样的库指定矩阵等数据类型,然后用简单的代码指定并执行批量操作。在底层,一切都会按正确的方式运行,而你的计算对你来说始终完全透明。

CUDA Tile IR:Tile 编程的基础

CUDA Tile 的基础是 CUDA Tile IR(中间表示)。CUDA Tile IR 引入了一套虚拟指令集,使得以 Tile Operations 的方式对硬件进行原生编程成为可能。开发者可以编写更高层级的代码,并且在多代 GPU 上仅需做极少的改动即可高效执行。

虽然 NVIDIA Parallel Thread Execution(PTX)为 SIMT 程序提供了可移植性,但 CUDA Tile IR 为 CUDA 平台扩展了对 Tile-based 程序的原生支持。开发者专注于将他们的数据并行程序划分为 Tiles 和 Tile Blocks,并让 CUDA Tile IR 来处理将其映射到诸如 Threads、内存层次结构以及 Tensor Cores 等硬件资源上。

通过提升抽象层级,CUDA Tile IR 使用户能够为 NVIDIA 硬件构建更高层次的、面向硬件的编译器、框架以及领域专用语言(DSLs)。用于 Tile 编程的 CUDA Tile IR 类似于用于 SIMT 编程的 PTX。

需要指出的一点是,这并不是一个非此即彼的选择。GPU 上的 Tile 编程是编写 GPU 代码的另一种方法,但你不必在 SIMT 和 Tile 编程之间做选择,它们是共存的。当你需要 SIMT 时,你依旧像以往一样编写你的 Kernels。当你希望使用 Tensor Cores 来执行运算时,你就编写 Tile Kernels。

图 2 展示了一个关于 CUDA Tile 如何嵌入典型软件栈的高层示意图,以及 Tile 路径如何作为一条独立但互补于现有 SIMT 路径的编译路径。

wKgZPGlLTciABj3XAAH-85-AhJE894.png

图 2. Tile 的编译路径嵌入完整的软件栈之中,并与 SIMT 路径并列存在

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

CUDA Tile IR 位于与绝大多数程序员交互的 Tile 编程的下一层级。除非你正在编写一个编译器或库,否则你大概不需要关心 CUDA Tile IR 软件的细节。

NVIDIA cuTile Python:大多数开发者将通过诸如 NVIDIA cuTile Python 这样的软件与 CUDA Tile 编程进行交互——这是一种由 NVIDIA 提供的 Python 实现,使用 CUDA Tile IR 作为后端。我们有一篇博客解释了如何使用 cuTile-python,并附上了示例代码和文档的链接。

CUDA Tile IR:对于希望构建自己 DSL 编译器或库的开发者而言,CUDA Tile IR 就是你与 CUDA Tile 交互的地方。CUDA Tile IR 文档和规范包含关于 CUDA Tile IR 编程抽象、语法和语义的信息。如果你正在编写一个当前以 PTX 为目标的工具/编译器/库,那么你可以调整你的软件以同时以 CUDA Tile IR 为目标。

如何获取 CUDA Tile 软件

CUDA Tile 随 CUDA 13.1 一同发布。开发者可以通过 CUDA Tile 页面,获取包括文档链接、GitHub 库以及示例代码等信息。

关于作者

Jonathan Bentz 领导 NVIDIA 的 CUDA 技术营销工程团队,其团队专注于创建和提供引人入胜的内容,并与 CUDA 开发者建立联系。Jonathan 拥有爱荷华州立大学化学博士学位和计算机科学硕士学位。

Tony Scudiero 是 CUDA 平台的技术营销工程师。他致力于将 CUDA 带给各种类型和能力的开发者。在 NVIDIA 任职期间,他曾使用过大型 HPC 系统和应用、实时声学模拟 (VRWorks Audio) 和 Omniverse RTX 渲染器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5731

    浏览量

    110318
  • 硬件
    +关注

    关注

    13

    文章

    3681

    浏览量

    69252
  • 编程
    +关注

    关注

    90

    文章

    3729

    浏览量

    97536

原文标题:专注于你的算法 – 让 NVIDIA CUDA Tile 来处理硬件细节

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TTL电路分析、工作原理使用方法

    今天给大家分享的是: TTL电路的分析 、TTL电路 工作原理 、TTL电路 使用方法
    发表于 05-18 09:06 7789次阅读
    TTL电路分析、<b class='flag-5'>工作原理</b>、<b class='flag-5'>使用方法</b>

    如何在NVIDIA CUDA Tile中编写高性能矩阵乘法

    本博文是系列课程的一部分,旨在帮助开发者学习 NVIDIA CUDA Tile 编程,掌握构建高性能 GPU 内核的方法,并以矩阵乘法作为核心示例。
    的头像 发表于 01-22 16:43 5466次阅读
    如何在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> <b class='flag-5'>Tile</b>中编写高性能矩阵乘法

    IGBT模块工作原理以及检测方法

    IGBT模块工作原理以及检测方法,希望会对大家有所帮助
    发表于 08-09 18:30

    频谱分析仪的工作原理使用方法

    频谱分析仪的工作原理使用方法
    发表于 07-16 22:04

    NVIDIA Grid SERIES K2卡兼容CUDA

    你好我有一个裸机Windows 2002 RC 2 x64bit服务器,带有物理NVIDIA Grid SERIES K2卡(不是vGPU vGRID)。这张卡与CUDA兼容吗?我使用的软件没有将其
    发表于 09-10 17:18

    Grid K2 cuda下载位置是?

    我们有一个使用Grid K2机器的系统。我试图在一个vm的侧面设置cuda。当我使用驱动程序下载页面时,它指向NVIDIA-Linux-x86_64-367.57版本的驱动程序似乎工作(它们安装
    发表于 10-10 17:02

    NVIDIA CUDA 计算统一设备架构

    NVIDIA CUDA参考文件
    发表于 03-05 08:00

    数码管的工作原理使用方法

    的易用性与易学性,特别是当自己第一次动手编程点亮一个发光管时,相信对于初学者来说,一定很兴奋,很有成就感吧!现在我们就趁热打铁,再向上跨一步,一起来学习一下数码管的工作原理使用方法,这一期实验将会...
    发表于 11-24 06:32

    SRAM的工作原理及其使用方法了解

    一、实验目的:1.了解半导体静态随机读写存储器SRAM的工作原理及其使用方法2.掌握半导体存储器的字、位扩展技术3.用proteus设计、仿真基于AT89C51单片机的RAM扩展实验二、实验内容
    发表于 12-08 06:14

    漏电保护插头工作原理使用方法

    本文主要介绍了漏电保护插头工作原理及漏电保护插头使用方法
    的头像 发表于 12-18 10:51 2.9w次阅读

    胶体蓄电池工作原理_胶体蓄电池使用方法

    本文主要阐述了胶体蓄电池工作原理使用方法
    发表于 01-10 14:00 4101次阅读

    CUDA核心是什么?CUDA核心的工作原理

    CUDA核心(Compute Unified Device Architecture Core)是NVIDIA图形处理器(GPU)上的计算单元,用于执行并行计算任务。每个CUDA核心可以执行单个线程的指令,包括算术运算、逻辑操作
    发表于 09-27 09:38 1.2w次阅读
    <b class='flag-5'>CUDA</b>核心是什么?<b class='flag-5'>CUDA</b>核心的<b class='flag-5'>工作原理</b>

    点焊机的工作原理使用方法

    点焊机是一种常用于金属加工中的设备,它能够将金属零件通过瞬间高温融合在一起。这种焊接方式在汽车制造、电子设备制造、金属加工等领域广泛应用。本文创想焊缝跟踪小编将介绍点焊机的工作原理以及使用方法
    的头像 发表于 03-26 17:50 6422次阅读
    点焊机的<b class='flag-5'>工作原理</b>及<b class='flag-5'>使用方法</b>

    在Python中借助NVIDIA CUDA Tile简化GPU编程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 编程模式。它是自 CUDA 发明以来 GPU 编程最核心的更新之一。借助 GPU
    的头像 发表于 12-13 10:12 1579次阅读
    在Python中借助<b class='flag-5'>NVIDIA</b> <b class='flag-5'>CUDA</b> <b class='flag-5'>Tile</b>简化GPU编程

    借助NVIDIA CUDA Tile IR后端推进OpenAI Triton的GPU编程

    NVIDIA CUDA Tile 是基于 GPU 的编程模型,其设计目标是为 NVIDIA Tensor Cores 提供可移植性,从而释放 GPU 的极限性能。
    的头像 发表于 02-10 10:31 650次阅读