Data movement between the CPU and main memory is a first-order obstacle against improving performance, scalability, and energy efficiency in modern systems. Computer systems employ a range of techniques to reduce overheads tied to data movement, spanning from traditional mechanisms (e.g., deep multi-level cache hierarchies, aggressive hardware prefetchers) to emerging techniques such as Near-Data Processing (NDP), where some computation is moved close to memory. Our goal is to methodically identify potential sources of data movement over a broad set of applications and to comprehensively compare traditional compute-centric data movement mitigation techniques to more memory-centric techniques, thereby developing a rigorous understanding of the best techniques to mitigate each source of data movement. With this goal in mind, we perform the first large-scale characterization of a wide variety of applications, across a wide range of application domains, to identify fundamental program properties that lead to data movement to/from main memory. We develop the first systematic methodology to classify applications based on the sources contributing to data movement bottlenecks. From our large-scale characterization of 77K functions across 345 applications, we select 144 functions to form the first open-source benchmark suite (DAMOV) for main memory data movement studies. We select a diverse range of functions that (1) represent different types of data movement bottlenecks, and (2) come from a wide range of application domains. Using NDP as a case study, we identify new insights about the different data movement bottlenecks and use these insights to determine the most suitable data movement mitigation mechanism for a particular application. We open-source DAMOV and the complete source code for our new characterization methodology at https://github.com/CMU-SAFARI/DAMOV.
翻译:计算机系统采用一系列技术,减少与数据移动有关的管理费用,从传统的机制(例如,深多层缓存等级、激烈的硬件预展器)到Near-Data处理(NDP)等新兴技术,有些计算方法接近于记忆。我们的目标是有条不紊地查明在一系列广泛的应用软件中数据移动的潜在来源,并将传统的计算中心数据移动减缓技术与更多的内存中心技术进行全面比较。计算机系统采用一系列技术,以减少与数据移动有关的管理费用。为此,我们从传统的机制(例如,深多层缓存等级、激烈的硬件预发器)到诸如Neal-Data处理(NDP)等新兴技术,确定数据移动的基本程序性质,从而将数据移动与记忆接近。我们开发了第一个系统化方法,根据数据移动瓶颈来源对应用程序进行分类。从我们对345个应用的77K的大规模源数据移动功能,我们选择了144项功能,以形成一个最开放的内向型数据移动的系统化技术。我们选择了在数据库中进行数据移动的首个开式数据移动(AMAMAAM/AM)。