2014
DOI: 10.1007/978-3-319-08867-9_15
|View full text |Cite
|
Sign up to set email alerts
|

Engineering a Static Verification Tool for GPU Kernels

Abstract: Abstract. We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is that this experience report will serve the verification community by helping to inform future tooling efforts.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
23
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
4
2
1

Relationship

4
3

Authors

Journals

citations
Cited by 32 publications
(24 citation statements)
references
References 31 publications
0
23
0
Order By: Relevance
“…As a result, the bf entries are all 0 for 1+, and the to entries are close to 0 for this configuration (there are some timeouts because we recorded full result 9 32 9 31 9 32 122 144 20 5 20 4 7 5 4 2 626 625 1747 bf 396 0 397 0 397 0 396 0 0 0 0 33 0 33 0 70 1720 1720 0 0 5162 c 352 523 365 537 553 530 539 520 289 185 831 630 831 622 51 226 18 155 4 4 data for 1+ after completing the test generation process, using a separate test run during which some of the generated tests did time out). The other NVIDIA configurations (2,3,4) show similarly low build failure and timeout numbers without optimizations, as might be expected since they have similar performance characteristics and likely share compilation infrastructure between driver versions. The lack of build failures, and the low number of timeouts, means that most tests executed with a non-crash result on the NVIDIA configurations.…”
Section: Testing Using Clsmithmentioning
confidence: 54%
See 2 more Smart Citations
“…As a result, the bf entries are all 0 for 1+, and the to entries are close to 0 for this configuration (there are some timeouts because we recorded full result 9 32 9 31 9 32 122 144 20 5 20 4 7 5 4 2 626 625 1747 bf 396 0 397 0 397 0 396 0 0 0 0 33 0 33 0 70 1720 1720 0 0 5162 c 352 523 365 537 553 530 539 520 289 185 831 630 831 622 51 226 18 155 4 4 data for 1+ after completing the test generation process, using a separate test run during which some of the generated tests did time out). The other NVIDIA configurations (2,3,4) show similarly low build failure and timeout numbers without optimizations, as might be expected since they have similar performance characteristics and likely share compilation infrastructure between driver versions. The lack of build failures, and the low number of timeouts, means that most tests executed with a non-crash result on the NVIDIA configurations.…”
Section: Testing Using Clsmithmentioning
confidence: 54%
“…Finding such dynamically-dead code in OpenCL applications is hindered by (a) the lack of available code-coverage tools for OpenCL, and (b) the fact that dynamically-dead code is rare in practical OpenCL kernels: a recent study of 605 kernels shows that only a handful exhibit input-dependent behaviour [2], a necessary (but not sufficient) condition for dynamically-dead code. Problem (a) could be overcome 3 https://github.com/jrprice/Oclgrind with non-trivial engineering effort (e.g.…”
Section: Lifting Compiler Fuzzing To Openclmentioning
confidence: 99%
See 1 more Smart Citation
“…We make explicit how the current article significantly extends a previous conference version [Betts et al 2012] and complements other papers that have arisen from the GPUVerify project [Collingbourne et al 2013;Chong et al 2013;Bardsley et al 2014a;.…”
Section: Contributions In Relation To Prior Workmentioning
confidence: 58%
“…As well as technical articles that extend the core verification method, a recent tool paper discusses engineering experience and insight gained during the GPUVerify project [Bardsley et al 2014a], and an invited article provides a tutorial overview of the technique [Donaldson 2014]. We have also applied GPUVerify as a component in an automatic verification method for parallel prefix sum kernels .…”
Section: Contributions In Relation To Prior Workmentioning
confidence: 99%