Saved in:
Bibliographic Details
Main Authors: Zahid, Anwar Hossain, Laguna, Ignacio, Le, Wei
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2410.09172
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866914970438991872
author Zahid, Anwar Hossain
Laguna, Ignacio
Le, Wei
author_facet Zahid, Anwar Hossain
Laguna, Ignacio
Le, Wei
contents As scientific codes are ported between GPU platforms, continuous testing is required to ensure numerical robustness and identify numerical differences. Compiler-induced numerical differences occur when a program is compiled and run on different GPUs, and the numerical outcomes are different for the same input. We present a study of compiler-induced numerical differences between NVIDIA and AMD GPUs. Our approach uses Varity to generate thousands of short numerical tests in CUDA and HIP, and their inputs; then, we use differential testing to check if the program produced a numerical inconsistency when run on these GPUs. We also use the HIPIFY tool to convert CUDA tests into HIP and check if there are numerical inconsistencies induced by HIPIFY. We generated more than 600,000 tests and found subtle numerical differences that come from (1) math library calls, (2) differences in floating-point precision (FP64 versus FP32), and (3) converting code with HIPIFY.
format Preprint
id arxiv_https___arxiv_org_abs_2410_09172
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Testing GPU Numerics: Finding Numerical Differences Between NVIDIA and AMD GPUs
Zahid, Anwar Hossain
Laguna, Ignacio
Le, Wei
Numerical Analysis
Programming Languages
As scientific codes are ported between GPU platforms, continuous testing is required to ensure numerical robustness and identify numerical differences. Compiler-induced numerical differences occur when a program is compiled and run on different GPUs, and the numerical outcomes are different for the same input. We present a study of compiler-induced numerical differences between NVIDIA and AMD GPUs. Our approach uses Varity to generate thousands of short numerical tests in CUDA and HIP, and their inputs; then, we use differential testing to check if the program produced a numerical inconsistency when run on these GPUs. We also use the HIPIFY tool to convert CUDA tests into HIP and check if there are numerical inconsistencies induced by HIPIFY. We generated more than 600,000 tests and found subtle numerical differences that come from (1) math library calls, (2) differences in floating-point precision (FP64 versus FP32), and (3) converting code with HIPIFY.
title Testing GPU Numerics: Finding Numerical Differences Between NVIDIA and AMD GPUs
topic Numerical Analysis
Programming Languages
url https://arxiv.org/abs/2410.09172