1. 论文信息
- 文章来自IEEE International Parallel and Distributed Processing Symposium, (IPDPS), 2021
- Dancing in the Dark: Profiling for Tiered Memory
所有作者及单位
- Jinyoung Choi, 加州大学河滨分校(UC Riverside)
- Sergey Blagodurov, 美国超威半导体公司(AMD)
- Hung-Wei Tseng, UC Riverside
2. Introduction & Background
- 究竟如何向软件公开每种内存类型是一个悬而未决的问题
- 多种内存技术协同->更多内存、更少延迟、更大带宽
- tiered memory architectures (TMAs)
- 缓存会给更多设计给硬件,平面寻址会有更多软件策略
软件监控方法,通过TLB条目和内存页的现状:
- 页面访问不可见只有缺页时才知道,识别被多次访问的代码段很难。
- 硬件监控的多样性,是由供应商提供,没有标准。
- 创建一个新的分析工具,组合硬件监控器的信息,抽象出一些二级指标,再通过一些策略,做出页面热度排名之类的。
与硬件缓存相比,软件控制的分层内存4个优点:
- 首先,分层内存允许直接从数据所在的层进行就地内存访问。使用硬件缓存时,请求的内存块将从第2层可寻址内存引入第1层缓存,从而导致流量增加。而且缺页导致的迁移开销大。
- 其次,在TMA中,内存页面可以在任一层中找到;缓存会在内存中创建重复的、可能不一致的页面副本,并且需要机制来保持数据一致。RDMA做缓存带宽效率会比较低[2][10]
- 第三,分层内存解决方案允许缓存策略微调(通过工作负载混合、服务级别协议等)以适应高层策略决策并消除过度迁移。(不懂)
- 第四,由于与根深蒂固的NUMA架构相似,分层内存可以利用NUMA和异构内存管理(HMM)[5]系统基础设施。 Linux社区中关于如何将NVM暴露给操作系统一直存在争论。当前的提案围绕将NVM配置为无CPU的NUMA节点以及使用AutoNUMA或其他现有的管理NUMA方法[11]、[12]管理TMA平衡。这里再次强调的是内存如何分配和移动,而不是如何分析热度(例如,AutoNUMA 中的定期取消映射和页错误处理如何产生开销 [13])。我们的工作重点是比较各种监控方法,以最小的开销获得最大的热度可见性,这对 NUMA 和分层内存都有好处。
内存分析方法:
- 页表项PTE位跟踪。PTE包括已访问A位和脏D位。操作系统可以清除这些PTE位,并且硬件页表遍历器PTW将设置它们。PTW在TLB未命中时设置A位。A位不区分在分析间隔期间访问一次的页面和多次访问的页面。更频繁的A位检查可以提高分析的信息量,但也会增加开销。
- TBP能够从加载或存储指令收集地址跟踪。在AMD系统上,基于指令的采样IBS[18]、[19]使CPU指令能够在穿过管道时被标记,允许在指令执行时收集数据,并在指令退出时引发中断。
- 轻量级分析(LWP) [20] 是AMD64系列15h AMD处理器的硬件扩展,与IBS的不同之处在于LWP在生成中断之前收集大量数据。
- 英特尔的处理器基于事件的采样(PEBS)是一种基于跟踪的功能,类似于IBS/LWP,其中处理器在指定的内存区域中记录标记的样本。PEBS样本可以根据许多事件(例如缓存未命中)来选择,每个PEBS记录包含时间戳、线性地址和物理地址等[21]
- 硬件性能计数器HWPC是大多数现代CPU和GPU上可用的特殊硬件寄存器,作为性能监控单元PMU的一部分。通过事件复用,perf和pfmon等软件工具可以监控比物理寄存器更多的事件。HWPC是粗粒度的(所有进程页面的一个指标),并且不能用于获取内存访问跟踪 [25]
- BadgerTrap[6]拦截TLB Miss,并且对TLB做相应修改,用采样页预估总体未命中次数。
3. 解决了什么问题
这篇文章评估了很多内存监视器,提出一种统一的方法,为分层内存提供详细、低开销的可见性。
(1) 提出了一种低开销、高精度的分析机制,可以缓解TMA中的性能问题。
(2) 本文产生的见解可以指导TMA的高效内存管理策略。
(3) 本文使用所提出的分析机制来实现和评估内存管理策略,以在不进行任何硬件修改的情况下实现加速。
(4) 介绍了一种分析工具作为可升级的解决方案,以提高分层内存系统的性能。
4. 其他学者解决这个问题的思路和缺陷
5. 围绕该问题作者如何构建解决思路
figure1系统的架构图,说明了每个部分的功能,其实就是将以上提到的组合了一下,取长补短。TMP 使用多种互补的监测方法,最大限度地提高信息量并最大限度地减少开销(表 I)
实施方案,非常细节可以对着代码看。
TMP在分层内存中的使用还是识别页面冷热,并且排序,然后确定哪些页面是可以迁移的,迁移时虚拟地址不变,页面物理地移动(这一段介绍也很细节,可以对着代码看)作者figure6的分析表明,是想要去提高第一层的命中率的。
6. 从结果看,作者如何有力证明他解决了问题
选用了云工作负载和HPC工作负载,但是这位怎么只给了表格没有引用emmm,而且云工作负载看起来像自己取的名字。
7. 缺陷和wuwu改进思路
但是整个组合会变得复杂,到底在收集信息时内核负担会不会变大反而效率更低。文章说:保持工作负载开销低于应用程序开销的 5%。
有的对硬件的采样是不允许的,那么这个可能有的地方收集不了数据。
有的采样率还是得手动调。
8. 创新点
9. 积累
数据密集型服务器:内存中键值存储、数据库、整合在各个云服务器上的虚拟机以及需要大量内存的高性能计算HPC应用程序。
对延迟的优化,可以通过命中更多的热页面,常用的优化内存延迟的方式。
内存技术及其相关字节可寻址接口(例如 NVDIMM P、CXL、3D XPoint DIMM、CCIX和Gen-Z)具有不同的延迟、带宽、功耗、持久性和每GB成本特征,成功的分层内存架构必须依赖系统来最小化与内存内容访问和每个内存请求的地址转换相关的延迟。