一句话:首个系统研究 TensorFlow/Keras 深度学习系统性能问题的症状、根因与阶段,并构建基准与静态检查器 DeepPerf。
深度学习系统开发中性能问题可导致资源浪费和经济损失,但相较缺陷研究,其性能问题仍缺乏系统认识。本文首次对 TensorFlow/Keras 深度学习系统中的性能问题开展综合性实证研究:从 210 个 StackOverflow 帖子中收集 224 个性能问题,刻画其症状、根因以及引入和暴露阶段;并构建含 58 个性能问题的基准,评估现有性能分析方法的应对能力。基于研究发现,作者实现静态检查器 DeepPerf,用于检测三类性能问题,在 130 个 GitHub 项目中新发现 488 个性能问题,其中 105 个被确认、27 个被修复。
Deep learning (DL) has been widely applied to many domains. Unique challenges in engineering DL systems are posed by the programming paradigm shift from traditional systems to DL systems, and performance is one of the challenges. Performance problems (PPs) in DL systems can cause severe consequences such as excessive resource consumption and financial loss. While bugs in DL systems have been extensively investigated, PPs in DL systems have hardly been explored. To bridge this gap, we present the first comprehensive study to i) characterize symptoms, root causes, and introducing and exposing stages of PPs in DL systems developed in TensorFLow and Keras, with 224 PPs collected from 210 StackOverflow posts, and to ii) assess the capability of existing performance analysis approaches in tackling PPs, with a constructed benchmark of 58 PPs in DL systems. Our findings shed light on the implications on developing high-performance DL systems, and detecting and localizing PPs in DL systems. To demonstrate the usefulness of our findings, we develop a static checker DeepPerf to detect three types of PPs. It has detected 488 new PPs in 130 GitHub projects. 105 and 27 PPs have been confirmed and fixed.