Divergence-Aware Testing of Graphics Shader Compiler Back-Ends
summary
ShaDiv generates shader tests that deliberately perturb control and data flow divergence to exercise backend optimizations, uses a divergence-aware generator plus liveness mutation to complicate dataflow, compiles and cross-checks outputs across four vendors (Intel, NVIDIA, AMD, ARM), and disables flaky floating-point cases. On evaluation it uncovers 12 back-end bugs, achieves about a 25% back-end coverage increase versus prior tools and finds roughly four times as many backend bugs while producing reproducible crashes and logic mismatches.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:07Graphics shaders and GPU model
- 3:36Divergent vs uniform branches
- 9:18Shader compiler back-end challenges
- 11:42Divergence for optimizations
- 15:14Testing with divergence patterns
- 18:54Results and 12 bugs found
- 19:36Q&A
related talks
53mLocknote: How Badly Do We Want Correct Compilers?
59mCompilers can be surprising
18mUniformity Analysis in the WebGPU Shading Language
19mProgram Reconditioning: Avoiding Undefined Behaviour When Finding and(…)
14mFinding Compiler Bugs through Cross-Language Code Generator and Differential Testing
15mSpecifying and Testing GPU Workgroup Progress Models
23mAn Abstract Interpretation for SPMD Divergence on Reducible Control Flow Graphs
22mBoosting Compiler Testing by Injecting Real-World Code
