AI Research
New symbolic execution tool finds bugs in tensor programs that fool standard testing
Researchers propose a novel verification method for GPU-accelerated deep learning code by flipping how equivalence checking works.
Optimizing tensor programs used in deep learning is critical for performance, but ensuring correctness remains challenging. A research team has introduced a fresh approach to catch bugs that traditional testing methods miss.
The Testing Limitation#
Current practice relies on differential testing: running a program against a reference implementation on random inputs and checking if the outputs match. This approach assumes correctness if no discrepancies emerge. The problem arises because tensor inputs are enormous, and subtle bugs often require specific combinations of values to surface—combinations so unlikely that random sampling never generates them.
A Novel Verification Strategy#
Rather than testing all outputs for a single input, researchers flipped the problem: check whether a single output location remains equivalent across all possible inputs. This shift in perspective enables more systematic exploration of the input space through symbolic execution, a technique that reasons about programs abstractly rather than running concrete test cases.
The team implemented this idea in a system called Dirigo. By examining output tensor locations symbolically, the tool can determine whether a program would produce correct results for all inputs, not just the ones that happen to be tested.
Real-World Results#
The researchers evaluated Dirigo on a public dataset of 6,988 tensor programs (CUDA kernels) written by AI systems—all of which had passed standard differential testing. Despite being marked correct by conventional methods, Dirigo uncovered 600 genuinely buggy kernels. The tool found 97.3% of those bugs within a two-minute window, demonstrating both effectiveness and practical speed.
Why It Matters#
This work highlights a critical gap in deep learning software quality assurance. As AI-generated code becomes more prevalent, methods that can systematically expose bugs—especially those that slip through existing verification—become essential for reliable model deployment.