GUnit is a persistent and asynchronous kernel testing framework for heterogeneous computing. It transforms repeated host-driven GPU kernel testing into a continuous host-device pipeline, reducing launch and synchronization overhead while enabling fine-grained exploration of kernel behavior.
- PerKernel keeps a device-side testing harness resident across test cases and repeatedly invokes the target kernel without relaunching it for every input.
- Asynchronous Testing Engine decouples input generation, device execution, and feedback processing so that host and device work can overlap.
- VConfig Rewriting virtualizes CUDA launch configurations, allowing each test case to exercise a different logical grid and block configuration under a fixed physical launch.
- SIMT-Aware Kernel Feedback distinguishes kernel executions through device-side behaviors such as warp participation and memory-access patterns.
GUnit is implemented on top of LibAFL and uses an LLVM-based compilation pipeline to transform and instrument CUDA kernels.
We are preparing the complete source release, including the persistent runtime, asynchronous testing engine, LLVM transformation passes, and scripts for reproducing the evaluation. The code and documentation will be published in this repository shortly.
GUnit: A Persistent and Asynchronous Kernel Testing Framework for Heterogeneous Computing
The paper and artifact instructions will be linked here when they are available.
License information will accompany the complete source release.