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策略。
相关推荐
m0_7480385632 分钟前
NLP09-朴素贝叶斯问句分类(3/3)
人工智能·python·机器学习·自然语言处理·数据挖掘·nlp
喜-喜1 小时前
机器学习破局指南:零基础6个月系统训练计划
人工智能·机器学习
admin皮卡2 小时前
2.4 自动化评测答疑机器人的表现-大模型ACP模拟题-真题
前端·人工智能·机器学习
WangUnionpub6 小时前
【人工智能顶刊合集】CCF-A/B/C类推荐所有期刊目录,中科院1区审稿极速,81天录用!
数据库·人工智能·物联网·机器学习·网络安全·数据分析
luoganttcc6 小时前
介绍一下在自动驾驶 路径规划和 控制算法 详细一些
人工智能·机器学习·自动驾驶
神秘的土鸡6 小时前
本地部署 DeepSeek-R1大模型详细教程(桌面客户端美观UI)
人工智能·机器学习·自然语言处理·llama·ollama
奋进小青15 小时前
机器学习——需求预测+PCA+随机森林算法+shap可解释性分析+多模型性能对比
算法·随机森林·机器学习
IT猿手15 小时前
智能优化算法:雪橇犬优化算法(Sled Dog Optimizer,SDO)求解23个经典函数测试集,MATLAB
开发语言·前端·人工智能·算法·机器学习·matlab