CXL崛起:2024启航,2025年开启新时代

图片

在2019年,Intel主导联合多家阿里巴巴、Facebook(也就是改名后Meta)、谷歌、Dell、华为、思科、微软、HPE最初的八巨头,发布了新的互联协议CXL,全称Comupte Express Link。由于在服务器领域享有绝对领导地位,Intel一经号令,遍得到万众呼应。特别是另外两家CPU巨头AMD/ARM和GPU一哥NVDIA的加入,让CXL阵营更加全面强大,为下一步的生态普及打下了坚实的基础。

图片

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

图片

根据有关机构的测算,从2020到2025年,用于AI计算的服务器的数量将成长2倍。而AI计算的服务器对内存和存储的需求更加的强劲,对计算的性能也有更高的要求。

图片

然后随着CPU core的不断增加,单core享用的内存带宽却在不断的下降,这对计算绝对是巨大的拖后腿,这就必须要有新的计算互联技术来解决这个头疼的问题,CXL也就顺势而生。

图片

CXL 2.0是基于PCIe 5.0基础上定义,允许替代协议使用物理PCIe层的PCIe 5.0特性。当CXL加速器或者扩展卡、PCIE设备同时插入主机端口时,会优先pcie协议1.0速率协商,当双方确认支持CXL后,再激活CXL互联协议。

图片

CXL协议包含了三种协议,分别是CXL.io、CXL.cache、CXL.memory.

  • CXL.io:是基础协议,基本跟pcie 5.0协议等同。用于初始化、链接、枚举、注册,CXL设备必须要支持CXL.io.

  • CXL.cache:定义CPU和设备之间互联,允许CXL设备低延迟访问主机缓存数据。

  • CXL.memory:用于CPU直接访问CXL设备的内存的协议

图片

这三种协议,CXL.io是必须的,CXL.cache和CXL.memory可以自由组合使用,不强制。根据三种协议的组合形式,CXL协议支持的设备类型主要分为三类:

图片

  • Type1: 智能网卡NIC等缺少本地内存的加速设备,可以在同CXL.io和CXL.cache直接访问加载在主机内存的数据,减少访问的延迟。

  • Typ2: GPU、FPGA等计算设备都配置了内存,可以使用CXL.io、CXL.cache、CXL.memory三个协议组合,CPU和计算设备之间可以相互快速访问,同样可以降低访问的延迟。

  • Type3: 内存扩展设备,利用CXL.io和CXL.memory进行内存扩展,增加内存带宽,解绑CPU单core内存带宽不足的问题。

图片

从2019年的CXL 1.0,CXL协议目前已经发展了CXL 3.0。目前的CXL 1.1(PCIe 5.0)支持直接内存扩展器连接。CXL 2.0(PCIe 5.0)将引入CXL交换机,扩展内存池功能。同时,CXL 3.0利用PCIe 6.0将启用级联交换机和点对点连接,促进完整的服务器解聚和可组合性。CXL标准包括三种协议(CXL.io、CXL.cache和CXL.mem),支持三种不同的CXL设备类型。这三种CXL设备类型,目前来看,Type3内存扩展方案的发展最迅速,也是带给数据中心和内存厂商最大的机遇。

根据Yole机构分析数据显示,CXL在2024年开始爬坡,在2025年将会大规模上量,也就是代表着CXL的时代从2025年开始正式到来

图片

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

图片

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

图片

三星和海力士目前都发布了CXL内存扩展方案,Marvell也为了CXL收购了CXL技术领先开发商Tanzanite,国内厂商澜起科技在今、去年也发布全球首款CXL内存扩展控制器芯片(MXC), 三星的CXL 2.0产品也是采用的澜起CXL内存扩展控制器。

图片

三星的CXL产品方案-举例:

采用E3.S接口,也是数据中心为了的趋势,基于CXL2.0协议,CXL link带宽x8,容量512GB,基于DDR5设计,最大带宽达到32GB/s.
 

图片


三星测试场景中,用DDR+CXL纵向扩展 vs DDR*3横向扩展进行性能比对,结果发现,在4K chunk size场景下,性能提升接近3倍,也可以看出CXL带来的巨大收益。

图片

同时,三星还是提出了基于CXL协议的SSD。

图片

基于这种架构,IO可以更小力度的访问,结合DRAM聚合,实现更大的IO性能。海力士也提出了类似的架构,实现Byte字节粒度的访问。

图片

海力士CXL产品方案-举例:

也是基于DDR5,但是容量没有三星的大,只有96GB. 同样基于CXL2.0 over PCIe Gen5 x8, 随机带宽最大30GB/s.

图片

图片

未来CXL将是巨大的机遇,CXL扩展expander、内存池化、加速计算、CXL switch都将发挥各自的能量,打造强大的CXL生态,造福互联世界,让我们共同期待!

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消息中间的应用场景

1、异步处理 比如用户在电商网站下单,下单完成后会给用户推送短信或邮件,发短信和邮件的过程就可以异步完成。因为下单付款是核心业务,发邮件和短信并不属于核心功能,并且可能耗时较长,所以针对这种业务场景可以选择先…

【Qt开发流程】之程序主窗口

描述 就目前的应用程序而言,一般包含菜单栏、工具栏、状态栏、中央区域等。 qt窗口部件类图如下: 一个主窗口提供了一个构建应用程序用户界面的框架。 Qt有QMainWindow及其相关类来管理主窗口。 QMainWindow有自己的布局,可以向其中添加QTo…

测试之路,女孩子软件测试-职业规划建议,路就在脚下...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试岗是不是加…

Upwork 新手使用指南——如何快速在Upwork上接单

Upwork 这个自由职业平台不知道大家听说过没,在 Upwork,如果你是自由职业者,你可以接单;如果你是客户,你可以找人干活。但对于新手来说,怎么使用 Upwork 并且用好 Upwork 是一大难题。因此今天给大家分享 U…

Mistral 7B 比Llama 2更好的开源大模型 (四)

Mistral 7B在平衡高性能和保持大型语言模型高效的目标方面迈出了重要的一步。通过我们的工作,我们的目标是帮助社区创建更实惠、更高效、更高性能的语言模型,这些模型可以在广泛的现实世界应用程序中使用。 Mistral 7B在实践中,对于16K和W=4096的序列长度,对FlashAttentio…

Modbus转Profinet网关在污水处理系统中连接PLC和变频器Modbus通信案例

污水处理系统中使用Modbus转Profinet网关可以连接PLC和变频器,实现二者之间的通信。该网关的作用是将PLC与变频器之间的Modbus协议转换为Profinet协议,使两者可以相互沟通。在污水处理系统中,PLC控制污水处理的各个过程,而变频器则…

机器学习二元分类 二元交叉熵 二元分类例子

二元交叉熵损失函数 深度学习中的二元分类损失函数通常采用二元交叉熵(Binary Cross-Entropy)作为损失函数。 二元交叉熵损失函数的基本公式是: L(y, y_pred) -y * log(y_pred) - (1 - y) * log(1 - y_pred)其中,y是真实标签&…

【性能测试】稳定性测试要点-监控关键指标总结(超细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、稳定性测试的要…

接口与抽象类的区别

Java中的接口(Interface)和抽象类(Abstract Class)都是实现抽象化的关键机制,但它们在用途和功能上有着明显的区别。以下是接口和抽象类之间的主要区别: 抽象类(Abstract Class) 含…

Docker之虚悬镜像(查看、删除)

虚悬镜像: 仓库名、标签都是的镜像,俗称dangling image 查看 docker image ls -f danglingtrue删除 虚悬镜像已经失去存在价值,可以删除 docker image prune

LeetCode977.有序数组的平方(双指针法、暴力法、列表推导式)

LeetCode977.有序数组的平方 1.问题描述2.解题思路3.代码4.知识点 1.问题描述 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] …

要事第一:如何通过6个步骤确定项目的优先级

当收到很多项目请求并且每个请求都是重中之重时,该怎么办?从最易完成的开始?还是先解决最大的问题? 实际上两种做法都不对。确定项目优先级的更好方法是评估以下内容,而不是关注项目规模或完成时长: ● 每…

3.8-镜像的发布

如果我们想将image push到docker hub里面,那么我们的image的名字一定要是这种格式:docker hub id/imageName,例如:lvdapiaoliang/hello-docker docker hub个人账户设置地址: 在push之前要先登录: docker l…

pycharm2023 实现鼠标点击某行,调试时代码运行至相应行

按下图取消 Breakpoints Over Line Numbers即可,然后调试时点击某行,代码就会运行至某行

AcWing 717. 简单斐波那契

原题链接 题目 以下数列 0 1 1 2 3 5 8 13 21 … 被称为斐波纳契数列。 这个数列从第 3 项开始,每一项都等于前两项之和。 输入一个整数 N ,请你输出这个序列的前 N 项。 输入格式 一个整数 N 。 输出格式 在一行中输出斐波那契数列的前 N 项&…

Nosql之redis概述及基本操作

关系数据库与非关系型数据库概述 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型…

HTTP四种请求方式,状态码,请求和响应报文

1.get请求 一般用于获取数据请求参数在URL后面请求参数的大小有限制 2.post请求 一般用于修改数据提交的数据在请求体中提交数据的大小没有限制 3.put请求 一般用于添加数据 4.delete请求 一般用于删除数据 5.一次完整的http请求过程 域名解析:使用DNS协议…

数据结构-插入排序

插入排序 插入排序的三种常见方法: 直接插入排序、折半插入排序、希尔排序。 数据存储结构 因为我们是用的是C语言来实现算法,因此我们需要创建一个结构体,用来存放初始数据。 结构体定义如下: #define MAX 100 typedef int…

Spring Framework IOC依赖查找 - 按类型查找解析

目录 在Spring框架中,控制反转(IoC)是一种设计模式,它通过将对象的创建和管理交给容器来实现。依赖查找是IoC的一部分,它允许你从容器中查找所需的依赖项。按类型进行依赖查找是其中的一种方式,今天来讲Spr…