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策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24735.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook~Anaconda3安装教程

一、下载anaconda&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 百度网盘通道&#xff0c;链接:https://pan.baidu.com/s/1gyVDG2p71neFXi8VwXgvEQ?pwdewn7提取码: ewn7 二、安装 1、右击安装软件选择【以管理员身份运行】&#xff0c;点击【Next】…

【运维】内网服务器借助通过某台可上外网的服务器实现公网访问

背景&#xff1a; 内网服务器无法连接公网,但是办公电脑可以连接内网服务器又可以连接公网。 安装软件 1、frp 2、ccproxy 配置 1、内网服务器 # 内网服务器启动frp服务配置文件参考vi frps.ini# frps.ini [common] bind_port 7000# 备注: bind_port端口可以随意配置。配置完…

php 对接mqtt 完整版本,订阅消息,发送消息

首先打开链接如何在 PHP 项目中使用 MQTT 根据文章让所用依赖安装一下&#xff1a; composer require php-mqtt/client 安装之后弄一个部署 之后在工具里边可以相应链接上 接下来是代码&#xff1a; /**** 订阅消息* return void* throws \PhpMqtt\Client\Exceptions\Confi…

(2.26 “详细分析示例“ 暴力+位运算 最长优雅子数组)leetcode 2401

a&b0说明a和b的每一位都是一个0和一个1 不存在两个均为1的位次 a|0a 0与任何数|都等于它本身 &#xff08;mask&#xff09;的作用&#xff1a; 担心两数的1在用一位导致mask覆盖了&#xff1f; 答&#xff1a;出现这种情况说明mask与nums j后就直接break 由&#xff1a;…

数据开发的简历及面试

简历 个人信息: 邮箱别写QQ邮箱, 写126邮箱/189邮箱等 学历>>本科及以上写,大专及以下不写 专业>>非计算机专业不写 政治面貌>>党员写, 群众不用写 掌握的技能: 精通 > 熟悉 > 了解 专业工具: 大数据相关的 公司: 如果没有可以写的>>金融服…

Git原理+使用(超详细)

Git初识 当我们写项目代码时&#xff0c;需要不断的更新版本&#xff0c;那么就需要一个东西去管理这些不同版本的文件—版本控制器。 目前最主流的版本控制器就是Git。它是一个可以记录工程的每一次改动和版本迭代的管理系统&#xff0c;同时方便多人协同作业。 &#xff0…

数据结构秘籍(一)线性数据结构

1.数组 数组&#xff08;Array&#xff09;是一种很常见的数据结构。它由相同类型的元素&#xff08;element&#xff09;组成&#xff0c;并且是使用一块连续的内存来存储。 我们直接可以利用元素的索引&#xff08;index&#xff09;计算出该元素对应的存储地址。 数组的特…

WiFi IEEE 802.11协议精读:IEEE 802.11-2007,6,MAC service definition MAC服务定义

继续精读IEEE 802.11-2007 6&#xff0c;MAC service definition MAC服务定义 6.1 MAC服务概述 6.1.1 数据服务 此服务为对等逻辑链路控制&#xff08;LLC&#xff09;实体提供交换MAC服务数据单元&#xff08;MSDU&#xff09;的能力。为支持此服务&#xff0c;本地媒体访…

QT基于mmap文件映射机制实现的内存池方法总结

在现代计算机系统中&#xff0c;高效的内存管理对于程序性能有着至关重要的影响。尤其是在处理大量数据或频繁分配和释放小块内存的应用场景下&#xff0c;传统的内存分配方式&#xff08;如malloc和free&#xff09;可能会导致显著的性能开销和内存碎片化问题。为了克服这些问…

车载DoIP诊断框架 --- 连接 DoIP ECU/车辆的故障排除

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

0—QT ui界面一览

2025.2.26&#xff0c;感谢gpt4 1.控件盒子 1. Layouts&#xff08;布局&#xff09; 布局控件用于组织界面上的控件&#xff0c;确保它们的位置和排列方式合理。 Vertical Layout&#xff08;垂直布局&#xff09; &#xff1a;将控件按垂直方向排列。 建议&#xff1a;适…

普中单片机-51TFT-LCD显示屏(1.8寸 STM32)

普中官方论坛&#xff1a; http://www.prechin.cn/gongsixinwen/208.html 普中科技-各型号开发板资料链接&#xff1a;https://www.bilibili.com/read/cv23681775/?spm_id_from333.999.0.0 27-TFTLCD显示实验_哔哩哔哩_bilibili 2.程序烧录 2.1设置彩屏驱动 3.实验效果

嵌入式开发工程师笔试面试指南-Linux系统移植

1 Linux内核启动流程 引导加载阶段 计算机通电后&#xff0c;首先由 BIOS 或 UEFI 进行初始化&#xff0c;完成硬件自检等操作。 找到可启动设备&#xff0c;读取其第一个扇区的 MBR&#xff0c;MBR 中的引导加载程序&#xff08;如 GRUB&#xff09;被加载到内存并运行。 内…

图扑数字孪生:解锁压缩空气储能管控新高度

​在能源转型的关键时期&#xff0c;压缩空气储能凭借其独特优势&#xff0c;成为解决可再生能源间歇性问题、保障可靠能源供应的重要技术。图扑软件&#xff08;Hightopo&#xff09;充分发挥其在 Web 2D&3D 可视化领域的技术专长&#xff0c;打造出先进的数字孪生压缩空气…

Redis 高可用性:如何让你的缓存一直在线,稳定运行?

&#x1f3af; 引言&#xff1a;Redis的高可用性为啥这么重要&#xff1f; 在现代高可用系统中&#xff0c;Redis 是一款不可或缺的分布式缓存与数据库系统。无论是提升访问速度&#xff0c;还是实现数据的高效持久化&#xff0c;Redis 都能轻松搞定。可是&#xff0c;当你把 …

AI 编码 2.0 分析、思考与探索实践:从 Cursor Composer 到 AutoDev Sketch

在周末的公司【AI4SE 效能革命与实践&#xff1a;软件研发的未来已来】直播里&#xff0c;我分享了《AI编码工具 2.0 从 Cursor 到 AutoDev Composer》主题演讲&#xff0c;分享了 AI 编码工具 2.0 的核心、我们的思考、以及我们的 AI 编码工具 2.0 探索实践。 在这篇文章中&am…

Qt Creator + CMake 构建教程

此教程基于: Qt 6.7.4Qt Creator 15.0.1CMake 3.26.4 Qt 6 以下的版本使用 CMake 构建可能会存在一些问题. 目录 新建窗体工程更新翻译添加资源软件部署(Deploy) 此教程描述了如何一步步在 Qt Creator 中使用 CMake 构建应用程序工程. 涉及 新建窗体工程, 更新翻译, 添加资源, …

锂电池保护板测试仪:电池安全的守护者与创新驱动力

在新能源产业蓬勃发展的今天&#xff0c;锂电池以其高能量密度、长循环寿命和环保特性&#xff0c;成为电动汽车、无人机、便携式电子设备等领域不可或缺的能量来源。然而&#xff0c;锂电池的安全性和稳定性一直是行业关注的焦点。为了确保锂电池在各种应用场景下的可靠运行&a…

岳阳市美术馆预约平台(小程序论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…

【Java】I/O 流篇 —— 转换流与序列化流

目录 转换流原理InputStreamReader 转换输入流构造方法代码示例 OutputStreamWriter 转换输出流构造方法代码示例 练习 序列化流序列化流反序列化流**serialVersionUID**基本概念作用使用方式transient 关键字注意事项 转换流 原理 转换流属于字符流&#xff0c;是字符流和字节…