NVIDIA每次发布CUDA Toolkit都会带来功能更新和性能提升,帮助开发者更充分地利用NVIDIA GPU及更广泛的NVIDIA软件平台。
CUDA Toolkit 13.4新增了对Arm版Windows的支持。此前,CUDA应用长期通过Linux系统支持Arm平台;本次更新将这一能力扩展到了Arm版Windows平台。
此次发布还引入了对NVIDIA Rubin GPU架构的早期开发者支持、增强的GPU管理能力、扩展的CUDA Python和CCCL功能,以及NVIDIA Nsight开发者工具和核心数学库的更新。
CUDA 13.4增强功能
本节详细介绍CUDA 13.4的其他增强功能。
预览版:开发者可访问NVIDIA Rubin
CUDA Toolkit 13.4以预览形式新增了对NVIDIA Rubin架构(计算能力107)的功能支持,使开发者能够在CUDA Toolkit未来版本正式支持Rubin之前,提前开始移植应用程序。Rubin是驱动智能体AI时代的下一代GPU架构。
多进程服务V3
多进程服务器(MPS)V3为CUDA MPS引入了现代化的控制层,简化了共享GPU资源的自动化和管理。此更新为开发者和编排层提供了可脚本化的命令行界面、命名服务器实例以及用于组织并发工作负载的命名空间。同时新增了TOML配置支持、流式多处理器(SM)分区控制以及cgroup集成的GPU内存限制。这些能力实现了精确的GPU分区,能够以编程方式定义计算性能、内存边界和执行优先级。此版本确保MPS能够集成到容器化环境中,在最大化硬件利用率的同时,为每个进程保持严格的资源隔离。
CUDA计算结构传输
CUDA计算结构传输(CFT)为高级应用和通信库提供了一种以传输为中心的方式,可大规模跨NVIDIA NVLink结构移动数据。软件无需将每个远程GPU分配映射到进程的虚拟地址空间,而是可以使用端点ID和偏移量定位命名的逻辑端点,然后直接从GPU发出异步的put、get和归约操作。
这种方法降低了大型多GPU系统中的虚拟地址压力,支持单播和多播通信模式,并报告完成和错误状态,使应用程序能够检测、重试或重新路由失败的结构传输。
CFT仅通过CUDA驱动API提供,主要面向需要更高级通信库无法提供的特定功能的通信库开发者。大多数应用开发者最好使用NVIDIA NCCL或NVSHMEM等库。
局部性域
CUDA 13.4开放了对局部性域的编程访问。局部性域是GPU中包含流式多处理器(SM)和设备内存的一部分。应用程序可以在局部性域中分配设备内存,并在同一局部性域中创建具有SM资源的绿色上下文。在具有多个局部性域的设备上,将计算与其访问的内存共置可以提升性能。
查询统一内存的位置
针对统一内存驻留信息的API支持,为性能敏感型库和运行时提供了一种直接方式,用于了解托管数据或系统分配数据当前所在的位置。统一内存简化了异构编程,但高性能软件仍需要局部性感知能力,以避免不必要的页面迁移、远程内存访问或低效的暂存路径。通过驻留查询,CUDA应用程序和库能够更智能地决定何时何地调度计算和数据移动。
CUDA驱动与CUDA工具包解耦
CUDA SDK安装程序不再捆绑NVIDIA驱动程序。请使用您偏好的包管理器单独安装适当的nvidia-open驱动或cuda-toolkit软件包。
一致性平台默认采用基于驱动的一致性内存管理
在NVIDIA Grace Hopper、NVIDIA Grace Blackwell和NVIDIA Vera Rubin等一致性平台上,驱动程序现在默认使用基于驱动的一致性内存管理(CDMM)而非NUMA。NUMA模式仍完全受支持,可通过内核模块参数选择。如果计划使用该模式,请在升级前进行更改。这是一个节点级设置,需要重新加载驱动或重启才能生效,应在升级前做出选择。
编译器/NVCC
主机编译器兼容性现已包括受支持主机平台上的GCC 16和Clang 22。新的SM_107架构目标支持针对Rubin GPU的编译。
CUDA Python
CUDA Python扩展了对核心CUDA API和高性能算法的Python化访问,并在开发工具、内存管理、图工作流和应用可移植性方面进行了更新。
cuda.core
在CUDA Python 1.0发布之后,cuda.core 1.1.0进一步扩展了稳定的Python化CUDA API,新增了纹理和表面编程、更丰富的托管内存控制、改进的CUDA图集成,以及供开发工具和智能体使用的完整类型信息。
纹理和表面编程
新的cuda.core.texture模块为CUDA纹理和表面内存提供了一流的Python API。OpaqueArray和MipmappedArray表示硬件布局的GPU分配,TextureObject支持无绑定、硬件过滤的内核读取,SurfaceObject支持带类型的内核端加载和存储操作。
NUMA感知的托管内存
ManagedMemoryResource.allocate()现在返回带有基于属性接口的ManagedBuffer,用于CUDA内存建议。应用程序可以配置只读数据、首选放置位置和处理器访问权限。
新的Host类型在指定内存位置时对Device起补充作用,可以表示任意主机内存、特定的NUMA节点,或与调用线程相关联的NUMA节点。
改进的开发和图工作流
cuda.core 1.1为每个公共API提供了.pyi类型存根,使IDE具备自动补全能力,并让编码智能体能够访问类型信息、函数签名、返回类型等。
在众多CUDA图工作流改进中,GraphBuilder.graph_definition将捕获的图公开为GraphDefinition。开发者可借此将流捕获与显式图构建相结合,包括检查或扩展已捕获的图。
其他新增功能包括特定设备的NVLink枚举、扩展的绿色上下文工作队列配置、Program和ObjectCode的类路径输入,以及公共的Buffer.size属性。此版本还加强了IPC验证、自由线程Python的正确性,以及CUDA进程检查点恢复功能。
cuda.compute
cuda.compute提供了对NVIDIA CUDA核心计算库(CCCL)高性能、可定制GPU算法的Python化访问,包括排序、扫描、归约、变换等。
cuda.compute 1.1支持对多个GPU架构的算法对象进行提前编译(AoT),甚至可以在没有GPU的构建系统上完成。ProxyArray和ProxyValue在不分配设备内存的情况下描述参数类型,而serialize()则创建可存储和部署的构件。在目标系统上,deserialize()无需重新编译即可恢复算法,并加载与当前GPU架构匹配的构建版本。
CCCL
CUDA 13.4搭载了CCCL 3.4,具备NVIDIA Blackwell GPU上更快的cub::DeviceScan、CUB设备级算法的单次调用API、批量warp归约,以及cuda::std中熟悉的C++标准库并行算法。
NVIDIA Blackwell GPU上更快的设备级扫描
Blackwell架构现已提供针对cub::DeviceScan的新型warp专用实现。该实现利用张量内存加速器(TMA)来重叠内存移动与计算,同时降低同步开销。
在NVIDIA Blackwell GPU上的基准测试结果显示,新的cub::DeviceScan::Sum实现在测试的数据类型中,内存带宽利用率最高可达92%(此前实现约为50%)。该实现针对大规模扫描工作负载进行了优化,同时为不支持的架构、数据类型、迭代器和工具链保留了回退方案。
CUB设备级算法的单次调用API
CCCL 3.4完成了在CUB设备级算法中推出基于执行环境的单次调用重载的工作。此前,应用程序通常需要先调用一次CUB算法以确定其临时存储需求,分配该存储后,再次调用算法执行操作。新的重载从通过执行环境提供的内存资源中获取临时存储。
这减少了样板代码,同时集中控制了算法如何执行以及如何获取临时存储。传统的两阶段API并未被弃用,仍可供需要显式存储管理的应用程序使用。
warp内的批量归约
新引入的CUB warp级集合操作cub::WarpReduceBatched,用于归约分布在一个warp中的多个独立值批次。它将这些批次一起处理,最大限度减少shuffle操作,并提高每个warp执行的有效工作量。
GPU上的并行C++标准库算法
CUDA 13.4在cuda::std中引入了C++标准库并行算法模型。开发者可以使用cuda::execution::gpu执行策略调用数十种熟悉的算法,包括copy_if、find_if、merge、reduce和transform、scan等操作。
这些算法作用于设备可访问的范围,底层使用CCCL和CUB实现。这为CUDA C++开发者提供了标准、易识别的GPU执行接口,同时通过可定制的执行策略保留了对流和内存资源等CUDA特定功能的访问。
CUDA Tile IR迎来程序化依赖启动
对CUDA Tile IR的程序化依赖启动(PDL)支持实现了同一CUDA流上内核间的重叠执行,使依赖内核能够在其前驱内核完成之前开始执行。
CUDA Tile C++中的新视图
CUDA Tile C++引入了用于加载和存储数据的额外视图。
跨步视图创建静态大小的数据块,块之间的间距由编译时的跨步因子决定,便于实现模板类操作中常见的数据访问模式。
聚集散射视图支持访问数组中不相邻的数据块,便于处理具有稀疏访问模式的数据。
开发者工具
以下是若干开发者工具增强功能。
Nsight Python
Nsight Python 1.0是一个Python内核性能分析接口,利用NVIDIA Nsight工具自动化跨多种内核配置的性能分析。装饰器和上下文管理器使内核基准测试、架构指标收集、防止GPU限流以及性能可视化能够在一个脚本中完成,无需样板代码,无需手动解析报告。Nsight Python以极小的代码开销提供可扩展的架构指标,而不仅仅是墙钟时间。
NVIDIA Nsight Compute
Nsight Compute 2026.3为CUDA Tile工作负载新增了Tile IR支持,使开发者能够在源代码页面检查Tile IR,并将其与CUDA Tile源代码及生成代码相关联。此版本还改进了OptiX工作负载的寄存器溢出信息,并增强了Nsight Copilot功能。
NVIDIA Nsight Systems
Nsight Systems 2026.5.1扩展了跨CUDA、CPU、AI框架、网络和存储的平台覆盖范围与工作负载可见性。此Web版本新增了对CUDA 13.4、Rubin GPU和Arm版Windows的支持,还将NVTX范围投射到"所有流"层级中,对cuTile名称进行反混淆处理,并在时间线上显示通过CiG流提交的CUDA工作负载。
CPU指标集将相关硬件计数器分组,实现单次采集,帮助开发者通过自顶向下指标集逐步定位瓶颈。针对PyTorch工作负载,新的--pytorch=functions-trace-shapes选项为跟踪函数添加张量形状和训练参数等信息。开发者可以在形状跟踪提供的额外细节与现有函数跟踪选项的更低开销之间进行选择。
网络、存储与集群性能分析
网络性能分析新增了通过NVIDIA DOCA遥测服务采集高频网卡指标的能力,使开发者能够在无需提升权限的情况下,将流量、拥塞通知和发送等待与应用活动相关联。新的NCCL落后者分析方案能够分析集合通信时序,识别反复延迟通信器进度的计算节点。
存储性能分析现已包括S3访问汇总分析方案,可汇总跨进程和主机的访问模式与I/O统计信息,帮助识别热点存储桶和对象、频繁的小规模传输以及工作负载不均衡问题。NVIDIA SCADA指标性能分析将来自SCaled Accelerated Data Access存储架构的计数器和直方图纳入时间线,开发者可以借此将存储服务器活动与GPU和CPU事件相关联。
针对多节点和集群性能分析,实验性的vClock插件在无法使用PTP等高精度同步方式时,无需更改系统时钟或需要提升权限,即可改善报告对齐效果。
二进制负载与插件开发
NVTX二进制负载现可导出为动态关系表,负载字段以列的形式表示,便于在SQLite、Arrow以及Arrow/Parquet格式中进行下游分析。Nsight Systems插件框架还新增了初始化阶段、进程退出回调API,以及在子进程中加载插件库的能力。开发者可以在应用程序启动前初始化数据采集,捕获关闭期间产生的数据,并将性能分析覆盖范围扩展到子进程。
NVIDIA Nsight Cloud
Nsight Cloud使在远程无头系统上查看和分析性能分析报告变得更加容易。Nsight Operator在分析、OpenTelemetry和NVIDIA Dynamo方面进行了改进,并配备了全新的文档站点。
NVIDIA Nsight AI
Nsight AI将专业化的AI辅助能力引入加速计算开发工作流。NVIDIA托管的CUDA MCP服务器将受支持的AI编码智能体连接到最新的CUDA文档和代码示例,而开源的Nsight Copilot蓝图则为希望在自有环境中部署和运行的团队提供了自托管的CUDA AI后端。
NVIDIA Compute Sanitizer
Compute Sanitizer在Hopper及更新架构上改进了共享内存越界检测能力,并支持编译时修补。Initcheck现已支持批量异步内存拷贝,racecheck支持按集群块过滤。
NVIDIA核心数学库
CUDA Toolkit 13.4中的核心数学库现已具备对Rubin GPU架构的功能支持,并为N1X笔记本电脑生态系统提供了Arm版Windows支持。
13.4版本中cuBLAS的更新包括以下特性:
cuBLAS通过使用Ozaki-II方案的定点仿真提升了双精度性能。
在Blackwell数据中心GPU上,cuBLASLt动态地在流式多处理器(SM)间调度分组GEMM计算,以最大限度减少常见MoE工作负载中的负载不均衡问题。与早期工具包版本相比,这种方法提升了具有大量分组(例如32个)的分组GEMM调用的性能,也能在分组GEMM操作与其他设备内核并发运行时提升性能。
cuBLASLt新增了实验性缩放模式CUBLASLT_MATMUL_MATRIX_SCALE_VEC32_MN_K4_UE8M0和CUBLASLT_MATMUL_MATRIX_SCALE_VEC128_MN_K4_UE8M0,采用支持A和B FP8精度张量的替代缩放因子布局。这些模式以4为一组打包缩放因子,并以M维或N维为主存储。当主维不能被4整除时会添加填充。
开始使用CUDA Toolkit 13.4
CUDA Toolkit 13.4通过新增Arm版Windows支持、NVIDIA Rubin GPU架构预览支持、更新的GPU资源管理与通信能力,以及CUDA Python、CCCL、NVIDIA Nsight开发者工具和核心数学库方面的增强功能,进一步扩展了CUDA开发能力。
开发者可下载CUDA Toolkit 13.4,并查阅CUDA Toolkit 13.4发布说明,了解完整的功能列表、支持平台和兼容性信息。
Q&A
Q1:CUDA Toolkit 13.4有哪些主要新特性?
A:主要新增了对Arm版Windows的支持、NVIDIA Rubin GPU架构的预览支持、多进程服务V3、CUDA计算结构传输、局部性域访问,以及CUDA Python、CCCL和Nsight开发者工具的多项增强。
Q2:CUDA Toolkit 13.4是否支持NVIDIA Rubin架构?
A:是的,CUDA Toolkit 13.4以预览形式提供了对NVIDIA Rubin架构(计算能力107)的功能支持,使开发者能够提前开始移植应用程序,Rubin正式支持将在未来版本中实现全面可用。
Q3:多进程服务V3(MPS V3)能带来什么改进?
A:MPS V3引入了现代化控制层,提供可脚本化命令行界面、命名服务器实例和命名空间,新增TOML配置支持、SM分区控制及cgroup集成的GPU内存限制,实现更精确的GPU资源分区与隔离管理。
