Structural testing for CUDA programming model

Helder J. F. Luz,Paulo S. L. Souza,Simone R. S. Souza
DOI: https://doi.org/10.1002/cpe.8105
2024-04-11
Concurrency and Computation Practice and Experience
Abstract:Summary Graphic processors offer an accessible solution for high‐performance computing, addressing challenges across various fields. The Compute Unified Device Architecture (CUDA) programming model has emerged to enhance the performance of general‐purpose applications on graphic processors. However, developing CUDA programs is far from straightforward, and developers' lack of experience in parallel programming has led to numerous issues. This article presents a structural testing model and criteria to improve the quality of CUDA programs. These criteria facilitate the selection of test cases and aid in identifying faults. The ValiCUDA tool was developed to implement and validate this testing model and criteria. This tool instruments and analyzes programs, generating the necessary elements for each testing criterion. It also facilitates program execution and evaluation of criterion coverage. A statistical validation experiment assessed these criteria' effectiveness, cost, and strength metrics. The results demonstrate that the criteria can identify nontrivial faults in CUDA programs and assist testers in their testing endeavors for such applications.
computer science, theory & methods, software engineering
What problem does this paper attempt to address?