Proceedings of the IEEE 44th Annual Computers, Software and Applications
Conference
(COMPSAC '20),
IEEE Computer Society, Los Alamitos, CA (2020) |
Bo Jiang
2
,
Xiaoyan Wang
3
,
W.K. Chan
4
,
T.H. Tse
5
,
Na Li
6
,
Yongfeng Yin
3
,
and
Zhenyu Zhang
7
[paper from IEEE Xplore | paper from IEEE digital library | technical report TR-2020-05]
ABSTRACT |
CUDA is a parallel computing platform and programming
model for the graphics processing unit (GPU) of NVIDIA.
With CUDA programming, general purpose computing
on GPU (GPGPU) is possible.
However, the correctness of CUDA
programs relies on the correctness of CUDA compilers, which is
difficult to test due to its complexity.
In this work, we propose CUDAsmith, a fuzzing framework for CUDA compilers.
Our tool can randomly generate deterministic and valid CUDA kernel
code with several different strategies.
Moreover, it adopts random
differential testing and EMI testing techniques to solve the
test oracle problems of CUDA compiler testing.
In particular, we lift live code injection to CUDA compiler testing to help
generate EMI variants.
Our fuzzing experiments with both the
NVCC compiler and the Clang compiler for CUDA have detected
thousands of failures, some of which have been confirmed by
compiler developers.
Finally, the cost-effectiveness of CUDAsmith
is also thoroughly evaluated in our fuzzing experiment.
Index Terms: Compiler, compute unified device architecture (CUDA), differential testing, equivalence modulo inputs (EMI) testing, fuzzing, general purpose computing on graphics processing unit (GPGPU) |
|
EVERY VISITOR COUNTS: |