英伟达CUDA史上最大更新:性能评测与对比
先谈开发者最关注的工具链更新——Nsight Systems。本次CUDA Toolkit 13.1同步推出的Nsight Systems 2025.6.1,在追踪能力上进行了几项务实增强。系统级CUDA追踪方面,启用cuda-trace-scope参数后,可追踪跨进程乃至整个系统的行为,大幅拓宽调试视野。主机函数追踪也补充完备,现在cudaGraph中的主机函数节点与cudaLaunchHostFunc()均能被追踪——这些函数在主机侧执行并阻塞stream,对其追踪是理解异步流程的关键。CUDA硬件追踪在支持环境下已设为默认模式,如需切回软件模式,添加--trace=cuda-sw即可。此外,Green Context时间轴行现在会在tooltip中展示SM分配情况,GPU资源是否饱和一目了然。
数学库
CUDA工具箱中的几个核心数学库,此次同样迎来更新。
cuBLAS引入一个实验性新API,专为Blackwell GPU的分组GEMM操作设计,支持FP8与BF16/FP16数据类型。更关键的是,针对这些数据类型,分组GEMM可在CUDA Graph中实现无需主机同步的计算,借助设备端形状进行动态调度,在MoE推理等场景下,相比传统的多流GEMM提速最高达4倍。
cuSPARSE推出名为SpMVOp的新型稀疏矩阵向量乘法API。相比原有的CsrMV API,其性能明显领先。该API支持CSR格式、32位索引、双精度,并允许用户自定义后缀操作。
cuFFT提供了一套全新的设备端API——cuFFD设备API。本质上这是一组C++头文件中的主机函数,可用于查询或生成设备功能代码及相关数据库元数据。这套API专为cuFFTDx库设计,使开发者能通过cuFFT直接生成cuFFTDx代码块并链接至应用,从而提升性能。
cuBLAS Blackwell 性能
谈及Blackwell架构,CUDA 12.9便已引入块缩放的FP4与FP8矩阵乘法。到CUDA 13.1,这些数据类型与BF16的性能支持已全面铺开。图2展示Blackwell与Hopper平台上的实测加速比,数据直观清晰。
NVIDIA Blackwell 与 Hopper 平台上的加速比对比
cuSOLVER Blackwell 性能
cuSOLVER在CUDA 13.1中继续优化批处理特征分解API,主要涉及SYEVD与GEEV,性能提升显著。
批处理SYEV(全称cusolverDnXsyevBatched)专用于并行求解大量小矩阵。图3测试在批大小5000、矩阵行数24至256条件下进行。与NVIDIA L40S相比,Blackwell RTX Pro 6000 Server Edition速度提升约一倍,该加速比基本与内存带宽增幅一致。
批大小为5000(矩阵行数24–256)的测试结果
具体数据:复数单精度与实数单精度下,矩阵行数N=5时加速比约为1.5倍,随行数增加持续上升,至N=250时稳定达到2.0倍。
再看cusolverDnXgeev(GEEV),该函数处理非对称稠密矩阵的特征值与特征向量。它采用CPU/GPU混合算法:CPU单线程负责QR算法中早期降阶等高效处理,GPU处理剩余重任务。图4展示矩阵大小从1024到32768的相对加速比。
cusolverDnXgeev(GEEV) 的性能加速比
数据务实:矩阵行数n=5000时加速比恰好1.0,随规模扩大逐渐攀升,至n=30000时达到约1.7倍。
NVIDIA CUDA 核心计算库
CCCL此次为CUB带来两个非常实用的更新。
确定性浮点运算简化
浮点数加法不满足结合律,会导致什么后果?历史上cub::DeviceReduce为保证同一GPU每次运行结果逐位一致,被迫采用两遍算法。CUDA 13.1搭载的CCCL 3.1现在提供三个选项,让开发者自主权衡确定性与性能:
- 不保证:使用原子操作进行单次归约,结果不会逐位一致。
- GPU间:基于NVIDIA GTC 2024大会Kate Clark的演讲成果,保证结果逐位一致。
通过一个标志位即可切换这些模式,代码编写非常直接。
示例代码
数据对比
更便捷的单相 CUB API
另一痛点也得到解决。几乎所有CUB算法都需要临时存储空间,过去开发者必须走两阶段模式:先查询临时存储大小,再分配空间,最后释放。这套流程复杂且易出错——两次调用间参数稍有偏差就会出问题。CCCL 3.1为接受内存资源的CUB算法增加了新重载,将临时存储的查询、分配、释放合并为一步,实现真正的“一次搞定”。
示例代码





