CXL是什么?它是如何工作的?

2023-12-01 19:11
文章标签 工作 cxl

本文主要是介绍CXL是什么?它是如何工作的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注、星标公众号,精彩内容每日送达
来源:网络素材

3d2fe3864d7ac362bb3ede46f7a1c4ac.jpeg

本文由半导体产业纵横(ID:ICVIEWS)编译自spiceworks

高带宽互连彻底改变了以数据为中心的计算。

7c45c6c71b6d75baa81e550b3c783291.png

CXL(Compute Express Link)可以提高数据中心内存的性能、可扩展性和灵活性。MemVerge 的 Steve Scargall 解释了 CXL 是什么、它是如何工作的,以及为什么它是各种应用程序的游戏规则改变者,例如 AI/ML、HPC、数据库和分析。他还强调了采用 CXL 标准化的云计算和数据中心基础设施的一些行业趋势。

CXL是一种新兴的开放式行业标准互连,彻底改变了以数据为中心的计算。凭借其在 CPU 和设备(例如加速器、内存扩展和持久内存设备)之间的高带宽和低延迟缓存一致性连接,CXL 有可能重塑数据中心内存的性能、可扩展性和灵活性。通过解决 AI/ML 应用程序面临的常见内存挑战并启用新的高性能内存架构,CXL 有望成为以数据为中心的计算的下一代互连。

07333f1914c8562704cb00708776ec0b.png 什么是 CXL?

CXL 是一种行业采用的开放标准,为处理器、内存扩展和加速器提供高速缓存一致性互连。它基于 PCI Express (PCIe) 规范物理和电气接口,但为 AI/ML 应用程序提供了额外的功能和优势。CXL 可实现 CPU 内存空间与附加设备(例如加速器、GPU 或内存设备)上的内存之间的内存一致性。这意味着 CPU 和设备可以共享相同的内存视图并访问它,而无需任何软件干预或同步。CXL 还通过允许 CPU 以低延迟和高带宽访问连接设备上更大的内存池来扩展内存。这可以增加 AI/ML 应用程序的内存容量和性能。

规范的三个主要版本描述了 CXL 标准。未来计划更多主要版本。现有主要版本的更新也将根据需要公布。每个主要版本都为以前的版本添加了新功能。

CXL 1.0 :CXL 的第一个版本,于 2019 年 3 月发布,基于 PCIe 5.0。它允许主机 CPU 使用缓存一致性协议 (CXL.cache) 访问加速器设备上的共享内存,并使用内存语义 (CXL.mem) 启用内存扩展。 

CXL 2.0 :CXL 的第二个版本,于 2020 年 11 月发布,基于 PCIe 5.0。它支持 CXL 交换,将多个 CXL 设备连接到一个主机处理器或将每个设备连接到多个主机处理器。它还实现了设备完整性和数据加密功能。 

CXL 3.0 :CXL 的第三个版本,于 2022 年 8 月发布,基于 PCIe 6.0。它支持比 CXL 2.0 更高的带宽和更低的延迟,并增加了设备热插拔、电源管理和错误处理等新功能。

图 1 显示了每个主要 CXL 版本的功能比较。

cb71e6bc6e8bf25baa1df8c7c0e08eda.png图 1:CXL 功能比较

CXL 规范描述了三种允许设备相互通信的协议。

  • CXL.io:PCIe 5.0 协议的增强版本,可用于初始化、链接、设备发现、枚举和寄存器访问。它为 I/O 设备提供非一致性加载/存储接口。

  • CXL.cache :一种缓存一致性协议,它定义了主机和设备之间的交互,允许连接的 CXL 设备使用请求和响应方法以极低的延迟有效地缓存主机内存。

  • CXL.mem :一种内存协议,它使用加载和存储命令为主机处理器提供对连接设备内存的访问,其中主机 CPU 充当主设备,CXL 设备充当从属设备。它可以支持易失性和持久性内存架构。

至少,所有 CXL 设备都必须使用 CXL.io,但可以选择支持 CXL.cache 或 CXL.mem,或同时支持两者。

这些组合派生出三种设备类型:

类型 1 :没有本地内存的专用加速器(例如智能 NIC)。设备依赖于使用 CXL.io 和 CXL.cache 协议对主机 CPU 内存进行一致访问。它们可以扩展 PCIe 协议功能(例如原子操作),并且可能需要实现自定义排序模型。 

类型 2 :具有高性能本地内存(GDDR 或 HBM)的通用加速器(GPU、ASIC 或 FPGA)。要访问主机 CPU 和设备内存,设备可以使用 CXL.io、CXL.cache 和 CXL.mem 协议。它们可以支持连贯和非连贯事务。 

类型 3 :没有本地缓存的内存扩展板和持久内存设备。设备可以使用 CXL.io 和 CXL.mem 协议通过加载和存储命令为主机 CPU 提供对内存的访问。它们可以支持易失性和持久性内存架构。

d7bf02b84cff245d5f8b6932384a9d34.png 基础设施用例

CXL 是云和本地数据中心基础设施的游戏规则改变者,预计将很快得到广泛采用和标准化,包括:

1.云计算

CXL 可以使云服务提供商通过利用支持 CXL 的设备(例如加速器、内存扩展设备和持久性内存设备)为其客户提供更快、更高效的服务。云服务提供商每年在未使用或未充分利用的主内存(称为“搁浅内存”)上花费数十亿美元。应用程序可以更优化地使用集群中的计算节点按需访问的 CXL 设备池,从而优化数据中心资源。

2.数据中心存储 

与云环境类似,虽然规模小得多,但 CXL 设备可以使数据中心运营商构建可持续发展的环境,并通过使用支持 CXL 的设备显著降低其基础设施成本和使用率。CXL 可以通过启用对内存驻留数据的低延迟和高带宽访问来提高块存储性能和可靠性。

3. 边缘计算

CXL 可以使边缘计算平台通过使用支持 CXL 的设备(例如加速器、智能 NIC、内存扩展设备和持久内存设备)来处理不断增加的数据量和复杂性。在将数据发送到主数据中心之前在边缘处理数据可以减少流量并提高边缘计算性能、效率和安全性。

4. 网络 

CXL 可以使网络平台通过使用支持 CXL 的网络设备(例如智能 NIC、FPGA 和 ASIC)来处理不断增加的网络流量和复杂性。CXL 可以通过实现对设备内存的一致和非一致访问以及支持原子操作和自定义排序模型来提高网络性能、可扩展性和功能。

31a5b7f2b98cbfcb9f832f61c5094bed.png 应用用例

应用程序将从支持 CXL 的基础架构中受益匪浅。一些主要的兴趣领域包括:

1.AI/ML加速

CXL 可以为 GPU、ASIC 或 FPGA 等 AI/ML 加速器实现更快、更高效的 CPU 到设备和 CPU 到内存的连接。CXL 可以支持异构设备之间的一致性和非一致性事务、内存扩展和资源共享。允许应用程序处理更大的数据集,同时减少主机之间传输的数据量,从而缩短获得结果的时间。

2.大规模内存、分析和图形数据库

CXL 允许数据库访问无限的低延迟和高带宽内存,从而使系统能够在更大的数据池上工作。

3.高性能计算

CXL 可以通过利用支持 CXL 的加速器和内存池来提高高性能计算的性能、可扩展性和灵活性。CXL 3.0 引入了共享内存功能,允许许多计算节点就地访问内存驻留数据,而无需在运行前将其复制到本地,然后再将结果复制回来。

e9e660d57ca9c2976102fbedf1f2508e.png 使用 CXL 的行业标准互连加速以数据为中心的计算

CXL 是一种新兴的开放式行业标准互连,可在 CPU 和设备(如加速器、内存扩展和持久内存设备)之间提供高带宽和低延迟缓存一致性连接。CXL 可以提高数据中心资源的性能、可扩展性和灵活性。CXL 可以帮助解决 AI/ML 应用程序面临的一些常见内存挑战,例如内存不足错误、溢出到磁盘以及数据/计算偏差。

CXL 还可以支持需要大规模和高性能内存架构的新应用程序和用例,例如内存数据库、实时分析和高性能计算。由英特尔、AMD、Arm、Astera Labs、三星、美光、X-Conn 等众多行业领导者和创新者组成的不断壮大的生态系统支持 CXL。作为以数据为中心的计算的下一代互连,CXL 有望在不久的将来得到广泛接受和标准化。

*声明:本文系原作者创作。文章内容系其个人观点,我方转载仅为分享与讨论,不代表我方赞成或认同,如有异议,请联系后台。

69c544b1e1f8e25b951461220b92c293.png

本文内容仅代表作者观点,不代表平台观点。

如有任何异议,欢迎联系我们。

如有侵权,请联系删除。

这篇关于CXL是什么?它是如何工作的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/442370

相关文章

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

以太网交换机工作原理学习笔记

在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。 1、以太网协议介绍 1.1以太网协议 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号

JVM工作过程

将JVM工作过程粗略分为5个阶段,包括加载阶段、链接阶段、初始化阶段、执行阶段、回收阶段 其中, (1)加载阶段、链接阶段的解析部分主要由类加载器完成 (2)初始化阶段是由JVM的类加载机制在类加载过程的最后阶段自动触发的。 (3)执行阶段主要由执行引擎负责 (4)回收阶段主要是垃圾收集器(Garbage Collector)负责。 所以,在Java虚拟机(JVM)中,读取字节码文件、解析字节码

平时工作学习重要注意的问题

总体原则:抓住重点,条理清晰,可回溯,过程都清楚。 1 要有问题跟踪表,有什么问题,怎么解决的,解决方案。 2 要有常用操作的手册,比如怎么连sqlplus,一些常用的信息,保存好,备查。

Struts 2的工作流程

基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被 FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据 struts.xml中的配置找到对应的返回结果result