GPUs play an increasingly important role in modern software. However, the heterogeneous host-device execution model and expanding software stacks make GPU programs prone to memory-safety and concurrency bugs that evade static analysis. While fuzz-testing, combined with dynamic error checking tools, offers a plausible solution, it remains underutilized for GPUs. In this work, we identify three main obstacles limiting prior GPU fuzzing efforts: (1) kernel-level fuzzing leading to false positives, (2) lack of device-side coverage-guided feedback, and (3) incompatibility between coverage and sanitization tools. We present cuFuzz, the first CUDA-oriented fuzzer that makes GPU fuzzing practical by addressing these obstacles.
cuFuzz uses whole program fuzzing to avoid false positives from independently fuzzing device-side kernels. It leverages NVBit to instrument device-side instructions and merges the resultant coverage with compiler-based host coverage. Finally, cuFuzz decouples sanitization from coverage collection by executing host- and device-side sanitizers in separate processes. cuFuzz uncovers 43 previously unknown bugs (19 in commercial libraries) across 14 CUDA programs, including illegal memory accesses, uninitialized reads, and data races. cuFuzz achieves significantly more discovered edges and unique inputs compared to baseline approaches, especially on closed-source targets. Moreover, we quantify the execution time overheads of the different cuFuzz components and add persistent-mode support to improve the overall fuzzing throughput. Our results demonstrate that cuFuzz is an effective and deployable addition to the GPU testing toolbox. cuFuzz is publicly available at https://github.com/NVlabs/cuFuzz/.
Tue 6 OctDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | Fuzzing and Test GenerationOOPSLA at East Hall 1 Chair(s): Michael Pradel CISPA Helmholtz Center for Information Security | ||
10:30 18mTalk | Hunting CUDA Bugs at Scale with cuFuzz OOPSLA Link to publication DOI Pre-print Media Attached | ||
10:48 18mTalk | RandSet: Randomized Corpus Reduction for Fuzzing Seed Scheduling OOPSLA Yuchong Xie Hong Kong University of Science and Technology, Kaikai Zhang Hong Kong University of Science and Technology, Yu Liu Fudan University, Rundong Yang Fudan University, Ping Chen Fudan University, Shuai Wang Hong Kong University of Science and Technology, Dongdong She Hong Kong University of Science and Technology DOI | ||
11:06 18mTalk | Metamorphic Testing for Infrastructure-as-Code Engines OOPSLA David Spielmann University of St. Gallen, George Zakhour University of St. Gallen, Dominik Arnold University of Zurich, Matteo Biagiola USI Lugano; University of St. Gallen, Roland Meier armasuisse, Guido Salvaneschi University of St. Gallen Link to publication DOI Pre-print | ||
11:24 18mTalk | Prunario: Testing Autonomous Driving Systems by Pruning Likely Redundant Scenarios OOPSLA DOI | ||
11:42 18mTalk | OBsmith: LLM-Powered JavaScript Obfuscator Testing OOPSLA Shan Jiang University of Texas at Austin, Chenguang Zhu University of Texas at Austin, Sarfraz Khurshid University of Texas at Austin DOI File Attached | ||