2.26 notes on cxl

  1. 解耦架构设计
    提出通过CXL交换机将加速器与存储/内存设备分离,避免传统CSD和CM因硬件集成导致的量产难题。这一设计降低了设备定制化成本,提升了灵活性和可扩展性。
  2. 统一框架整合
    首次将计算存储(CS)和计算内存(CM)整合到同一架构中,利用CXL的高带宽和低延迟特性,减少数据移动开销,提升系统效率。
  3. 定量性能分析
    通过理论模型对比紧耦合与解耦架构的端到端延迟,表明解耦架构在性能损失可控(<20%)的前提下显著降低成本,为实际部署提供了理论支撑。
  • 论文仅基于理论计算和假设分析性能,缺乏原型系统或仿真实验的验证(如实际CXL链路延迟、加速器吞吐量测试)。
  • 改进:需构建实验平台(如FPGA原型或CXL仿真器),验证理论模型的准确性,尤其是大规模数据场景下的实际表现。
  1. 实现细节不足

    • 问题:对解耦架构的具体实现(如CXL交换机的调度算法、设备协同机制)描述模糊,未讨论潜在挑战(如通信拥塞、缓存一致性管理)。
    • 改进:补充架构实现细节,例如动态资源分配策略、故障恢复机制,并分析实际部署中的工程难题。

硬件成本:DRAM成本占服务器总成本的40-50%,但其利用率低(资源闲置问题突出)

传统内存池化技术(如内存分解)因高延迟(微秒级)和依赖页错误处理,无法满足云平台性能需求。CXL(Compute Express Link)标准通过负载/存储(load/store)语义提供纳秒级远程内存访问,为高性能内存池化提供了可能。

Non-Uniform Memory Access,也就是非统一内存访问架构

NUMA主要是为了解决多处理器系统中的内存访问延迟问题。在传统的SMP(对称多处理)系统中,所有CPU共享同一个内存控制器,访问内存的时间是均匀的,但随着CPU数量增加,总线竞争会变严重

而NUMA架构将内存分布在不同的节点上,每个节点有自己的本地内存,CPU访问本地内存更快,访问远程内存则较慢。

那本地NUMA节点应该是指某个CPU所在的NUMA节点,该节点直接连接的内存就是本地内存,访问延迟低。而远程NUMA节点则属于其他CPU组,访问延迟高。论文中提到Pond系统利用CXL技术实现内存池化,同时通过zNUMA节点将池内存映射为虚拟NUMA节点,这样可以优化内存分配,减少性能损失。

  • 本地NUMA节点(Local NUMA Node):每个CPU核心(或CPU插槽)直接连接的内存区域称为本地NUMA节点。访问本地内存的延迟最低(通常在几十纳秒级别)。
  • 远程NUMA节点(Remote NUMA Node):其他CPU核心的内存区域称为远程NUMA节点。访问远程内存需要通过系统总线或互联协议(如CXL),延迟较高(可能增加数十到数百纳秒)

在传统的**UMA(Uniform Memory Access,统一内存访问)**架构中,所有CPU共享单一内存控制器和内存总线。随着CPU核心数量增加,总线竞争会导致性能瓶颈。NUMA通过以下方式优化:

  1. 分布式内存:将内存分散到多个节点,每个节点由特定的CPU直接管理。
  2. 降低延迟:本地内存访问更快,减少总线争用。
  3. 扩展性:支持更大规模的多核系统(如服务器、数据中心)

通过模拟CXL增加的额外延迟(64ns和140ns),发现不同工作负载对延迟的敏感性差异显著

  • 43%的工作负载在池内存中性能损失<5%,但21%的工作损失>25%(图4)。
  • 生产负载(如Azure专有应用)因NUMA优化表现更好,仅部分受影响
    • 机器学习预测模型:基于硬件计数器(如内存访问模式、NUMA敏感度)训练模型,提前识别对延迟不敏感的工作负载,将其分配到池内存。
    • 动态分配策略:敏感型工作负载仍使用本地内存,非敏感型使用池内存,实现性能与成本的动态平衡。
  • 意义
    避免"一刀切"的池化策略,通过分类管理最大化资源利用率。

内存闲置(Memory Stranding) 是指在云服务器中,当 CPU 核心被完全分配给虚拟机(VM)后,剩余未分配的内存因无法被其他 VM 使用而浪费的现象。这种浪费源于云平台静态资源分配策略:VM 的 CPU 核心和内存通常被预分配到同一 NUMA 节点(非统一内存访问节点),导致当 CPU 核心用尽时,同一节点上的剩余内存无法跨节点共享。

  • 在虚拟化环境中,"将 CPU 核心分配给 VM"是指将物理服务器上的一个或多个 CPU 核心静态绑定给某个虚拟机(VM),确保该 VM 独占这些核心的计算能力。
  • 目的:通过独占分配,避免多个 VM 竞争同一 CPU 核心,从而保障性能(如低延迟、高吞吐量)和资源隔离性。
内存闲置的根源
  • 硬件配置不匹配:服务器设计时按平均需求配置 DRAM 与 CPU 核心比例,但实际负载可能偏离这一比例。

  • 静态绑定限制:VM 的 CPU 和内存必须绑定到同一 NUMA 节点,导致资源分配缺乏灵活性

  • 传统多处理器系统(如SMP,对称多处理)中,所有CPU通过共享总线访问内存。随着CPU数量增加,总线争用会导致性能瓶颈。

  • NUMA通过将系统划分为多个节点(Node),每个节点包含部分CPU和本地内存,降低全局资源争用,提升扩展性

  1. NUMA节点的组成

    • 本地内存(Local Memory)​:节点内部的物理内存。
    • CPU核心:属于该节点的处理器。
    • 远端内存(Remote Memory)​:其他节点的内存,通过高速互联(如AMD的Infinity Fabric、Intel的QPI)访问,但延迟高于本地内存。

访问速度差异

  • 本地内存访问:低延迟、高带宽
  • 远端内存访问:高延迟、带宽受限(可能降低性能)
  • 某个CPU核心所在的NUMA节点,称为该核心的本地节点。该CPU访问本地节点的内存时速度最快。
  • 重要性
    • 进程运行时,操作系统会优先分配本地节点的内存,减少跨节点访问的延迟。
    • 若进程需要跨节点访问内存(如本地节点内存不足),性能可能显著下降。

NUMA的典型应用场景

  1. 多路服务器:例如双路/四路服务器,每个CPU插槽对应一个NUMA节点。
  2. 高性能计算(HPC)​:需要大规模并行处理时,NUMA优化可减少内存访问延迟。
  3. 虚拟化与数据库:如VMware、MySQL等对内存延迟敏感的应用,需配置NUMA策略。
相关推荐
wubba lubba dub dub75010 小时前
第四十九周学习周报
人工智能·算法·机器学习
装不满的克莱因瓶10 小时前
学习使用 Python 机器学习工具 sklearn
人工智能·python·学习·机器学习·ai·agent·智能体
Omics Pro11 小时前
3种蛋白结构输入方式!已申报欧洲发明专利
数据库·人工智能·python·机器学习·plotly
Omics Pro13 小时前
「自兹以往」动物肠道微生物组
数据库·人工智能·机器学习·语言模型·自然语言处理
oddsand113 小时前
pgvector 三大相似度算法
人工智能·算法·机器学习
落羽的落羽15 小时前
【项目】JsonRpc框架——开发实现1(细节功能、字段定义、抽象层、具象层)
linux·服务器·网络·c++·人工智能·算法·机器学习
keykey6.15 小时前
卷积神经网络(CNN):让AI学会“看“
开发语言·人工智能·深度学习·机器学习
升鲜宝供应链及收银系统源代码服务15 小时前
升鲜宝AI助手 E-R 图与操作说明书(三)---升鲜宝生鲜配送供应链管理系统源代码服务
大数据·人工智能·机器学习·生鲜供应链源代码·供应链源代码出售·生鲜配送源代码服务·门店连锁系统源代码
keykey6.16 小时前
用 PyTorch 训练图像分类器:完整实战
开发语言·人工智能·深度学习·机器学习
小O的算法实验室17 小时前
2025年IEEE TASE,基于双层耦合平均场博弈的大规模智能体集成任务分配与轨迹规划
人工智能·算法·机器学习