CUDAsmith: A Fuzzer for CUDA Compilers
Autor: | Yongfeng Yin, Zhenyu Zhang, Bo Jiang, Xiaoyan Wang, W. K. Chan, T. H. Tse, Na Li |
---|---|
Rok vydání: | 2020 |
Předmět: |
Correctness
Computer science Graphics processing unit 020207 software engineering 02 engineering and technology Fuzz testing Parallel computing ComputerSystemsOrganization_PROCESSORARCHITECTURES Software_PROGRAMMINGTECHNIQUES computer.software_genre CUDA 020204 information systems 0202 electrical engineering electronic engineering information engineering Programming paradigm Code injection Compiler General-purpose computing on graphics processing units computer ComputingMethodologies_COMPUTERGRAPHICS |
Zdroj: | COMPSAC |
DOI: | 10.1109/compsac48688.2020.0-156 |
Popis: | 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. |
Databáze: | OpenAIRE |
Externí odkaz: |