2015
DOI: 10.1145/2813885.2737986
|View full text |Cite
|
Sign up to set email alerts
|

Many-core compiler fuzzing

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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
70
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
4
2
2

Relationship

4
4

Authors

Journals

citations
Cited by 77 publications
(71 citation statements)
references
References 16 publications
0
70
0
Order By: Relevance
“…We see several avenues for future investigation: (a) the design of GPU weak memory-aware formal program analysis techniques (to enable verification of our empirically proposed fixes); (b) architectural investigation of the critical patches revealed by our micro-benchmarks, building on the insights into Nvidia GPUs provided by GPGPU-Sim [1]; (c) applying and evaluating our methods to CPU architectures and applications; (d) combining our techniques with recent methods for GPU compiler testing [29] in order to check the correctness of compilation in the presence of fine-grained concurrency; (e) combining our techniques with race detectors to help pinpoint communication idioms in applications and developing targeted testing around these locations.…”
Section: Discussionmentioning
confidence: 99%
“…We see several avenues for future investigation: (a) the design of GPU weak memory-aware formal program analysis techniques (to enable verification of our empirically proposed fixes); (b) architectural investigation of the critical patches revealed by our micro-benchmarks, building on the insights into Nvidia GPUs provided by GPGPU-Sim [1]; (c) applying and evaluating our methods to CPU architectures and applications; (d) combining our techniques with recent methods for GPU compiler testing [29] in order to check the correctness of compilation in the presence of fine-grained concurrency; (e) combining our techniques with race detectors to help pinpoint communication idioms in applications and developing targeted testing around these locations.…”
Section: Discussionmentioning
confidence: 99%
“…Our approach takes advantage of the recent work on testing compilers [22], [23], [34], especially the work of Regehr et al on program generation [34] and reduction [27]. Combined with our technique for generating program variants in three different modes and a set of appropriate oracles, we show that these techniques are effective at finding bugs in symbolic execution engines.…”
Section: Related Workmentioning
confidence: 94%
“…Because it will not be executed, arbitrary syntactically valid code can be injected, including code that would invoke undefined behaviour. In [5] we experimented with injecting code generated by a fuzzer. In our GLSL testing framework we instead consider transplanting code fragments from one real-world shader program into another (see Section 3).…”
Section: Metamorphic Compiler Testing Via Opaque Value Injectionmentioning
confidence: 99%
“…[4,5,6,7,8]). A notable method for testing compilers is random differential testing, popularised by the Csmith tool [8], whereby a program is randomly generated (a process known as fuzzing) and then compiled by different compilers at multiple optimisation levels.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation