英伟达CUDA Toolkit 13.4新增Ozaki-II FP64矩阵乘法模拟功能
英伟达(NVIDIA)在CUDA Toolkit 13.4版本中,为cuBLAS库新增了基于Ozaki-II算法的FP64(双精度浮点数)矩阵乘法模拟功能。根据官方公布的数据,B200 GPU在该模拟模式下的复数矩阵乘法最高性能可达295 TFLOPS。需要注意的是,这一数值仅代表特定计算路径的理论峰值,并不意味着科学模拟的整体运行速度能达到相同水平。
Ozaki-II技术特性与支持条件
英伟达在CUDA Toolkit 13.4.2版本的发布说明中指出,当使用Ozaki-II相比前代Ozaki-I能获得性能优势时,用户可选择启用该功能。目前,该技术支持Ampere架构及之后的GPU产品。其中,FP64是广泛应用于科学与工程计算的双精度数据类型,而cuBLAS则是用于处理GPU矩阵运算的核心库。
此前,FP64模拟功能已在CUDA Toolkit 13.0 Update 2中以基于Ozaki-I的选择性功能形式首次提供。随着13.4版本引入Ozaki-II,后续的13.4.2版本被标记为“13.4 Update 1”进行更新。
硬件性能基准与算法原理
英伟达公布的最高模拟性能数据如下:
- B200 GPU:实数矩阵乘法(DGEMM)最高175 TFLOPS,复数矩阵乘法(ZGEMM)最高295 TFLOPS。
- RTX PRO 6000 Blackwell Server Edition:实数矩阵乘法最高45 TFLOPS,复数矩阵乘法最高70 TFLOPS。
上述所有数值均为矩阵乘法模拟的理论最大值。在复数矩阵乘法中使用的2M算法通常可将实数矩阵乘法的次数从4次减少至2次。英伟达研究团队指出,结合Ozaki-II算法后,处理复数矩阵乘法所需的时间约为处理同等规模实数矩阵乘法时间的两倍。
cuBLAS的模拟路径工作流程包括:将输入矩阵转换为定点格式,利用GPU计算单元进行处理,最后合并中间结果。英伟达文档详细说明了此方式及其适用条件。此外,自动动态精度功能会计算输入所需的尾数位数;一旦设定阈值被超过,系统将自动切换回原生FP64运算,而非继续使用模拟路径。因此,实际执行路径会根据输入数据和精度条件的不同而有所变化。
内存管理与性能优化
在CUDA Toolkit 13.4.2版本中,英伟达改进了内存管理机制。当模拟所需的任务内存不足时,系统能够从设备级内存池中申请空间。这一变更旨在减轻频繁按句柄分配内存带来的负担。
在同一更新中,英伟达宣布Rubin GPU的ZGEMM最高性能提升了最多25%。需再次强调,该数据仅针对复数矩阵乘法,并不代表其他运算或整体程序执行时间的改进比例。矩阵乘法模拟的最高吞吐量并不等同于整个应用程序的性能表现,实际效果取决于矩阵乘法在任务中的占比、输入条件以及具体的GPU型号。
实际应用案例与补丁更新
英伟达报告称,在使用之前的基于Ozaki的模拟方案时,RTX PRO 6000 Blackwell Server Edition运行Quantum ESPRESSO软件的速度比默认设置快了1.5倍。但需注意,这并非直接测量CUDA 13.4中Ozaki-II的结果。
另外,单独的cuBLAS Patch Release 13.8.2已应用于CUDA Toolkit 13.4 Update 1,修复了在使用Ozaki-II的部分复数BLAS3例程中出现的罕见错误。该错误可能发生在内积操作中,当两个向量几乎平行且各分量大小相近时出现。而在CUDA Toolkit 13.5.0的发布说明中,也记录了与Ozaki-II相关的此类罕见已知问题。截至14日确认,英伟达CUDA Toolkit归档中的最新版本为13.5.0。
在CUDA 13.5版本中,Ozaki-II的应用范围扩展至部分对称和厄米特秩-k运算。这是一项独立于13.4版本引入的复数矩阵乘法模拟功能的变更,旨在扩大支持的运算类型。
此前报道过的基于B300的BF16x9分子动力学测试属于FP32(单精度)模拟案例,其精度和测量对象与本次介绍的FP64矩阵乘法模拟有所不同。