Could Compression Be of General Use? Evaluating Memory Compression across Domains

Could Compression Be of General Use? Evaluating Memory Compression across Domains
复制标题

压缩可以通用吗?

DOI:
--
复制
发表时间:
2017
期刊:
ACM Transactions on Architecture and Code Optimization (TACO)
影响因子:
--
通讯作者:
D. Wood
D. Wood
中科院分区:
--
文献类型:
--
作者:
S. Sardashti;D. Wood

文献摘要

被引文献

相似文献

最近的提议将压缩作为增加高速缓存和存储器容量和带宽的成本有效的技术。虽然这些建议显示了压缩的潜力,但在真实的系统中采用这些建议存在几个开放的问题,包括以下问题:(1)这些技术是否适用于长时间运行的真实世界工作负载?(2)哪些应用程序域可能从压缩中受益最多?(3)我们应该在内存层次结构的哪一级应用压缩:缓存、主存还是两者兼而有之?在这篇文章中,我们的目标是阐明压缩的适用性的一些主要问题。我们从不同的应用程序类中选择的例子在内存层次结构中的压缩进行评估。我们用真实的数据分析了真实的应用程序,并完成了几个基准测试的运行。虽然模拟器提供了一个非常准确的框架来研究想法的潜在性能/能源影响,但它们大多将我们限制在运行时间较短的小范围工作负载上。为了能够研究真实的工作负载,我们引入了一种快速简单的方法来获取真实的机器(台式机或服务器)的内存和缓存内容的样本。与周期精确的模拟器相比,我们的方法使我们能够研究真实的工作负载以及基准。我们的工具集不是模拟器的替代品,而是对它们的补充。虽然我们可以使用模拟器来测量特定压缩方案的性能/能源影响,但在这里,我们可以使用我们的方法在设计的早期阶段研究长期运行工作负载的潜力。使用我们的工具集,我们评估了来自不同领域的工作负载的集合,例如UW-Madison CS部门的Web服务器24小时,Google Chrome(在YouTube上观看1小时长的电影)和Linux游戏(玩大约一个小时)。我们还使用了来自不同领域的几个基准测试,包括SPEC、移动的和大数据。我们运行这些基准以完成。使用这些工作负载和我们的工具集,我们分析了不同的压缩属性为真实的应用程序和基准测试。我们专注于八个主要的假设压缩,来自以前的工作压缩。这些属性(表2)作为几个压缩提案的基础,因此这些提案的性能在很大程度上取决于这些基本属性。总的来说,我们的研究结果表明,压缩可以在主存和缓存中普遍使用。平均而言,对于内存和缓存数据,分别有64%和54%的工作负载的压缩比≥2。我们的评估表明缓存和内存压缩的巨大潜力,由于丰富的零块在内存中具有更高的压缩性。在我们研究的应用领域中,服务器平均显示出最高的压缩性,而我们的移动的基准测试显示出最低的压缩性。为了将基准测试与真实的工作负载进行比较,我们表明:(1)运行基准测试以完成或相当长的运行时间以避免有偏见的结论至关重要;(2)SPEC基准测试在数据集的可压缩性方面很好地代表了真实的桌面应用程序。然而,这并不适用于所有压缩属性。例如,SPEC基准测试具有更好的压缩局部性(即,相邻块具有相似的可压缩性)比真实的工作负载。因此,设计人员必须考虑更广泛的工作负载,包括真实的应用程序,以评估他们的压缩技术。
Recent proposals present compression as a cost-effective technique to increase cache and memory capacity and bandwidth. While these proposals show potentials of compression, there are several open questions to adopt these proposals in real systems including the following: (1) Do these techniques work for real-world workloads running for long time? (2) Which application domains would potentially benefit the most from compression? (3) At which level of memory hierarchy should we apply compression: caches, main memory, or both? In this article, our goal is to shed light on some main questions on applicability of compression. We evaluate compression in the memory hierarchy for selected examples from different application classes. We analyze real applications with real data and complete runs of several benchmarks. While simulators provide a pretty accurate framework to study potential performance/energy impacts of ideas, they mostly limit us to a small range of workloads with short runtimes. To enable studying real workloads, we introduce a fast and simple methodology to get samples of memory and cache contents of a real machine (a desktop or a server). Compared to a cycle-accurate simulator, our methodology allows us to study real workloads as well as benchmarks. Our toolset is not a replacement for simulators but mostly complements them. While we can use a simulator to measure performance/energy impact of a particular compression proposal, here with our methodology we can study the potentials with long running workloads in early stages of the design. Using our toolset, we evaluate a collection of workloads from different domains, such as a web server of CS department of UW—Madison for 24h, Google Chrome (watching a 1h-long movie on YouTube), and Linux games (playing for about an hour). We also use several benchmarks from different domains, including SPEC, mobile, and big data. We run these benchmarks to completion. Using these workloads and our toolset, we analyze different compression properties for both real applications and benchmarks. We focus on eight main hypotheses on compression, derived from previous work on compression. These properties (Table 2) act as foundation of several proposals on compression, so performance of those proposals depends very much on these basic properties. Overall, our results suggest that compression could be of general use both in main memory and caches. On average, the compression ratio is ≥2 for 64% and 54% of workloads, respectively, for memory and cache data. Our evaluation indicates significant potential for both cache and memory compression, with higher compressibility in memory due to abundance of zero blocks. Among application domains we studied, servers show on average the highest compressibility, while our mobile benchmarks show the lowest compressibility. For comparing benchmarks with real workloads, we show that (1) it is critical to run benchmarks to completion or considerably long runtimes to avoid biased conclusions, and (2) SPEC benchmarks are good representative of real Desktop applications in terms of compressibility of their datasets. However, this does not hold for all compression properties. For example, SPEC benchmarks have much better compression locality (i.e., neighboring blocks have similar compressibility) than real workloads. Thus, it is critical for designers to consider wider range of workloads, including real applications, to evaluate their compression techniques.