Detecting and Understanding Real-World Differential Performance Bugs in Machine Learning Libraries
Not on the map. Why?
Abstract (arXiv)
Programming errors that degrade the performance of systems are widespread, yet there is little tool support for analyzing these bugs. We present a method based on differential performance analysis---we find inputs for which the performance varies widely, despite having the same size. To ensure that the differences in the performance are robust (i.e. hold also for large inputs), we compare the performance of not only single inputs, but of classes of inputs, where each class has similar inputs parameterized by their size. Thus, each class is represented by a performance function from the input size to performance. Importantly, we also provide an explanation for why the performance differs in a form that can be readily used to fix a performance bug. The two main phases in our method are discovery with fuzzing and explanation with decision tree classifiers, each of which is supported by clustering. First, we propose an evolutionary fuzzing algorithm to generate inputs. For this fuzzing task, the unique challenge is that we not only need the input class with the worst performance, but rather a set of classes exhibiting differential performance. We use clustering to merge similar input classes which significantly improves the efficiency of our fuzzer. Second, we explain the differential performance in terms of program inputs and internals. We adapt discriminant learning approaches with clustering and decision trees to localize suspicious code regions. We applied our techniques to a set of applications. On a set of micro-benchmarks, we show that our approach outperforms state-of-the-art fuzzers in finding inputs to characterize the differential performance. On a set of case-studies, we discover and explain multiple performance bugs in popular machine learning frameworks. Four of these bugs, reported first in this paper, have since been fixed by the developers.
Key facts. Cited by 7 papers in the map (data through 7 Oct 2026). First posted on arXiv 3 Jun 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 1; 2022: 2; 2023: 2; 2024: 2.
7 papers.
- 2022Fairness-aware Configuration of Machine Learning Librariescited by 28
- 2021Understanding Performance Problems in Deep Learning Systemscited by 12
- 2022Towards a Change Taxonomy for Machine Learning Systemscited by 6
- 2023Reliability Assurance for Deep Neural Network Architectures Against Numerical Defectscited by 3
- 2024Worst-Case Convergence Time of ML Algorithms via Extreme Value Theorycited by 1
- 2024Predicting Fairness of ML Software Configurationscited by 1
- 2023A Comprehensive Empirical Study of Bugs in Open-Source Federated Learning Frameworkscited by 0
- 2024Predicting Fairness of ML Software Configurations29 Apr 2024
- 2024Worst-Case Convergence Time of ML Algorithms via Extreme Value Theory10 Apr 2024
- 2023A Comprehensive Empirical Study of Bugs in Open-Source Federated Learning Frameworks9 Aug 2023
- 2023Reliability Assurance for Deep Neural Network Architectures Against Numerical Defects13 Feb 2023
- 2022Towards a Change Taxonomy for Machine Learning Systems21 Mar 2022
- 2022Fairness-aware Configuration of Machine Learning Libraries13 Feb 2022
- 2021Understanding Performance Problems in Deep Learning Systems3 Dec 2021