NVIDIA CUDA-X 数学库助力开发者为 AI、科学计算、数据处理等领域构建加速应用。
CUDA-X 库的两个最重要的应用是训练和推理 LLM,无论是用于日常消费者应用,还是用于药物研发等高度专业化的科学领域。要在 NVIDIA Blackwell 架构上高效训练 LLM 和执行 具有突破性性能的推理任务 ,多个 CUDA-X 库不可或缺。
cuBLAS 是一个 CUDA-X 库,可提供高度优化的内核,用于执行最基本的线性代数任务,例如矩阵乘法 (matmuls) ,这些任务对于 LLM 训练和推理至关重要。
NVIDIA CUDA 工具包 12.9 中新推出的 cuBLAS 支持进一步优化 cuBLAS matmul 性能的新功能。它还通过调整浮点精度和利用模拟的基础模组,实现了更大的灵活性,以平衡准确性和能效等需求。
本文将介绍 cuBLAS 12.9 的具体方法:
- 为 NVIDIA Hopper GPU 推出新的 FP8 扩展方案,提供灵活性和性能。
- 利用适用于 FP4 和 FP8 matmuls 的 NVIDIA Blackwell 第五代 Tensor Cores 提供的块扩展功能。
- 与 Blackwell 和 Hopper GPU 上的 FP8 matmuls 相比,可在各种精度(包括 FP4)下实现高达 2.3 倍和 4.6 倍的加速。
- Blackwell BF16 Tensor Core 支持 FP32 仿真,其运行 matmuls 的速度比 Blackwell 和 Hopper 原生 FP32 matmuls 快 3 到 4 倍,同时提高了能效。
基于 NVIDIA Hopper 的 Channel-and-block-scaled FP8 matmuls
在使用窄数据类型 (例如 FP8) 执行 matmuls 时,扩展是保持训练和推理准确性的基础。之前的 cuBLAS 版本在 NVIDIA Hopper 和 NVIDIA Ada GPU 上支持 FP8 张量范围扩展 (单扩展因子) 。现在,cuBLAS 12.9 为 Hopper GPU 上的几种新扩展方案提供了更大的灵活性。
第一种是通道范围或 外向量缩放 ,支持将单个缩放系数应用于 A[MxK] 的单个矩阵行或 B[KxN] 的列。这可以通过块缩放进一步扩展,块缩放会对 K 维中的每个 128 元素 1D 块或矩阵 A 和 B 的 128 × 128 2D 块应用缩放系数。
使用 1D 块可提高准确性,而 2D 块可提供更好的性能。cuBLAS 支持 A 和 B 的不同缩放模式 (1D x 1D、1D x 2D 和 2D x 1D)。
图 1 显示了各种大小的大型 matmuls 的基准测试。使用各种 FP8 扩展方案可以提供高达 1.75 倍的加速,除一种情况外,在所有其他情况下,FP8 扩展方案提供的加速至少是 BF16 基准的 1.25 倍。

有关使用 示例 ,请参阅 cuBLASLt 库 API 示例。
基于 NVIDIA Blackwell 的块级 FP4 和 FP8 matmuls
NVIDIA Blackwell Tensor Core 原生支持细粒度 1D 块级 FP4 和 FP8 浮点类型 ,可在降低的精度和吞吐量之间实现更高水平的平衡。与使用单一全局缩放系数相比,此方法可更精确地表示每个块内的值,从而提高整体准确性。
cuBLAS 12.9 可以通过以下 cuBLASLt API 使用这些新精度,其中`E` 是定义数字动态范围的指数,`M` 用于表示尾数精度:
- `CUDA_R_4F_E2M1`:具有`CUDA_ R_UE4M3` 比例和 16 个单元块的 matmuls。缩放类型是`CUDA_R_E4M3` 的变体,符号被忽略。查看 API 示例 。
- `CUDA_R_8F` 变体:具有 `CUDA_R_UE8` 比例和 32 个单元块的 matmuls。此处,缩放类型为 8 位无符号指数型浮点数据类型,可视为不带符号和尾数位的 FP32。请参阅 API 示例 。

此外,得益于小块大小和新的缩放模式,cuBLAS matmul 内核可以在输出为 FP4 或 FP8 时计算 D 张量 (图 2 中的 scaleD) 的缩放系数。这消除了在执行转换之前估计缩放系数或额外传递数据的需求,而这对于张量范围的缩放是必不可少的。
请注意,如果 D 是 FP4 张量,则在对所有值进行量化之前,会对其应用二级缩放系数。 有关更多详情,请参阅 cuBLAS 文档中的量化说明 。
NVIDIA Blackwell GPU 上的 cuBLAS 12.9 matmul 性能
借助 cuBLAS 12.9 中提供的新数据类型、运行时启发式算法和内核优化,用户可以充分利用 Blackwell GPU 的出色性能。
图 3 展示了 cuBLAS 中适用于各种精度的最新 matmul 性能,并将 NVIDIA B200 和 GB200 与 Hopper H200 进行了比较。合成基准测试由受计算限制的大型矩阵大小 (左) 和 1000 个随机矩阵大小 (右) 组成,这些矩阵的范围涵盖受延迟限制、受内存限制和计算限制的大小。
随机矩阵数据集由更小的矩阵组成,这些矩阵使 matmul 性能由带宽比主导,导致速度提升低于受计算限制的情况。在计算受限的情况下,块级 FP4 在 GB200 上的速度比 H200 FP8 基准快 4.6 倍,可实现高达 6787 TFLOPS/s 的绝对性能。
![This chart shows the geomean speedups of matmuls (A[MxK]B[KxN]) in various precisions on Blackwell compared to Hopper, confirming that cuBLAS achieves close to the throughput ratios on large, compute-bound sizes. The chart also shows that for a dataset of one thousand random sizes (small to large) and shapes, the speedup is dominated by the bandwidth ratios between Blackwell and Hopper GPUs.](https://developer-blogs.nvidia.com/wp-content/uploads/2025/04/Geomean-speedup.png)
“Blackwell 架构在由矩阵形状和大小组成的现实数据集上也表现出色,这些数据集主要用于重要的 LLM 训练和推理工作负载 (图 4) ,与使用 BF16 和 FP8 数据类型 (B200 和 GB200) 获取的 H200 基准相比,Blackwell 架构至少实现了 1.7 倍的加速和 2.2 倍的加速。图 4 中的这些几何平均加速仅适用于 matmuls 及其在数据集中每个模型中的相关重复计数。最终的端到端加速也取决于工作负载中非 matmul 部分的性能。”

通过 cuBLASLt 启发式 API 和 自动调整 [6,7]提供的机会性优化,Blackwell 架构实现的性能可以得到进一步提升。
在 Blackwell 上使用 BF16 Tensor Core 加速 FP32 matmuls
除了 cuBLAS 已经在 Blackwell 上提供的令人印象深刻的性能之外,它还引入了一项功能, 使用户能够选择使用模拟来实现可能更快的 FP32 矩阵乘法 和更高的能效。
图 5 展示了 B200 GPU 与原生 FP32 性能和 H200 GPU (适用于各种方形矩阵大小) 相比的 FP32 仿真性能。在最大的情况下 (M=N=K=32,768),在 B200 或 H200 上,模拟可实现比原生 FP32 高 3 到 4 倍的 TFLOPS。

用于科学计算应用的 matmuls 仿真现已得到充分理解,并且提供了几种利用仿真来提高性能和能效的算法和实现。
例如,NVIDIA GTC 2025 演讲“ How Math Libraries Can Help Accelerate Your Applications on Blackwell GPUs ”展示了天气预报应用程序的一个关键组件,在该组件中,模拟可提供 1.4x 性能和 1.3x 能效提升。
cuBLAS 库中 FP32 仿真的当前实现利用了 BF16 Tensor Core。有关使用示例,请参阅 cuBLASLt 库 API 示例 。 目前正在开发 FP64 中的 matmuls 仿真。
开始使用 cuBLAS 12.9
下载 cuBLAS 12.9 ,开始使用本博客中讨论的技术加速您的应用程序,并参考 cuBLAS 文档 ,获取与 Hopper 的新扩展方案 、 Blackwell 上的新块扩展数据类型 以及 Blackwell FP32 仿真 相关的更多信息。
如需了解详情:
- 观看如何 Math Libraries 可以帮助加速您的应用程序在 Blackwell GPUs 上 。
- 观看通过 Tensor Core 加速的混合精度计算和 Floating-Point 仿真实现的节能超级计算。
- 阅读 Introducing Grouped GEMM APIs in cuBLAS 和更多性能更新。
- 阅读从 Tensor Core 恢复单精度精度,同时超越 FP32 理论峰值性能,并 利用 bfloat16 人工智能数据类型进行更高精度的计算 ,以获取有关模拟 FP32 matmuls 的更多背景信息。