CXL与近内存计算结合,会发生什么?--part1

news2024/11/30 2:35:02

一、基础背景

传统的冯·诺依曼架构虽然广泛应用于各类计算系统,但其分离的数据存储与处理单元导致了数据传输瓶颈,特别是在处理内存密集型任务时,CPU或GPU需要频繁地从内存中读取数据进行运算,然后再将结果写回内存,这一过程涉及大量的数据传输和较高的延迟,成为制约系统性能提升的关键瓶颈。

图片

冯·诺依曼架构中目前有一个很严重的问题叫做内存墙(Memory Wall),处理器速度(尤其是CPU)相对于主内存(如DRAM)访问速度的增长差距所造成的性能瓶颈现象。随着处理器性能不断提升,其处理数据的速度远超主内存的读写速度,导致处理器经常处于等待数据从内存加载到缓存或从缓存写回内存的状态,这种等待时间占用了大量原本可用于计算的时间,限制了整个系统的性能表现。简而言之,内存墙就是指处理器与内存之间的带宽和延迟不匹配导致的性能障碍。

图片

PIM(Processing-in-Memory)技术则是为解决内存墙问题而提出的一种计算范式。它将计算功能直接集成到内存模块内部或非常靠近内存的位置,使得数据处理能够在数据驻留的地方进行,而非在传统架构中先将数据从内存取出、经过较慢的总线传送到处理器、进行计算后再返回内存。

图片


PIM的核心思想是“数据在哪里,计算就在哪里”。通过在内存芯片内部或紧邻内存的位置添加计算单元,可以大幅度减少甚至消除频繁的数据搬运过程。数据不再需要经过内存控制器、总线和各级缓存,而是直接在内存内部完成计算操作。这样,就消除了因数据传输产生的延迟和带宽压力,显著降低了处理器等待数据的时间。

图片

超大规模人工智能(AI)系统,以ChatGPT等为代表,凭借其仿人问答、对话、甚至创作音乐和编写计算机程序等能力,震撼全球。然而,在这神奇表象的背后,实则需要庞大的内存密集型数据计算支撑。

图片

此外,CXL诞生的基础是为了解决CPU内存和附加设备内存的互联,实现资源共享,得到最大的性能提升。随着数据大规模超算、AI、5G、云技术、边缘计算、自动驾驶等蓬勃发展,未来的数据存在指数级的增长且要求实时计算。

图片

从2019年的CXL 1.0,CXL协议目前已经发展了CXL 3.1。服务器目前正面临着内存性能挑战,而CXL部署提供了短期和长期的解决方案。从CXL 1.1开始,AI云服务器可以从内存扩展中受益,CXL 3.0为GPU、DPU、FPGA和ASIC等加速器提供直接访问内存池的权限。云服务提供商和超大规模企业将对由CXL 2.0发起的内存池和可组合服务器表现出浓厚的兴趣。同时,数据库服务器将利用运行更大的内存数据库以加快分析速度的能力。

图片

数据中心工作负载变得越来越复杂,需要越来越多的计算能力和内存来处理不断增长的数据量。内存是一种非常昂贵的资源,2022年占服务器价值的平均比例约为30%,预计到2025年将超过40%。为了解决这些问题,已经提出了新型内存处理器接口,旨在优化资源的使用和加速数据中心工作负载的执行。在这种动态背景下,CXL已经崛起并获得了业界的广泛支持。

图片

通过使用CXL(Compute Express Link)技术来突破内存墙。CXL通过提供一个高速、低延迟的互连标准,使得服务器能够外接更多的内存资源,而不局限于主板上的物理插槽。这样,服务器内存的带宽(数据传输速度)和容量得以显著提升,理论上可以达到现有配置的1.5倍,从而更好地满足高性能计算和大数据处理的需求。

图片

二、CXL-PNM原理分析

既然,PIM近内存计算与CXL都有助于打破内存墙,那么,二者结合,又会发生什么?

CXL-PNM是一种类似于PIM(Processing In Memory)的技术,它通过在内存半导体中集成算术功能,使计算功能靠近数据存储位置。这种设计减少了数据在内存和处理器之间移动的距离,从而显著降低了延迟并减少了能量消耗。然而,对于现代机器学习应用而言,它们不仅需要处理内存密集型操作,还涉及到计算密集型任务。

图片

近期,在OCP峰会上,三星与Hynix均展示了CXL+PNM(Processing Near Memory)的解决方案,三星的解决方案叫做CMM-DC,Hynix的解决方案叫做CMM-Ax。

图片

三星的CMM-DC是一种近内存处理解决方案,它通过将计算能力放置在靠近内存的位置来提高数据处理效率。

图片

CMM-DC 在 CXL IP 和内存控制器之间放置了一个加速器 IP(PNM Engine),这个加速器专门设计用于处理内存密集型任务。

  • PNM Engine的作用:在数据存储位置附近执行计算任务,从而减少数据在内存与CPU之间传输的延迟。通过在内存附近执行计算,PNM Engine 可以显著提高数据密集型任务的处理效率,尤其是对于那些需要频繁访问内存的应用场景,如机器学习推理、数据库查询等。

  • CMM-DC 控制器的设计:CMM-DC控制器的设计将PNM Engine IP放置在CXL IP和内存控制器之间。这种设计使得PNM Engine可以直接与内存交互,并通过CXL IP与外部计算资源进行通信。

  • CXL.io 的连接:CXL.io协议是CXL标准的一部分,主要用于数据传输和通信。在CMM-DC解决方案中,通过CXL.io连接,加速器的控制器可以管理CMM-DC内部的各种功能块,如内存控制器、PNM Engine等,确保它们之间的通信顺畅无阻,并且能够协同工作以实现最佳性能。

图片

三、CXL.io/PCIe 通信开销分析

CXL.io 和 PCIe 是两种用于高速互连的标准,它们被广泛应用于现代计算系统中,用于连接不同类型的设备,如CPU、内存、存储和加速器等。然而,在实际应用中,CXL.io 和 PCIe 的通信会带来一定的开销,特别是在延迟和处理器使用方面。

图片

CXL.io/PCIe 的通信开销
  • 延迟开销:CXL.io 和 PCIe 在进行设备间通信时会产生显著的延迟开销。这种延迟主要来自于协议栈的处理时间以及操作系统(OS)进行上下文切换(context switch)时产生的软件开销。

  • 处理器使用率:除了延迟外,CXL.io 和 PCIe 的通信还会占用处理器资源,尤其是在进行启动/完成状态检查时需要频繁轮询(polling)的情况下。

轮询开销
  • 轮询机制:为了检查某个任务是否开始或完成,系统通常会采用轮询的方式。然而,在CXL.io 和 PCIe 的环境中,轮询操作本身就需要耗费大约2~3微秒的时间。这在高频次的轮询操作中尤其明显,会对整体系统的性能产生负面影响。

  • 轮询的影响:频繁的轮询不仅增加了处理器的负担,还可能导致其他关键任务得不到及时处理,从而影响系统的整体响应时间和吞吐量。

协议栈开销
  • 协议栈处理时间:相较于CXL.mem(主要用于内存一致性通信),CXL.io 和 PCIe 在协议栈层面的处理时间更长。这意味着数据在传输过程中需要经过更多的处理步骤,从而增加了延迟。

  • 上下文切换开销:当涉及到特权I/O设备(privileged I/O devices)的通信时,操作系统需要进行上下文切换来管理这些设备的通信。这种上下文切换会导致额外的软件开销,进而影响整体性能。

与 CXL.mem 的对比
  • CXL.mem 优势:CXL.mem 主要用于提供内存一致性通信,它在协议栈中的处理时间较短,因此延迟相对较低。CXL.mem 更适用于需要频繁访问内存且对延迟敏感的应用场景。

  • CXL.io/PCIe 适用场景:尽管 CXL.io 和 PCIe 在某些情况下会产生较大的开销,但在需要高速数据传输的应用中依然具有优势。例如,在数据传输量较大且对延迟要求相对宽松的场景下,CXL.io 和 PCIe 可以提供足够的带宽支持。

CXL.io 和 PCIe 在提供高速互连的同时,确实会在延迟和处理器使用方面产生一定的开销。这些开销主要来源于协议栈处理时间以及操作系统进行上下文切换时产生的软件开销。在需要频繁轮询的状态检查场景中,这种开销尤为显著。

与之相比,CXL.mem 在延迟方面表现更优,适用于需要低延迟内存访问的应用。CXL.mem 技术在 ML 推理中的应用,特别是在 DLRM 场景下,通过减少启动/完成检查的延迟,并优化数据传输过程,显著提高了推理任务的吞吐量和响应速度。这种技术的优势在于它能够更有效地管理内存一致性通信,并通过合理的任务分配,使得系统能够更好地利用计算资源。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React + Vite + TypeScript + React router项目搭建教程

一、创建项目 运行项目 二、目录结构 项目目录: ├─node_modules //第三方依赖 ├─public //静态资源(不参与打包) └─src├─assets //静态资源├─components //组件├─config //配置├─http //请求方法封装├─layout //页面…

SCI一区级 | Matlab实现SSA-TCN-LSTM-Attention多变量时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.基于SSA-TCN-LSTM-Attention麻雀搜索算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测,要求Matlab2023版以上,自注意力机制,一键单头注意力机制替换成多头注…

【Linux学习】(9)调试器gdb

前言 Linux基础工具:安装软件我们用的是yum,写代码用的是vim,编译代码用gcc/g,调试代码用gdb,自动化构建用make/Makefile,多人协作上传代码到远端用的是git。 在前面我们把yum、vim、gcc、make、git都已经学…

Linux系统下minio设置SSL证书进行HTTPS远程连接访问

文章目录 1.配置SSL证书使用HTTPS访问2.MINIO SDK 忽略证书验证3.使用受信任的证书 1.配置SSL证书使用HTTPS访问 生成域名对应的SSL证书,下载Apache版本,我目前只发现Apache这个里面有对应的私钥和证书 私钥重命名为private.key证书重命名为public.crt&…

Diffusion原理

Diffusion 文章目录 Diffusion前置知识基本介绍数学推导前向过程反向过程损失求解前置知识 马尔科夫链: 第 i i i时刻上的状态条件依赖于且仅依赖于第 i − 1 i-1 i−1时刻的状态条件,即 ​ P ( x i ∣ x i − 1 , x i − 2 , . . . , x 1 ) = P ( x i ∣ x i − 1 ) P(x…

以通俗易懂的仓库来讲解JVM内存模型

JVM内存模型可以想象成一个大型的仓库,这个仓库被分成了几个不同的区域,每个区域都有特定的用途和规则。下面我们用一个仓库的比喻来介绍JVM内存模型: 仓库大门(JVM启动): 当JVM启动时,就像打开…

排查PHP服务器CPU占用率高的问题

排查PHP服务器CPU占用率高的问题通常可以通过以下步骤进行: 使用top或htop命令:这些命令可以实时显示服务器上各个进程的CPU和内存使用情况。找到CPU使用率高的进程。 查看进程日志:如果PHP-FPM或Apache等服务器进程的日志记录了具体的请求…

Django入门教程——用户管理实现

第六章 用户管理实现 教学目的 复习数据的增删改查的实现。了解数据MD5加密算法以及实现模型表单中,自定义控件的使用中间件的原理和使用 需求分析 系统问题 员工档案涉及到员工的秘密,不能让任何人都可以看到,主要是人事部门进行数据的…

su user更换用户后无法打开图形屏幕Cannot open your terminal ‘/dev/pts/0‘ 解决办法

我在docker内使用了su john更换了用户,执行petalinux-config -c kernel时打不开图形屏幕窗口,需要执行命令script /dev/null 进入docker和配置状态的所有命令行命令如下: johnjohn-hp:~/zynq$ ./docker_ubuntu16.sh rootjohn-hp:/home/john/…

2024最新版鸿蒙纯血原生应用开发教程文档丨HarmonyOS 开发准备-成为华为开发者

1. 成为华为开发者 在开始应用开发前,需要先完成以下准备工作。在华为开发者联盟网站上,注册成为开发者,并完成实名认证,从而享受联盟开放的各类能力和服务。 1.1. 注册账号 如果您已经有华为开发者联盟帐号,点击右…

记录如何在RK3588板子上跑通paddle的OCR模型

官网文档地址 rknn_zoo RKNPU2_SDK RKNN Model Zoo 一、PC电脑是Ubuntu22.04系统中完成环境搭建(板子是20.04) 安装模型转换环境 ​conda create -n rknn2 python3.10 conda activate rknn2 安装Ubuntu依赖包 su…

CloudStack云平台搭建:XenServer服务器系统安装

1.打开VMware虚拟机,点击“创建新的虚拟机” 2. 点击“自定义(高级)” → “下一步” 3. 点击“下一步” 4. 点击“稍后安装操作系统” → “下一步” 5. 选择“其他” → “其他64位” → “下一步” 6. 修改“虚拟机名称” 、“位置”&…

记录运维大屏监控平台的开发、springboot实现服务器性能监测分析系统

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7…

h5小游戏5--杀死国王(附源码)

源代码如下 1.游戏基本操作 用空格键攻击,kill the king。 css样式源码 charset "UTF-8";font-face {font-family: "AddLGBitmap09";src: url("https://assets.codepen.io/217233/AddLGBitmap09.woff2") format("woff2"…

Canvas简历编辑器-选中绘制与拖拽多选交互设计

Canvas简历编辑器-选中绘制与拖拽多选交互设计 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计。那么此时我们就依然在轻量级DOM的基础上,关注于实现选中绘制与拖拽多选交…

系统安全隐患设计面面观

如果只是靠程序员去设计系统的话,估计会有很多安全问题,所以才需要有架构师、设计师,来面面俱到的设计系统安全模块,来应对外部的威胁。 功能开发在系统设计中往往优先考虑,但忽视安全问题可能导致重大隐患。为了解决…

在线竞赛资源共享和交流:如何利用平台高效备战信息学竞赛

在备战信息学竞赛的过程中,资源共享和交流已经成为不可或缺的一部分。如今,在线平台提供了丰富的学习资源、讨论机会和备考支持,考生可以通过真题解析、考点讨论群、备赛社区等方式,与其他考生互动,提升学习效果。本文…

中国五矿集团采购信息

打开https://ec.minmetals.com.cn/open/home/purchase-info点击第二页可以看到参数被加密了 要使用js的hook脚本为 (function() { var stringify_ JSON.stringify; JSON.stringify function(arg) { console.log("您猜怎么着?断住了! ——> …

不到 30 元的 AX1800 路由器!捷稀 JCG Q20 免拆机刷 Padavan / OpenWRT

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 上次把移动送的 JCG Q30 Pro 刷机之后,又从家里翻出个之前电信送的伊拉克战损 AX1800 路由器,意外的发现品牌也是 JCG,型号是 Q20,想着能不能也给它刷了。目…

企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门

本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统…