《Tiered Memory Management: Access Latency is the Key!》

在文章《Tiered Memory Management: Access Latency is the Key!》的“1 Introduction”(引言)部分,第一段主要介绍了现代内存密集型应用对内存需求的背景,以及传统内存架构面临的挑战,从而引出了分层内存架构(tiered memory architectures)的兴起和内存管理的重要性。以下是对第一段内容的详细解读:

  1. 内存密集型应用的需求
    作者首先指出,现代内存密集型应用,例如内存数据库(in-memory databases)、图处理引擎(graph processing engines)和机器学习框架(machine learning frameworks),显著受益于更大的内存容量和更高的内存互连带宽(memory interconnect bandwidth)。这些应用对内存性能的需求日益增加,推动了内存技术的发展。

  2. 内存成本的重要性
    作者提到,在云服务器中,内存占据了越来越大的成本比例。例如,Meta公司的云服务器内存成本约为37%(引用[35]),而微软Azure的内存成本甚至高达50%(引用[38])。这表明内存不仅是性能的关键因素,也是经济考量的重要部分。

  3. 传统内存架构的局限性
    作者接着讨论了传统内存架构(以DRAM模块通过DDR内存互连暴露给处理器的形式)在技术趋势上的瓶颈。具体而言,这种架构在成本效益上难以同时扩展内存容量和内存互连带宽(引用[41, 46, 49, 54, 59])。特别是随着处理器核心数量和每个核心的并发性增加,内存互连的竞争(contention)日益加剧,成为性能瓶颈(引用[2, 36])。

  4. 具体数据支持瓶颈问题
    作者通过具体数据进一步说明问题严重性。例如,在英特尔服务器的最新几代产品中(Cascade Lake 2019年、Ice Lake 2021年、Sapphire Rapids 2023年),处理器生成的内存流量分别是内存互连带宽的2.98倍、3.31倍和4.5倍;在AMD Genoa(2023年)中,这一比例高达9.37倍。这些数据表明,传统内存架构已无法满足现代处理器的需求。

  5. 分层内存架构的兴起及其对内存管理的影响
    作者指出,传统内存架构的扩展限制催生了分层内存架构。这种架构除了传统的DDR附接内存外,还通过替代的内存互连(如Compute Express Link, CXL)向处理器暴露新的缓存一致性内存(cache-coherent memory)(引用[10, 32, 35, 54, 62])。这种新架构提供了额外的内存带宽,但也带来了更高的访问延迟。分层内存架构的出现重新激发了对内存管理的兴趣,因为页面在不同内存层之间的放置(page placement)对应用性能至关重要。

  1. 在文章《Tiered Memory Management: Access Latency is the Key!》的“1 Introduction”(引言)部分的第二段,作者进一步探讨了当前分层内存管理研究的现状,指出其局限性,并为本文提出的新方法“Colloid”提供了动机依据。以下是对第二段内容的详细解读:

  2. 当前分层内存管理研究的进展
    作者首先提到,针对分层内存架构的内存管理近期已有许多研究(引用[1, 12, 24, 29, 35, 48, 60, 61]),这些工作在访问跟踪(access tracking)、页面迁移(page migration)和动态页面大小确定(dynamic page size determination)等方面提出了创新机制。这些机制旨在优化页面在不同内存层之间的分配,以提升性能。
  3. 现有方法的共同点及其隐含假设
    尽管这些研究在技术细节上有所创新,但作者指出它们都采用了相同的页面放置算法:将尽可能多的“热页面”(hottest pages,即访问频率最高的页面)打包到默认层(default tier,即硬件指定访问延迟最低的内存层),其余页面则放置在替代层(alternate tiers)。这种策略基于一个核心隐含假设:即使默认层承载了最多的热页面,其访问延迟(memory access latency)仍然低于替代层。
  4. 假设与现实的脱节
    作者强调,这一假设与实际情况相去甚远。在计算机体系结构领域,已知当存在多个并发内存请求(multiple in-flight requests)时,内存访问延迟可能远高于硬件指定的无负载延迟(unloaded latency),即使内存互连带宽尚未饱和(引用[13, 42-44, 58])。这种现象被称为“内存互连竞争”(memory interconnect contention,见第3节)。作者通过实验表明,在这种竞争状态下,默认层的访问延迟可能显著膨胀。
  5. 现有方法的性能问题
    作者展示了实验结果:在中等负载下,默认层的访问延迟可能膨胀至替代层延迟的2.5倍;在这种情况下,最先进的内存分层系统(state-of-the-art memory tiering systems)的性能可能比最优性能低2.3倍(详见第2节)。这表明,现有方法在内存互连竞争场景下的页面放置策略是次优的,无法充分利用分层内存架构的潜力。
  6. 引入Colloid的动机
    基于上述问题,作者提出了“Colloid”,一种新的内存管理机制,其核心原则是平衡各层的访问延迟(balancing access latencies)。Colloid通过创新的每层访问延迟测量机制和页面放置算法,决定每个层应放置的页面集合,以实现延迟平衡,从而提升性能。作者提到,Colloid已与三种最先进的内存分层系统(HeMem、TPP 和 MEMTIS)集成,并在多种工作负载下验证了其接近最优的性能。

  1. 在文章《Tiered Memory Management: Access Latency is the Key!》的“1 Introduction”(引言)部分的第三段,作者详细阐述了Colloid的核心设计理念——平衡访问延迟的原则(principle of balancing access latencies),并解释了这一原则如何为分层内存管理提供了一种统一的方法。以下是对第三段内容的详细解读:

  2. Colloid的核心原则:平衡访问延迟
    作者介绍,Colloid是一种分层内存管理机制,其核心理念是将页面放置在不同内存层之间,以平衡各层的平均(负载下的)访问延迟(average loaded access latencies)。这一原则源于一个简单观察:将更多热页面(hot pages)放置在访问延迟较低的层可能会增加该层的延迟,同时降低其他层的延迟,从而使各层延迟更趋于平衡。尽管如此,这种调整会减少整体平均内存访问延迟(overall average memory access latency),这是Colloid追求的目标。
  3. 为何减少平均访问延迟重要
    作者进一步解释了这一观察的重要性:每个处理器核心能够同时处理的内存请求数量(in-flight memory requests)是有限的,由硬件缓冲区大小决定(详见第3节)。因此,最小化平均内存访问延迟可以直接最大化内存访问吞吐量(memory access throughput),进而提升应用级性能(application-level performance)。这为Colloid的设计提供了理论依据。
  4. 统一方法的优势之一:自然适应无负载延迟
    作者指出,平衡访问延迟的原则提供了一种统一的内存管理方法。首先,它自然捕捉了各层的无负载延迟(unloaded latency)。例如,如果默认层(default tier)的负载访问延迟低于替代层(alternate tiers),平衡延迟的原则会要求增加默认层的访问比例(fraction of accesses),这与现有系统将热页面放置在默认层的策略一致。因此,在无负载或低竞争场景下,Colloid的行为与现有方法兼容。
  5. 统一方法的优势之二:捕捉内存互连竞争
    其次,这一原则能够捕捉内存互连竞争的现象,即使内存带宽远未饱和(far from saturated)。作者提到,内存互连竞争可能发生在CPU到内存数据路径的任何环节(例如内存控制器排队),导致对应层的访问延迟增加。Colloid通过实时测量负载延迟并据此调整页面放置,能够自动适应这种竞争状态,而无需依赖带宽饱和的假设。这是对现有方法的显著改进,因为后者往往忽略了非饱和状态下的延迟膨胀。
  6. 从理论到实践的过渡
    最后,作者暗示,基于平衡访问延迟的内存管理改变了分层内存管理问题的核心结构(详见后续章节)。这为Colloid的具体实现机制(如延迟测量和页面放置算法)铺平了道路,表明其不仅是一个理论原则,还能转化为实际可行的解决方案。

第五段:Colloid的兼容性与广泛适用性

  1. 第四段:内存管理问题的结构变化与Colloid的创新

  2. 问题结构的变化
    作者指出,基于平衡访问延迟原则的内存管理改变了分层内存管理问题的核心结构。传统方法认为将尽可能多的热页面(hot pages)打包到默认层(default tier)是最优的,但Colloid表明,在某些情况下,将热页面放置到替代层(alternate tier)可能提升应用性能。这是因为默认层的访问延迟在竞争条件下可能高于替代层,打破了传统假设。
  3. Colloid的创新方向
    为实现这一原则,Colloid在两个方面进行了创新:
    • 延迟测量机制:需要新的方法来精确测量每层的内存访问延迟(memory access latency),以捕捉负载条件下的动态变化。

    • 页面放置算法:需要新的算法,根据延迟测量结果决定每个层放置的页面集合,而非简单地将热页面集中于默认层。
      作者提到,Colloid展示了现代服务器在CPU到内存的数据路径中存在可利用的观测点(vantage points),能够以低开销测量每层的队列占用(queue occupancy)和请求到达率(request arrival rates),并结合“小’s Law”(小’s定律)实现细粒度的延迟测量。


    •  
  4. 页面放置算法的设计
    Colloid的页面放置算法以每层访问延迟和每页面访问跟踪信息(per-page access tracking information)为输入,基于平衡访问延迟的原则,高效决定哪些热页面和冷页面应放置在各层。这种方法避免了传统方法的贪婪策略(greedy placement),实现了更动态和智能的分配。
  5. 兼容多种架构
    作者强调,Colloid的设计适用于任何缓存一致性分层内存架构(cache-coherent tiered memory architecture),只要不同层的内存通道不共享(do not share memory channels)。这包括本地DDR附接内存(local DDR-attached memory)、通过处理器互连暴露的远程插槽内存(remote socket memory)、CXL附接内存(CXL-attached memory)以及高带宽内存(High Bandwidth Memory)(引用[19, 37])。
  6. 与现有机制的集成
    Colloid与现有的访问跟踪、页面迁移和页面大小确定机制兼容,这使其能够轻松集成到现有内存分层系统中。作者通过将Colloid与三种最先进的系统——HeMem [48]、TPP [35] 和 MEMTIS [29]——集成,验证了其适应性。
  7. 广泛的实验验证
    作者描述了对Colloid的评估,覆盖了多种静态和时变工作负载(time-varying workloads),包括不同的内存互连竞争程度、核心数量、对象大小、访问延迟以及读写特性。在所有场景下,Colloid使底层系统实现了接近最优的性能(near-optimal performance),且不会影响系统在时变工作负载下的收敛时间(convergence time)。

2--2.1

详细解读

  1. 研究对象和目标
    • 作者明确表示,这一节将研究三种最先进的内存分层系统:HeMem [48]、TPP [35] 和 MEMTIS [29]。

    • 目标是通过实验证明以下两点:
      • 在多个并发内存请求(multiple in-flight memory requests)的现实场景下,默认层的访问延迟可能高达其无负载延迟(unloaded latency)的5倍。这一现象被定义为“内存互连竞争状态”(memory interconnect contention regime,具体定义见第3.1节)。

      • 在此状态下,现有系统因坚持将热页面(hot pages)尽可能打包到默认层,导致性能远低于最优,具体表现为HeMem、TPP 和 MEMTIS的性能分别比最优低2.3倍、2.36倍和2.46倍。
  2. 默认层延迟膨胀的现象
    • 作者指出,在实验设置中,默认层的延迟在内存互连竞争状态下可膨胀至替代层(alternate tier)延迟的2.4倍。

    • 基于真实CXL硬件的延迟数据(引用[54, 62]),如果默认层延迟增加5倍,则其延迟可能高达替代层的2.5倍。这一发现挑战了现有系统的一个核心假设:默认层即使服务于热页面,其延迟仍低于替代层。
  3. 现有系统的页面放置策略及其问题
    • 现有系统(HeMem、TPP、MEMTIS)的共同策略是将尽可能多的热页面放置在默认层,这一策略在无竞争或低负载时有效,但在内存互连竞争状态下变得次优。

    • 作者通过实验表明,在竞争状态下,这种策略导致性能显著下降(最高达2.46倍低于最优),原因是默认层的高延迟未被充分考虑,页面放置未能动态适应实际负载条件。
  4. 为后续实验铺垫
    • 作者提到,这些观察将在第2节的实验中详细展示(具体在第2.2节),以量化现有系统的性能差距,并为Colloid的设计提供数据支持。

    • 通过揭示现有方法的不足,这部分内容为Colloid的提出奠定了动机基础,即需要一种能够根据实际访问延迟动态调整页面放置的机制。

2.1 Experimental Setup 内容概述

作者使用双插槽服务器搭建了一个分层内存架构的实验环境,其中一个插槽的本地内存作为默认层(default tier),另一个插槽的远程内存作为替代层(alternate tier)。通过GUPS工作负载(一种标准内存访问基准)和可控的内存竞争(memory antagonist),作者测试了现有系统在不同内存互连竞争强度下的性能表现。实验设计旨在突出默认层的延迟膨胀及其对性能的影响。


详细解读

1. 硬件配置

  • 服务器类型
    • 使用双插槽服务器(dual-socket server),每个插槽配备Intel Xeon Platinum 8362 CPU。

    • 每个CPU有32个核心,每核心1.25MB L2缓存,48MB最后一级缓存(LLC,Last Level Cache),以及8个3200 MHz DDR4内存通道,每个通道连接一个DIMM(内存模块)。


    •  

  • 内存带宽
    • 每个插槽的理论最大带宽为8通道 × 3200 MHz = 205 GB/s(计算基于DDR4的带宽公式)。

    • 插槽间通过UPI(Ultra Path Interconnect)链接,理论最大带宽为75 GB/s(单向)。


    •  

  • 内存层定义
    • 默认层(Default Tier):使用运行处理器的插槽的本地附接内存,容量32GB,无负载延迟(unloaded latency)为70纳秒。

    • 替代层(Alternate Tier):使用另一插槽的远程附接内存,容量96GB,无负载延迟为135纳秒。

    • 实验仅使用一个插槽的处理器,另一个插槽仅提供远程内存,形成明确的分层架构。


    •  

  • 设计意图
    • 这种配置模拟了分层内存系统,其中默认层具有较低的无负载延迟(70ns vs. 135ns),但容量较小(32GB vs. 96GB),符合现代分层内存(如CXL)的特性。


    •  


  •  

2. 工作负载设计

  • GUPS基准
    • 使用GUPS(Giga Updates Per Second)工作负载,来自HeMem [48],并根据实验环境进行了调整。

    • 工作集(working set)是一个72GB的虚拟连续缓冲区(virtually contiguous buffer)。

    • 热集(Hot Set):从中随机选择24GB区域作为热集,热集大小适合默认层容量(32GB),但整个工作集(72GB)超出默认层容量,需分层管理。


    •  

  • 访问模式
    • 核心1-15(共15个线程)运行GUPS任务,每个线程读写(读写比1:1)一个随机选择的64字节对象。

    • 访问概率:90%概率访问热集中的对象,10%概率访问整个工作集(包括冷集)。

    • 这种概率分布模拟了现实应用中的“热-冷”访问模式。


    •  

  • 辅助线程
    • 核心31-32用于采样和迁移线程(sampling and migration threads),这是内存分层系统(如HeMem、TPP、MEMTIS)实现页面管理的必要部分。

    • 不超额分配CPU核心(no oversubscription),以避免评估CPU开销(已在[29, 48]中研究过),聚焦内存性能。


    •  


  •  

3. 内存互连竞争的生成与控制

  • 研究重点
    • 实验聚焦默认层的内存互连竞争,因为替代层的竞争不会打破“默认层延迟低于替代层”的假设(现有系统在此场景下已有理想页面放置)。


    •  

  • 内存竞争者(Memory Antagonist)
    • 在核心16-30上运行一个内存竞争者,生成顺序的1:1读写内存流量,目标是固定在默认层的500MB缓冲区。

    • 这种方法参考了先前研究(如[2, 3, 8, 58]),用于可控地引入竞争。


    •  

  • 竞争强度定义
    • 通过调整竞争者使用的核心数控制竞争强度:
      • 0×强度:0核心,带宽使用0%。

      • 1×强度:5核心,带宽使用51%。

      • 2×强度:10核心,带宽使用65%。

      • 3×强度:15核心,带宽使用70%。


      •  

    • 这些百分比是竞争者在隔离运行时的带宽使用率,实际实验中与GUPS竞争带宽。


    •  

  • 竞争持续性
    • 在实验全程生成恒定的竞争强度,以研究稳态行为(steady-state behavior),并深入分析结果。动态竞争将在第5节另行研究。


    •  


  •  

4. 实验方法与测量

  • 稳态测量
    • 给予足够时间让每个系统达到稳态(steady-state),然后测量应用吞吐量(application throughput),即GUPS的每秒更新次数。


    •  

  • 最优性能基准(Best-Case)
    • 通过手动放置页面确定最优性能:
      • 使用Linux mbind API,将热集的0-100%(步长10%)放置在默认层,剩余热集和随机冷页面填满默认层容量,剩余页面置于替代层。

      • 测试所有配置,记录最高吞吐量作为“最佳情况应用吞吐量”(best-case application throughput)。


      •  

    • 这种方法提供了一个理论上限,用于对比现有系统的性能差距。

2.2 内容概述

本节基于“2.1 Experimental Setup”中描述的实验环境,通过测量稳态吞吐量和带宽使用情况,展示了内存互连竞争对现有系统性能的负面影响。作者进一步分析了默认层访问延迟的膨胀和页面放置策略的固化如何导致性能远低于最优,为提出Colloid提供了直接证据。


详细解读

1. 实验结果:吞吐量表现

  • 图表支持
    • 图1(Figure 1)展示了不同内存互连竞争强度(0×、1×、2×、3×)下,各系统(HeMem、TPP、MEMTIS)与最佳情况(best-case)的稳态吞吐量对比。每组数据为3次运行的平均值,误差条显示最小和最大值。


    •  

  • 无竞争场景(0×强度)
    • HeMem、TPP 和 MEMTIS 的吞吐量分别达到最佳情况的98.5%、95.4% 和 89.9%(即差距为1.5%、4.6%、10.1%)。

    • MEMTIS 表现稍差,原因是它根据访问跟踪信息自动决定页面大小(4KB 或 2MB),但在该工作负载下将2MB页面拆分为4KB页面并无益处,且拆分决策发生在稳态前,无法及时合并(coalesce),扫描虚拟地址空间的机制效率低下。


    •  

  • 竞争场景(1×到3×强度)
    • 随着竞争强度增加,各系统吞吐量与最佳情况的差距显著扩大:
      • 1×强度:HeMem 低1.21倍,TPP 低1.35倍,MEMTIS 低1.41倍。

      • 3×强度:差距增至HeMem 2.3倍,TPP 2.36倍,MEMTIS 2.46倍。


      •  

    • 结论:即使在中等竞争(1×)下,现有系统性能已明显偏离最优;在高竞争(3×)下,差距尤为显著。


    •  


  •  

2. 延迟膨胀的分析

  • 图表支持
    • 图2(a)展示了竞争强度下默认层和替代层的平均访问延迟,使用处理器缓存和主代理(CHA,Caching and Home Agent)的硬件计数器测量(详见第3.1节)。


    •  

  • 延迟变化
    • 随着竞争强度从1×增至3×,默认层访问延迟分别增加2.5倍、3.8倍和5倍。

    • 在实验设置中,这导致默认层延迟超过替代层延迟的1.2倍、1.8倍和2.4倍。

    • 延迟增加的原因是内存控制器请求排队(queueing),即使带宽未饱和(详见第3.1节)。


    •  

  • 假设失效
    • 现有系统假设“默认层尽管服务热页面,延迟仍低于替代层”,但图2(a)证明这一假设在竞争状态下不成立。例如,3×强度下默认层延迟(70ns × 5 = 350ns)远超替代层(135ns),表明传统策略已失效。


    •  


  •  

3. 页面放置策略的问题

  • 图表支持
    • 图2(b)展示了最佳情况和各系统在不同竞争强度下,GUPS工作负载的默认层与替代层带宽使用比例,使用Intel的内存带宽监控(MBM,Memory Bandwidth Monitoring)功能测量。


    •  

  • 最佳情况的动态调整
    • 最佳情况中,随着竞争强度从1×到3×增加,默认层带宽占比从25%降至4.5%和4%,表明越来越多热页面被放置到替代层。

    • 直观解释:当默认层延迟超过替代层时,将整个热集(hot set)置于默认层不再最优,动态调整至替代层可提升性能。


    •  

  • 现有系统的固化策略
    • HeMem、TPP 和 MEMTIS 的默认层带宽占比始终高(分别超90%、75%、85%),与竞争强度无关。

    • 这表明它们始终将热集大部分置于默认层,忽视了竞争导致的延迟变化,是吞吐量偏离最优的根本原因。


    •  


  •  

4. 性能与延迟的理论联系

  • 吞吐量公式
    • 作者引用公式:每个核心的吞吐量 T=N⋅64L T = \frac{N \cdot 64}{L} T=LN⋅64​(引用[55, 58]),其中:
      • N N N:每个核心的在途请求数(in-flight requests),由硬件缓冲区决定;

      • 64 64 64:每请求64字节(1缓存行);

      • L L L:访问延迟。


      •  

    • 延迟 L L L 增加直接降低吞吐量 T T T。


    •  

  • 实验验证
    • 从0×到3×强度,默认层延迟增加约3.5倍(70ns 到 245-350ns)。

    • 相应地,HeMem、TPP 和 MEMTIS 的吞吐量分别降低3.42倍、3.39倍和3.29倍,与延迟增幅一致,证实延迟是性能下降的主因。


    •  


  •  

关键发现

  1. 延迟膨胀的普遍性
    • 即使在中等竞争(1×,带宽51%)下,默认层延迟已超替代层,表明内存互连竞争在现实负载中普遍存在。


    •  

  2. 策略的次优性
    • 现有系统固守“贪婪”放置热页面到默认层的策略,未能适应竞争状态下的延迟变化,导致性能显著低于最佳情况(最高差距2.46倍)。


    •  

  3. 改进的必要性
    • 数据表明,需要一种动态调整页面放置的机制,以应对实际延迟,而非依赖无负载延迟的假设。


3 Colloid 开头到 3.1 之间的内容概述

这一部分作为Colloid设计的开场白,概述了其目标和方法论。作者首先说明Colloid是一个新的分层内存管理机制,旨在解决第2节中揭示的现有系统缺陷。随后,作者简要介绍了Colloid的设计结构,包括其核心原则(将在第3.1节阐述)和实现组件(将在第3.1和3.2节详细描述),并定义了实验中使用的分层内存架构模型。


详细解读

1. Colloid的引入与目标

  • 背景与动机
    • 作者以“我们现在呈现Colloid的设计”(We now present the Colloid design)开篇,直接承接第2节的动机分析。第2节展示了现有系统(如HeMem、TPP、MEMTIS)在内存互连竞争下的性能问题,例如默认层延迟膨胀和页面放置策略的次优性。Colloid旨在解决这些问题。


    •  

  • 总体目标
    • Colloid被描述为一种“分层内存管理机制”(tiered memory management mechanism),其目标是优化页面放置,以提升应用性能,尤其是在内存互连竞争场景下。

    • 它通过重新思考页面放置策略,超越现有系统“将热页面打包到默认层”的固有假设。


    •  


  •  

2. Colloid的设计结构

  • 设计方法
    • 作者提到,Colloid的设计分为两个主要部分,将在后续小节详细展开:
      • 核心原则:第3.1节将讨论“平衡访问延迟的原则”(principle of balancing access latencies),这是Colloid的理论基础。

      • 实现机制:包括高效的每层访问延迟测量(第3.1节)和动态页面放置算法(第3.2节),将原则转化为实践。


      •  


    •  

  • 逻辑推进
    • 首先介绍核心理念(第3.1节),说明为何访问延迟是关键,并如何指导页面放置。

    • 然后描述具体实现(第3.1和3.2节),包括测量延迟的技术和基于延迟调整页面放置的算法。


    •  


  •  

3. 分层内存架构的模型

  • 图表支持
    • 图3(Figure 3)展示了实验中考虑的分层内存架构,具有两个内存层(default tier 和 alternate tier),为后续讨论提供上下文。


    •  

  • 架构特征
    • 统一地址空间:所有层的内存都在主机物理地址空间中,CPU核心通过加载/存储指令(load/store instructions)访问,具有缓存一致性和相同内存一致性模型。

    • 默认层定义:具有最小无负载延迟(smallest unloaded latency)的层称为默认层(default tier)。

    • 替代层定义:其他层统称为替代层(alternate tiers)。

    • 独立通道:每层通过独立的内存控制器访问,不共享内存通道。


    •  

  • 适用范围
    • 该模型适用于现有分层内存架构,包括:
      • 本地DDR附接内存(default tier)。

      • 通过处理器互连暴露的远程插槽内存、CXL附接内存或高带宽内存(alternate tiers)。


      •  

    • 这种通用性确保Colloid设计具有广泛适用性。


    •  


  •  

4. 时间假设

  • 时间量子(Quantum)
    • 为简化讨论,作者假设Colloid内的所有机制(访问跟踪、延迟测量、页面放置等)以固定时间间隔(称为“quantum”)周期性执行。

    • 在第4节中,作者提到Colloid可适配其他触发机制(如页面故障),表明这一假设仅为叙述方便,不限制其灵活性。


    •  


  •  

关键要点

  1. 问题导向
    • Colloid直接针对第2节中发现的现有系统缺陷(延迟膨胀和次优页面放置),提出了一种新的管理机制。


    •  

  2. 结构清晰
    • 设计分为原则(第3.1节)和实现(第3.1和3.2节),逻辑上从理论到实践逐步展开。


    •  

  3. 架构通用
    • 定义的分层内存模型与现代硬件(如CXL、HBM)兼容,为Colloid的广泛应用奠定基础。

3.1 内容概述

本节首先提出了平衡访问延迟的原则,解释其理论基础及其如何统一地指导分层内存的页面放置。随后,作者描述了Colloid如何利用现代处理器的硬件计数器测量每层的访问延迟,为动态页面放置提供数据支持。这一原则和技术共同构成了Colloid的核心创新点。


详细解读

1. 平衡访问延迟的原则

  • 原则定义
    • 页面放置应调整以平衡各内存层的平均访问延迟(average access latencies)。

    • 核心思想:通过动态分配页面,使默认层(default tier)和替代层(alternate tiers)的负载延迟(loaded latency)趨于相等,从而优化整体性能。


    •  

  • 延迟定义
    • 无负载延迟(Unloaded Latency):系统中仅有一个在途内存请求时的延迟。

    • 负载延迟(Loaded Latency):多个并发请求时的延迟,受内存互连竞争影响。

    • 内存请求:核心发出且未命中所有缓存层(cache hierarchy)的访问,由默认层或替代层服务。


    •  

  • 内存互连竞争的影响
    • 带宽饱和:当互连带宽饱和时,请求排队导致延迟增加(引用[13, 14, 21, 25, 26, 39, 40, 42-45, 51-54])。带宽饱和点因读写比例变化而异(读重或写重可相差1.75倍),可能远低于理论最大值(低至2.5倍,引用[54])。

    • 非饱和竞争:即使带宽未饱和,DRAM模块内部的层级竞争(如银行间负载不均或访问缺乏局部性)也会导致内存控制器排队,延迟增加(引用[13, 25, 26, 39, 40, 42-45, 51-53, 58])。

    • 统称为“内存互连竞争”(memory interconnect contention),即延迟超过无负载值的状态。


    •  

  • 原则的具体指导
    • 定义页面访问概率(access probability):某时间量子内某页面的请求数除以总请求数。

    • 令 LD L_D LD​ 和 LA L_A LA​ 分别为默认层和替代层的平均访问延迟,p p p 为默认层中页面的访问概率总和。

    • 原则建议:
      • 若 LD<LA L_D < L_A LD​<LA​:增加 p p p(如将更多热页面置于默认层)。

      • 若 LD>LA L_D > L_A LD​>LA​:减少 p p p(如将更多热页面置于替代层)。

      • 若 LD=LA L_D = L_A LD​=LA​:无需调整页面放置。


      •  


    •  

  • 理论依据
    • 性能与吞吐量:内存密集型应用的性能受内存访问吞吐量(memory access throughput)限制。

    • 吞吐量公式:每个核心的最大在途请求数 N N N(受硬件缓冲区如Line Fill Buffers限制,引用[55, 58])有限,吞吐量 T=N⋅64L T = \frac{N \cdot 64}{L} T=LN⋅64​(64字节为每请求大小)。

    • 平均延迟:整体平均访问延迟为 p⋅LD+(1−p)⋅LA p \cdot L_D + (1-p) \cdot L_A p⋅LD​+(1−p)⋅LA​。

    • 优化目标:最小化平均延迟以最大化吞吐量。当 LD<LA L_D < L_A LD​<LA​ 时,增加 p p p 降低平均延迟;当 LD>LA L_D > L_A LD​>LA​ 时,减少 p p p 降低平均延迟;当 LD=LA L_D = L_A LD​=LA​ 时为均衡点(equilibrium point)。


    •  

  • 统一的指导方法
    • 捕捉无负载延迟:纳入 LD L_D LD​ 和 LA L_A LA​,若默认层延迟较低,则倾向于更多页面置于默认层,与现有系统一致。

    • 捕捉带宽特性:高带宽层能承受更高负载而延迟接近无负载值,反之亦然。带宽饱和时延迟增加被自动捕捉。

    • 捕捉非饱和竞争:数据路径中任一点的排队(如内存控制器)导致延迟增加,直接影响页面放置决策。

    • 多层扩展:对于多于两层的架构,若延迟不等,将热页面优先置于延迟最低层,递归调整,直至所有层延迟均衡。


    •  


  •  

2. 访问延迟测量机制

  • 硬件支持
    • 现代Intel和AMD处理器提供硬件计数器,用于低开销测量每层访问延迟(引用[4, 17, 18, 20])。作者聚焦Intel处理器。


    •  

  • 延迟测量的重点
    • 内存访问吞吐量主要取决于读请求延迟,即使写请求也因缓存未命中生成读请求(store instructions触发读后异步写回,引用[28, 58])。因此,只需测量读请求延迟。


    •  

  • 测量点:CHA
    • CHA作用:缓存和主代理(Caching and Home Agent)抽象内存层,处理缓存一致性,分布于多个与核心共存的片(slices)。

    • 请求流程:L1/L2缓存未命中后,请求基于物理地址送至对应CHA片,查询L3缓存,未命中则排队并转发至默认层或替代层,直至服务完成。


    •  

  • 计数器测量
    • CHA提供每请求类型(读/写)和每层(DDR、远程插槽、CXL、HBM)的队列占用(queue occupancy)和请求到达率(request arrival rates)计数器,时间粒度可达1微秒,远低于页面放置决策周期。

    • 定义:
      • OD,OA O_D, O_A OD​,OA​:默认层和替代层请求的平均队列占用。

      • RD,RA R_D, R_A RD​,RA​:默认层和替代层请求的平均到达率(量子内请求数除以量子时长)。

      • p=RDRD+RA p = \frac{R_D}{R_D + R_A} p=RD​+RA​RD​​:默认层访问概率总和。


      •  


    •  

  • 延迟计算
    • 利用Little’s Law(小’s定律):LD=ODRD L_D = \frac{O_D}{R_D} LD​=RD​OD​​,LA=OARA L_A = \frac{O_A}{R_A} LA​=RA​OA​​。

    • 适用性:Little’s Law适用于队列不无界增长的系统,无需假设到达、服务行为或调度策略,测量值为CHA到内存的平均延迟(引用[58]验证)。

    • 忽略部分:CPU到CHA的延迟(约5ns,占默认层70ns的7%)较小,在竞争下占比更低,可忽略。


    •  

  • 平滑处理
    • 对队列占用和到达率应用指数加权移动平均(EWMA,Exponentially Weighted Moving Averaging),平滑噪声,略微牺牲工作负载变化的反应时间以换取稳定性。

详细解读

1. 算法概述

  • 输入与目标
    • 输入:每层访问延迟(LD,LA L_D, L_A LD​,LA​)和每页面访问跟踪信息(access tracking information)。

    • 目标:根据第3.1节的平衡访问延迟原则,调整页面放置,使默认层和替代层的平均延迟趋于相等。


    •  

  • 伪代码(Algorithm 1)

    plaintext

     

    WrapCopy

     

    [Input parameter] M: Migration limit per-quantum (in bytes) Every quantum:
    1: O_D, R_D: Measured default tier queue occupancy, rate
    2: O_A, R_A: Measured alternate tier queue occupancy, rate
    3: L_D ← O_D / R_D and L_A ← O_A / R_A
    4: p ← R_D / (R_D + R_A)
    5: if L_D < L_A then
    6: mode ← promotion
    7: else
    8: mode ← demotion
    9: Δp ← COMPUTESHIFT(p, L_D, L_A)
    10: S ← FINDPAGES(mode, Δp, min(Δp(R_D + R_A), M))
    11: if mode is promotion then
    12: promote pages in S from alternate to default
    13: else
    14: demote pages in S from default to alternate

     
    • 流程
      1. 计算延迟:使用第3.1节的Little’s Law(LD=OD/RD L_D = O_D / R_D LD​=OD​/RD​, LA=OA/RA L_A = O_A / R_A LA​=OA​/RA​)。

      2. 计算当前访问概率:p=RD/(RD+RA) p = R_D / (R_D + R_A) p=RD​/(RD​+RA​)。

      3. 决定迁移方向:若 LD<LA L_D < L_A LD​<LA​,提升(promotion)页面到默认层;否则,降级(demotion)到替代层。

      4. 计算迁移量(Δp \Delta p Δp):调用子函数 COMPUTESHIFT。

      5. 选择页面:调用 FINDPAGES,在迁移限制内选择页面集合 S S S。

      6. 执行迁移:根据模式提升或降级页面。


      7.  


    •  

  • 运行频率
    • 每时间量子(quantum)执行一次,周期性调整页面放置。


    •  


  •  

2. 计算期望迁移量(Desired Shift in Access Probability)

  • 挑战
    • 现有系统简单迁移尽可能多的热页面到默认层,而Colloid需找到延迟均衡点(equilibrium point),可能涉及将热页面分散到两层。

    • 迁移过多页面可能导致震荡(oscillations),过少则收敛慢。


    •  

  • 子算法(Algorithm 2)

    plaintext

     

    WrapCopy

     

    /* Initialize p_lo ← 0 and p_hi ← 1 */ 1: procedure COMPUTESHIFT(p, L_D, L_A)
    2: if |L_D - L_A| < δ · L_D then return 0
    3: else
    4: if L_D < L_A then p_lo ← p else p_hi ← p
    5: if p_hi < p_lo + ε then
    6: if L_D < L_A then p_hi ← 1 else p_lo ← 0
    7: return | (p_lo + p_hi) / 2 - p |

     
    • 水印机制
      • plo p_{lo} plo​ 和 phi p_{hi} phi​ 分别是访问概率的下界和上界,初始化为0和1。

      • p∗ p^* p∗:均衡点,即 LD=LA L_D = L_A LD​=LA​ 时的理想 p p p。

      • 目标:调整 p p p 收敛到 p∗ p^* p∗,并保持 plo≤p,p∗≤phi p_{lo} \leq p, p^* \leq p_{hi} plo​≤p,p∗≤phi​。


      •  


    •  

  • 运行逻辑
    • 若 ∣LD−LA∣<δ⋅LD |L_D - L_A| < \delta \cdot L_D ∣LD​−LA​∣<δ⋅LD​(δ\deltaδ 为小阈值,如0.05),延迟已近似均衡,返回 Δp=0 \Delta p = 0 Δp=0。

    • 否则:
      • 若 LD<LA L_D < L_A LD​<LA​:plo←p p_{lo} \leftarrow p plo​←p,表示当前 p p p 是下界。

      • 若 LD>LA L_D > L_A LD​>LA​:phi←p p_{hi} \leftarrow p phi​←p,表示当前 p p p 是上界。

      • 检查水印间距:若 phi<plo+ε p_{hi} < p_{lo} + \varepsilon phi​<plo​+ε(ε\varepsilonε 为小阈值,如0.01),说明水印太近且未均衡,则重置(若 LD<LA L_D < L_A LD​<LA​ 则 phi←1 p_{hi} \leftarrow 1 phi​←1,否则 plo←0 p_{lo} \leftarrow 0 plo​←0)。

      • 计算 Δp \Delta p Δp:返回 ∣(plo+phi)/2−p∣ |(p_{lo} + p_{hi}) / 2 - p| ∣(plo​+phi​)/2−p∣,即当前 p p p 到水印中点的距离。


      •  


    •  

  • 图示(Figure 4)
    • 图4(a):静态工作负载下,p p p 逐渐收敛到 p∗ p^* p∗。

    • 图4(b):p p p 突变时,更新水印后收敛。

    • 图4(c):p∗ p^* p∗ 突变时,重置水印后收敛。


    •  

  • 动态适应
    • 水印动态调整确保算法应对访问模式或竞争变化(如 p p p 或 p∗ p^* p∗ 突变),通过二分法逐步缩小范围,收敛到均衡点。


    •  


  •  

3. 动态迁移限制(Dynamic Migration Limit)

  • 问题
    • 若 Δp \Delta p Δp 小且页面访问概率分散(如 Δp=0.01 \Delta p = 0.01 Δp=0.01,1000页每页概率0.00001),迁移大量页面会产生过多流量,引发震荡并损害性能。


    •  

  • 解决方案
    • 设置动态迁移限制:取 Δp(RD+RA) \Delta p (R_D + R_A) Δp(RD​+RA​)(期望扰动率)和静态限制 M M M(现有系统的最大迁移率参数)的最小值。

    • 逻辑:若迁移流量超过期望扰动率,则不执行,避免不必要开销。


    •  


  •  

4. 选择页面(Selecting Pages to Migrate)

  • 方法
    • 根据 Δp \Delta p Δp 和迁移限制,利用底层系统的访问跟踪机制(如频率计数或时间-to-fault)选择页面集合 S S S。

    • 约束:
      1. S S S 的访问概率总和 ≤ Δp \Delta p Δp。

      2. S S S 的总字节数不超过迁移限制或目标层可用容量。


      3.  


    •  

  • 实现细节
    • 具体选择方法因系统而异,在第4节详细描述(如HeMem用频率bin,TPP用时间-to-fault)。


  •  
内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
数据集一个高质量的医学图像数据集,专门用于脑肿瘤的检测和分类研究以下是关于这个数据集的详细介绍:该数据集包含5249张脑部MRI图像,分为训练集和验证集。每张图像都标注了边界框(Bounding Boxes),并按照脑肿瘤的类型分为四个类别:胶质瘤(Glioma)、脑膜瘤(Meningioma)、无肿瘤(No Tumor)和垂体瘤(Pituitary)。这些图像涵盖了不同的MRI扫描角度,包括矢状面、轴面和冠状面,能够全面覆盖脑部解剖结构,为模型训练提供了丰富多样的数据基础。高质量标注:边界框是通过LabelImg工具手动标注的,标注过程严谨,确保了标注的准确性和可靠性。多角度覆盖:图像从不同的MRI扫描角度拍摄,包括矢状面、轴面和冠状面,能够全面覆盖脑部解剖结构。数据清洗与筛选:数据集在创建过程中经过了彻底的清洗,去除了噪声、错误标注和质量不佳的图像,保证了数据的高质量。该数据集非常适合用于训练和验证深度学习模型,以实现脑肿瘤的检测和分类。它为开发医学图像处理中的计算机视觉应用提供了坚实的基础,能够帮助研究人员和开发人员构建更准确、更可靠的脑肿瘤诊断系统。这个数据集为脑肿瘤检测和分类的研究提供了宝贵的资源,能够帮助研究人员开发出更准确、更高效的诊断工具,从而为脑肿瘤患者的早期诊断和治疗规划提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值