Many-core compiler fuzzing
- 3 June 2015
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
Abstract
We address the compiler correctness problem for many-core systems through novel applications of fuzz testing to OpenCL compilers. Focusing on two methods from prior work, random differential testing and testing via equivalence modulo inputs (EMI), we present several strategies for random generation of deterministic, communicating OpenCL kernels, and an injection mechanism that allows EMI testing to be applied to kernels that otherwise exhibit little or no dynamically-dead code. We use these methods to conduct a large, controlled testing campaign with respect to 21 OpenCL (device, compiler) configurations, covering a range of CPU, GPU, accelerator, FPGA and emulator implementations. Our study provides independent validation of claims in prior work related to the effectiveness of random differential testing and EMI testing, proposes novel methods for lifting these techniques to the many-core setting and reveals a significant number of OpenCL compiler bugs in commercial implementations.Keywords
This publication has 16 references indexed in Scilit:
- OclgrindPublished by Association for Computing Machinery (ACM) ,2015
- Compiler validation via equivalence modulo inputsPublished by Association for Computing Machinery (ACM) ,2014
- Compiler validation via equivalence modulo inputsACM SIGPLAN Notices, 2014
- Engineering a Static Verification Tool for GPU KernelsLecture Notes in Computer Science, 2014
- Taming compiler fuzzersPublished by Association for Computing Machinery (ACM) ,2013
- Compiler testing via a theory of sound optimisations in the C11/C++11 memory modelPublished by Association for Computing Machinery (ACM) ,2013
- Compiler testing via a theory of sound optimisations in the C11/C++11 memory modelACM SIGPLAN Notices, 2013
- Test-case reduction for C compiler bugsACM SIGPLAN Notices, 2012
- Practical testing of a C99 compiler using output comparisonSoftware: Practice and Experience, 2007
- Fault-based testing without the need of oraclesInformation and Software Technology, 2003