数据科学

NVIDIA CUDA 13.1 引入 NVIDIA CUDA Tile 等新功能,为下一代 GPU 编程提供更强动力

NVIDIA CUDA 13.1 是自 CUDA 二十年前发明以来,规模最大、内容最全面的一次更新。

最新的版本包含一系列新功能与改进,旨在提升性能并推动加速计算,主要包括:

  • 推出 NVIDIA CUDA Tile:它是基于 tile 的全新编程模型,对包括 Tensor Cores 在内的专用硬件做了抽象
  • 暴露了绿色上下文运行时的 API
  • 在 NVIDIA cuBLAS 中实现双精度与单精度仿真功能
  • 全新编写的 CUDA 编程指南,面向 CUDA 初学者到资深开发者

CUDA Tile 编程

为了帮助开发者开发适配当前及未来的 GPU 开发软件,NVIDIA CUDA 13.1 推出了 CUDA Tile。该编程模型允许开发者在 SIMT 编程模型之上更高层级编写 GPU 内核。在 SIMT 编程中,开发者实现一个内核需要手动划分数据,并为每个线程指定执行路径。而在 CUDA Tile 编程中,你可以用更高的抽象层级实现内核,直接对称为“Tile”的数据块指定执行路径:只需指定要在这些 Tile 上执行的数学运算,编译器和运行时会自动决定如何将任务最优地分配给各个线程。这种 Tile 编程模型隐藏了 Tensor Cores 等专用硬件的具体细节,使 Tile 代码能够兼容未来的 GPU 架构。

CUDA 13.1 发布了 Tile 编程的两大组件

  • CUDA Tile IR:用于 NVIDIA GPU 编程的全新虚拟指令集架构(ISA)。
  • cuTile Python:全新领域特定的编程语言(DSL),用于在 Python 中编写基于数组和 Tile 的内核。

如需了解更多关于 CUDA Tile IR 与 cuTile Python 的信息,请查看相关详细介绍。

CUDA 软件更新

本次 CUDA 版本还包括以下重要软件更新。

运行时暴露绿色上下文

CUDA 中的绿色上下文是传统 CUDA 上下文的一种轻量级替代方案,旨在为开发者提供一种对 GPU 进行更细颗粒度的空间划分和资源分配的机制。自 CUDA 12.4 起,该功能可在驱动 API 中使用;而从本版本开始,绿色上下文也正式支持运行时 API。

绿色上下文使用户可以定义并管理 GPU 资源(主要是 Streaming Multiprocessors,SMs)的不同分区,并将特定的 SM 集合分配给某个上下文。随后,在该绿色上下文该所拥有的资源范围内启动中 CUDA 内核并管理 CUDA 流。一个典型应用场景是:当应用程序包含对延迟敏感的代码,且其优先级高于所有其他 GPU 任务时,可以将一部分 SM 资源分配给一个专用于此代码的绿色上下文,其余 SM 分配给处理其他任务的另一个绿色上下文,即可确保关键计算始终拥有可用的 SM 资源。

CUDA 13.1 还引入了可定制程度更高的 split() API。开发者可以构建此前需要多次 API 调用才能完成的 SM 分区,并能够配置工作队列,以减少在不同绿色上下文中提交任务时可能产生的伪依赖。

有关这些功能及绿色上下文运行时的更多信息,请参阅 CUDA Programming Guide

CUDA 多进程服务(MPS)更新

CUDA 13.1 为多进程服务新增了多项功能特性。有关这些新功能的完整信息,请参阅 MPS 文档。其中的重点内容包括:内存局部性优化分区、静态流多处理器分区、cuBLAS 中的双精度与单精度仿真。

开发者工具

开发者工具是 CUDA 平台至关重要的一环,本次发布带来了多项创新与功能优化。

CUDA Tile 内核性能分析工具

NVIDIA Nsight Compute 2025.4 现可对 CUDA Tile 内核进行性能分析。相关更新包括:在摘要页面新增“结果类型”列,用于区分内核属于 Tile 还是 SIMT 类型;详情页面新增“Tile 统计信息”区域,汇总 Tile 维度及关键流程的利用率情况;源页面也支持将性能指标映射到高级别的 cuTile 内核源代码。此外,本次 Nsight Compute 版本还新增了两项功能:支持对设备端启动的 CUDA 图节点进行性能分析;同时改进了源页面导航,现在无论是编译器生成的标签还是用户自定义的标签,都支持以可点击链接的形式快速跳转。

编译时修补

NVIDIA Compute Sanitizer 2025.4 现可通过编译器标志 -fdevice-sanitize=memcheck 对 NVIDIA CUDA 编译器进行编译时修补。此功能增强了内存错误检测能力并提升了 Compute Sanitizer 的运行性能。编译时插桩可将错误检测直接集成到 NVCC 中,这样不仅运行速度更快,还能通过先进的基址-边界分析捕捉到更隐蔽的如相邻分配非法访问的内存问题。这意味着开发者可以在不牺牲调试速度的前提下,排查内存问题,运行更多测试,从而保持开发效率。目前,该功能仅支持 memcheck。有关编译时插桩的完整信息,请参阅 compute-sanitizer 文档

NVIDIA Nsight Systems

NVIDIA Nsight Systems 2025.6.1 与 CUDA Toolkit 13.1 同步发布,新增多项追踪功能,主要包括:

  • 系统级 CUDA 追踪:新增 –cuda-trace-scope 参数,支持跨进程树或整个系统进行追踪。
  • CUDA 主机函数追踪:支持追踪 CUDA Graph 主机函数节点及 cudaLaunchHostFunc();该函数在主机端执行,并会阻塞所在流。
  • CUDA 硬件追踪:在支持的平台上,默认启用基于硬件的追踪;如需切回软件模式,可使用 –trace=cuda-sw 参数。
  • 绿色上下文时间轴:现在其提示信息会显示 SM 分配情况,帮助用户了解 GPU 资源利用率。

数学函数库

本次核心 CUDA 工具包的数学函数库引入了多项新功能,主要包括:NVIDIA cuBLAS、NVIDIA cuSPARSE、NVIDIA cuFFT。

NVIDIA CUDA 核心计算库

NVIDIA CUDA 核心计算库(CCCL)为 CUB 库带来了多项创新与增强:

确定性浮点数缩减:作为 CUDA 13.1 一部分, NVIDIA CCCL 3.1 提供了两种额外的浮点确定性选项,以便在确定性和性能之间进行权衡:

  • Not-guaranteed:使用原子操作进行单轮归约。此选项不保证为多次运行提供位级相同的结果。
  • GPU-to-GPU基于 Kate Clark 在 NVIDIA GTC 2024 演讲中提出的可复现归约算法。其结果始终是位级相同的。

更便捷的单阶段 CUB APICCCL 3.1 为部分 CUB 算法新增了重载函数,它们可以直接接受内存资源参数,从而省去查询、分配、释放临时存储的步骤。

了解更多

CUDA 13.1 带来了众多新功能,并开启了以 CUDA Tile 为核心的GPU 编程新时代,了解更多关于 CUDA 13.1 的更新

欢迎探索 CUDA Tile 相关资源,下载 CUDA Toolkit 13.1,立即开始体验。

标签