GPU数值测试:NVIDIA与AMD GPU之间的数值差异
数值分析
2024-10-15 v1 数值分析
编程语言
摘要
随着科学代码在GPU平台之间移植,需要进行持续测试以确保数值稳健性并识别数值差异。当程序在不同GPU上编译并运行时,如果相同输入的数值结果不同,则会发生编译器引起的数值差异。我们提出了NVIDIA和AMD GPU之间编译器引起的数值差异的研究。我们的方法使用Varity生成数千个CUDA和HIP格式的简短数值测试及其输入;然后,我们使用差分测试来检查程序在这些GPU上运行时是否产生数值不一致。我们还使用HIPIFY工具将CUDA测试转换为HIP,并检查HIPIFY是否引起数值不一致。我们生成了超过60万个测试,并发现了微妙的数值差异,这些差异来自(1)数学库调用,(2)浮点精度差异(FP64与FP32),以及(3)使用HIPIFY转换代码。
关键词
引用
@article{arxiv.2410.09172,
title = {Testing GPU Numerics: Finding Numerical Differences Between NVIDIA and AMD GPUs},
author = {Anwar Hossain Zahid and Ignacio Laguna and Wei Le},
journal= {arXiv preprint arXiv:2410.09172},
year = {2024}
}