一句话:提出软件中心动态预取配置系统,高带宽占用时禁用硬件预取并改用定向软件预取,提升吞吐10%。
在大型数据中心等高利用率、资源受限环境中,传统硬件预取可能反而增加内存延迟并降低可用内存带宽。Limoncello 是一个软件中心的动态预取配置系统:当内存带宽利用率较高时,它禁用硬件预取以避免争用;在硬件预取关闭后,它利用面向特定库函数的软件预取来减少缓存缺失。该系统无需修改硬件。作者在 Google 生产集群上部署评估,结果显示应用吞吐量提升 10%,内存延迟降低 15%,而目标库函数的缓存缺失率基本不变。
This paper presents Limoncello, a novel software system that dynamically configures data prefetchers for high-utilization systems. We demonstrate that in resource-constrained environments, such as large data centers, traditional methods of hardware prefetching can increase memory latency and decrease available memory bandwidth. To address this issue, Limoncello disables hardware prefetchers when memory bandwidth utilization is high, and it leverages targeted software prefetching to reduce cache misses when hardware prefetchers are disabled. Limoncello is software-centric and does not require any modifications to hardware. Our evaluation of the deployment on Google's fleet reveals that Limoncello unlocks significant performance gains for high-utilization systems: It improves application throughput by 10%, due to a 15% reduction in memory latency, while maintaining minimal change in cache miss rate for targeted library functions.
@inproceedings{JainLVKKHR24,
title = {Limoncello: Prefetchers for Scale},
author = {Akanksha Jain and Hannah Lin and Carlos Villavieja and Baris Kasikci and Chris Kennelly and Milad Hashemi and Parthasarathy Ranganathan},
booktitle = {ASPLOS},
year = {2024},
doi = {10.1145/3620666.3651373}
}