FuzzyFlow: Leveraging Dataflow To Find and Squash Program Optimization Bugs

06/28/2023
by   Philipp Schaad, et al.
0

The current hardware landscape and application scale is driving performance engineers towards writing bespoke optimizations. Verifying such optimizations, and generating minimal failing cases, is important for robustness in the face of changing program conditions, such as inputs and sizes. However, isolation of minimal test-cases from existing applications and generating new configurations are often difficult due to side effects on the system state, mostly related to dataflow. This paper introduces FuzzyFlow: a fault localization and test case extraction framework designed to test program optimizations. We leverage dataflow program representations to capture a fully reproducible system state and area-of-effect for optimizations to enable fast checking for semantic equivalence. To reduce testing time, we design an algorithm for minimizing test inputs, trading off memory for recomputation. We demonstrate FuzzyFlow on example use cases in real-world applications where the approach provides up to 528 times faster optimization testing and debugging compared to traditional approaches.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/06/2021

FastAD: Expression Template-Based C++ Library for Fast and Memory-Efficient Automatic Differentiation

Automatic differentiation is a set of techniques to efficiently and accu...
research
06/14/2020

Detection of Coincidentally Correct Test Cases through Random Forests

The performance of coverage-based fault localization greatly depends on ...
research
12/18/2018

Inputs from Hell Generating Uncommon Inputs from Common Samples

Generating structured input files to test programs can be performed by t...
research
06/02/2020

Kaya: A Testing Framework for Blockchain-based Decentralized Applications

In recent years, many decentralized applications based on blockchain (DA...
research
01/20/2023

MTGP: Combining Metamorphic Testing and Genetic Programming

Genetic programming is an evolutionary approach known for its performanc...
research
08/23/2018

Enhancing POI testing approach through the use of additional information

Recently, a new approach to perform regression testing has been defined:...
research
11/18/2019

Building Fast Fuzzers

Fuzzing is one of the key techniques for evaluating the robustness of pr...

Please sign up or login with your details

Forgot password? Click here to reset