然后使用 memcheck 工具运行你的应用:
NVIDIA Nsight Systems
NVIDIA Nsight Systems 2025.6.1 与 CUDA Toolkit 13.1 同步发布,带来了多项新的追踪功能:
系统级 CUDA 追踪:–cuda-trace-scope 可开启跨进程树或整个系统的追踪。
CUDA 主机函数追踪:增加了对 CUDA Graph 主机函数节点和 cudaLaunchHostFunc () 的追踪支持,这些函数在主机上执行并会阻塞流(stream)。
CUDA 硬件追踪:在支持的情况下,基于硬件的追踪现在成为默认模式;使用 –trace=cuda-sw 可恢复为软件模式。
Green Context 时间轴行现在会在工具提示中显示 SM 分配情况,帮助用户理解 GPU 资源利用率。
数学库
核心 CUDA 工具包数学库的新功能包括:
NVIDIA cuBLAS:一项全新的实验性 API,支持 Blackwell GPU 的分组 GEMM 功能,并兼容 FP8 和 BF16/FP16 数据类型。针对上述数据类型,支持 CUDA 图的分组 GEMM 提供了一种无需主机同步的实现方式,其设备端形状可实现最高 4 倍的加速,优于 MoE 用例中的多流 GEMM 实现。
NVIDIA cuSPARSE:一种新的稀疏矩阵向量乘法 (SpMVOp) API,与 CsrMV API 相比性能有所提升。该 API 支持 CSR 格式、32 位索引、双精度以及用户自定义的后缀。
NVIDIA cuFFT:一套名为 cuFFT 设备 API 的全新 API,提供主机函数,用于在 C++ 头文件中查询或生成设备功能代码和数据库元数据。该 API 专为 cuFFTDx 库设计,可通过查询 cuFFT 来生成 cuFFTDx 代码块,这些代码块可以与 cuFFTDx 应用程序链接,从而提升性能。
针对新的 Blackwell 架构,现已推出性能更新。用户可选择关键 API 进行更新,并查看性能更新详情。
cuBLAS Blackwell 性能
CUDA Toolkit 12.9 在 NVIDIA Blackwell 平台上引入了块缩放的 FP4 和 FP8 矩阵乘法。CUDA 13.1 增加了对这些数据类型和 BF16 的性能支持。图 2 显示了在 NVIDIA Blackwell 和 Hopper 平台上的加速比。

在 NVIDIA Blackwell 和 Hopper 平台上的加速比
cuSOLVER Blackwell 性能
CUDA 13.1 继续优化用于特征分解的批处理 SYEVD 与 GEEV API,并带来了显著的性能增强。
其中,批处理 SYEV(cusolverDnXsyevBatched) 是 cuSOLVER 中 SYEV 例程的统一批处理版本,用于计算对称/Hermitian 矩阵的特征值与特征向量,非常适合对大量小矩阵进行并行求解的场景。
图 3 展示了在批大小为 5,000(矩阵行数 24–256)的测试结果。与 NVIDIA L40S 相比,NVIDIA Blackwell RTX Pro 6000 Server Edition 实现了约 2 倍的加速,这与预期的内存带宽提升相吻合。

在批大小为 5000(矩阵行数 24–256)的测试结果
对于复数单精度和实数单精度两类矩阵,当行数N = 5时,加速比约为1.5×,并随着行数增大逐渐提升,在N = 250 时达到 2.0×。
图 4 显示了 cusolverDnXgeev (GEEV) 的性能加速比,该函数用于计算一般(非对称)稠密矩阵的特征值和特征向量。GEEV 是一种混合 CPU/GPU 算法。单个 CPU 线程负责在 QR 算法中执行高效的早期降阶处理,而 GPU 则处理其余部分。图中显示了矩阵大小从 1,024 到 32,768 的相对性能加速比。

cusolverDnXgeev (GEEV) 的性能加速比
当矩阵行数n = 5000时,加速比约为1.0,并随着矩阵规模增大逐渐提升,在n = 30000 时达到约 1.7。
NVIDIA CUDA 核心计算库
NVIDIA CUDA Core 计算库 (CCCL) 为 CUB 带来了多项创新和增强功能。
确定性浮点运算简化
由于浮点加法不具备结合律,cub::DeviceReduce 历史上只能保证在同一 GPU 上每次运行得到位上完全相同的结果。这被实现为一个两遍算法。
作为 CUDA 13.1 的一部分, NVIDIA CCCL 3.1 提供了两个额外的浮点确定性选项,您可以根据这些选项在确定性和性能之间进行权衡。
不保证:使用原子操作进行单次归约。这不能保证提供位上完全相同的结果。
GPU 间:基于 Kate Clark 在 NVIDIA GTC 2024 大会上演讲中可复现的降维结果。结果始终逐位相同。
可以通过标志位设置确定性选项,如下面的代码所示。

演示代码

数据对比
更便捷的单相 CUB API
几乎所有 CUB 算法都需要临时存储空间作为中间暂存空间。过去,用户必须通过两阶段调用模式来查询和分配必要的临时存储空间,如果两次调用之间传递的参数不一致,这种模式既繁琐又容易出错。
CCCL 3.1 为一些接受内存资源的 CUB 算法添加了新的重载,从而用户可以跳过临时存储查询 / 分配 / 释放模式。

演示代码
CUDA Tile 资源链接:https://developer.nvidia.com/cuda/tile
CUDA Toolkit 13.1 下载地址:https://developer.nvidia.com/cuda-downloads