当前位置:首页 > 科技资讯 > 正文

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元

几个小时前,NVIDIA CUDA Toolkit 13.1正式发布。英伟达官方宣称:「这是20年来规模最大的一次更新。」

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元 Tile Green Context CUDA编程 性能提升 第1张

这个自2006年CUDA平台诞生以来规模最大、最全面的更新包括:

NVIDIA CUDA Tile的发布。这是英伟达基于tile的编程模型,可用于抽象化专用硬件,包括张量核心。

Runtime API暴露Green Context(指轻量级的、可并发调度的上下文或执行环境)。

NVIDIA cuBLAS中的双精度和单精度仿真。

一本完全重写的CUDA编程指南,专为CUDA新手和高级程序员设计。

接下来,我们将详细探讨这些更新。

CUDA Tile

CUDA Tile是NVIDIA CUDA Toolkit 13.1的核心更新。它是一种基于tile的编程模型,能够更高层次地编写算法,并抽象化专用硬件(如张量核心)的细节。

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元 Tile Green Context CUDA编程 性能提升 第2张

英伟达博客解释说:CUDA Tile可让开发者在高于SIMT(单指令多线程)的层级编写GPU核函数。

在目前的SIMT编程中,开发者通常通过划分数据并定义每个线程的执行路径来指定核函数。

借助CUDA Tile,开发者可以提升代码的抽象层级,直接指定被称为「Tile」的数据块。只需指定要在这些Tile上执行的数学运算,编译器和运行时环境会自动决定将工作负载分发到各个线程的最佳方式。

这种Tile模型屏蔽了调用Tensor Core等专用硬件的底层细节,并且Tile代码将能够兼容未来的GPU架构。

CUDA 13.1包含两个用于Tile编程的组件:

CUDA Tile IR:一种用于NVIDIA GPU编程的全新虚拟指令集架构(ISA)。

cuTile Python:一种新的领域特定语言(DSL),用于在Python中编写基于数组和Tile的核函数。

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元 Tile Green Context CUDA编程 性能提升 第3张

CUDA软件更新

以下是本次CUDA版本更新中包含的其他重要软件改进:

运行时对Green Context的支持

CUDA中的Green Context是一种轻量级的上下文形式,可作为传统CUDA上下文的替代方案,为开发者提供更细粒度的GPU空间划分与资源分配能力。

CUDA 13.1还引入了更加可定制的split() API。开发者可以通过这一接口构建此前需要多次API调用才能完成的SM分区,并且可以配置工作队列,从而减少不同Green Context之间提交任务时产生的伪依赖(false dependencies)。

CUDA多进程服务(MPS)更新

内存局部性优化分区(MLOPart)

静态流式多处理器(SM)分区

cuBLAS中的双精度和单精度模拟

开发者工具

编译时修补

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元 Tile Green Context CUDA编程 性能提升 第4张

数学库

NVIDIA cuBLAS

NVIDIA cuSPARSE

NVIDIA cuFFT

NVIDIA CUDA Toolkit 13.1:20年来最大更新,CUDA Tile引领GPU编程新纪元 Tile Green Context CUDA编程 性能提升 第5张