Title: AutoPerf: A Generalized Zero-Positive Learning System to Detect Software Performance Anomalies,
Abstract: We present AutoPerf, a generalized software performance regression diagnosis
system. AutoPerf uses autoencoders, an unsupervised learning technique, and
hardware performance counters to learn the performance signatures of a program.
It then uses this knowledge to identify when newer versions of the program
suffer from performance regressions, while simultaneously providing root cause
analysis to help programmers debug the program's performance.
AutoPerf is the first zero-positive learning performance regression diagnosis
system. It trains entirely in the negative (non-anomalous) space to learn
positive (anomalous) behaviors. We demonstrate AutoPerf's generality against
three different types of performance regressions: (i) true sharing cache
contention, (ii) false sharing cache contention, and (iii) NUMA latencies
across 15 real world performance regressions and 7 open source programs. On
average, AutoPerf exhibits only 3.7% profiling overhead and diagnoses more
regressions than prior state-of-the-art approaches.