书名:CXL体系结构 : 高速互连的原理解析与实践
ISBN:978-7-115-66219-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
主 编 李仁刚, 王彦伟, 黄伟
责任编辑 吴晋瑜
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书主要介绍CXL技术的相关内容,涵盖CXL基础知识、系统架构、产品简介、事务层、链路/物理层、交换技术、系统软件、FPGA应用开发等内容,全面介绍CXL技术及其在现代计算系统中的重要作用。
本书分4篇:第一篇(第1~4章)介绍CXL的起源以及相关基础知识;第二篇(第5~8章)介绍CXL的核心概念、协议、架构及设备管理等内容;第三篇(第9、10章)介绍系统软件,并从FPGA工程实践角度介绍CXL应用开发;第四篇(第11、12章)对CXL技术发展趋势进行展望。
本书适合对CXL技术感兴趣的研究人员、工程师、技术开发者,以及对高速互连技术感兴趣的学生和专业人士阅读,尤其适合驱动程序研发工程师、FPGA/芯片研发工程师和异构计算领域的研究人员参考。
主 编:李仁刚 王彦伟 黄 伟
副主编:刘 俊 李 霞 刘 伟 侯鹏宇 黄 宬 王江为
刘铁军 赵雅倩 郭振华 刘钧锴 岳 龙 张静东
李仁刚,正高级工程师,就职于浪潮电子信息产业股份有限公司。科技部存储产业技术创新战略联盟秘书长,科技创新2030—“新一代人工智能”重大项目首席科学家/项目负责人,中国计算机学会理事。主要从事计算机体系结构、集成电路、人工智能等前沿技术研究,以及多元异构计算系统研制工作。主持国家级/省部级科研项目5项,申请专利170项,获国内发明专利授权60项、国际发明专利授权9项,发表论文41篇,参与标准制定8项。曾获山东省科技进步奖一等奖,中国电子学会技术发明二等奖,中国专利金奖,山东省劳动模范称号,北京优秀青年工程师称号等。带领团队在CVPR、ACM MM、ICCV等国际竞赛中获世界冠军9项、亚军5项。
王彦伟,高级工程师,就职于浪潮电子信息产业股份有限公司,CCF网络与数据通信专委会执行委员。主要从事异构计算以及加速器、服务器等系统研制工作。曾获中国计算机学会技术发明一等奖,中国电子学会技术发明二等奖。
黄伟,资深研究员,就职于浪潮电子信息产业股份有限公司。主要从事异构计算、人工智能、算力网络等技术研究。获发明专利授权9项,发表论文7篇。
随着计算技术的飞速发展,传统的互连技术已经无法满足现代计算系统对高带宽、低延迟以及高效数据传输的需求,智慧计算逐渐成为新型基础设施建设的重要组成部分,推动生产力的转型升级,计算机体系结构的创新由此成为推动智算中心进步的关键动力。在这样的背景下,CXL技术应运而生,它是一种创新的高速互连技术,能为处理器、加速器和存储设备提供更高效、更灵活的连接方式。CXL体系结构的出现,为计算机硬件设计和系统优化带来革命性变化,可以实现更卓越的性能和更低的延迟,进而满足现代计算应用对高带宽、低延迟的迫切需求。
目前市场上关于CXL的学习资料较少,恰好笔者所在团队在探索新型计算机体系结构方面做了大量工作,积累了一些CXL的应用经验,因此希望将这些内容结集出版,分享给所有对CXL技术感兴趣的读者。
本书将全面介绍CXL技术的起源、发展、体系结构、产品实现及其在现代计算系统中的重要作用——“计算力就是生产力,智算力就是创新力”。为帮助读者提升应用能力,本书特别设置了工程实践案例,不仅介绍了CXL技术工程实践中必备的软硬件工具和技术细节,还展示了如何在实际项目中应用CXL技术进行系统优化和性能提升。值得一提的是,在系统软件设计方面,本书不仅介绍驱动程序和软件工具,还会探讨基于FPGA的硬件实践,并通过硬件功能仿真进行性能测试,力求为广大读者提供具体的指导,为相关领域的科研工作者提供丰富的研究素材,推动理论与实践的紧密结合。
技术创新的道路充满挑战和机遇,CXL技术的出现为我们开辟了一条新的发展路径,我们希望通过本书为这条路上的探索者点亮“引导之灯”。相信随着CXL技术的不断成熟和推广应用,计算机体系结构领域将迎来新一轮的变革,推动社会生产力的全面提升。
我们希望本书能够成为推动CXL技术发展的重要力量,同时期待更多的科研工作者、工程师以及其他从业人员能从中受益,共同为计算机体系结构领域的发展贡献智慧和力量。
第1章 CXL起源与发展:回顾CXL技术的产生背景,探讨其在应对现代计算挑战中的关键作用,以及其在现代高速互连技术中的潜在优势。
第2章 CXL基础知识:介绍必要的技术背景知识,包括PCIe体系结构和缓存一致性。这些知识是深入理解CXL工作原理的基石,也是深入学习CXL技术不可或缺的部分。
第3章 CXL系统架构:详细介绍CXL的互连架构、子协议、设备以及核心组件,展示CXL如何在硬件层面实现高效的数据传输和处理。
第4章 CXL产品简介:介绍市场上已有的CXL产品,包括处理器、内存、SSD、交换芯片、FPGA板卡和控制器IP等,不仅展示了CXL技术的实际应用,也体现了其在不同领域的广泛应用潜力。
第5章 CXL事务层:深入探讨CXL事务层的核心概念、协议和架构。事务层是CXL体系结构中的关键部分,它定义了如何在设备间进行数据传输和交互。
第6章 CXL链路层/物理层:介绍CXL链路层和物理层的核心概念、架构等内容,揭示CXL如何在物理层实现数据的可靠传输。
第7章 CXL交换技术:讨论CXL交换机的分类、配置、组成以及CXL协议的解码和转发等内容。CXL交换技术是实现设备间高效通信的关键。
第8章 CXL设备的复位、管理和初始化:介绍CXL系统复位、设备睡眠状态进入流程、功能级复位、缓存管理以及CXL复位等内容。这些技术对于确保CXL设备在各种系统环境中可靠地集成和操作至关重要。
第9章 CXL相关系统软件:介绍为了支持CXL硬件,系统中需要哪些系统软件为其提供设备发现、拓扑分析、内存分配、性能测试等服务。这些系统软件包括系统启动固件(BIOS)、操作系统接口(ACPI)、Linux与CXL内存资源工具等。
第10章 基于FPGA的CXL应用开发:介绍如何在FPGA上开发CXL应用,包括使用R-Tile CXL IP和CXL BFM,以及CXL内存扩展和CXL GPGPU的实现。
第11章 CXL的发展趋势:分析CXL技术的发展趋势,包括技术创新、性能提升、标准化、生态建设、安全性等。
第12章 CXL的创新展望:展望CXL技术在未来的发展方向,如推进内存和存储的融合、拓展边缘计算和物联网,以及结合领域专用架构。
本书适合对计算机体系结构、异构计算和分布式计算感兴趣的专业人士,以及想利用CXL技术提升人工智能、计算机视觉相关任务计算性能的从业者参考。
(1)驱动研发工程师:想要开发CXL设备驱动程序,希望了解CXL的工作原理和实现方式。
(2)FPGA/芯片研发工程师:想要开发CXL的FPGA/芯片模块,希望了解CXL的业务流程。
(3)异构计算领域的研究者:包括学术界和工业界异构计算领域的工作者,希望了解异构计算领域的新技术。
本书的特色主要体现在以下几个方面。
(1)全面性:全面介绍CXL技术,从基础概念到高级应用,涵盖了CXL的起源、发展、体系结构、产品实现、交换技术、设备管理和初始化、系统软件支持以及基于FPGA的应用开发等多个方面。
(2)技术深度:深入探讨CXL的核心技术,包括事务层、链路层、物理层以及交换技术等,提供了详尽的技术细节和实现原理。
(3)实践指导:结合理论知识与实践应用,特别是在系统软件和FPGA应用开发章节,提供了实际的开发指导和案例分析,帮助读者理解CXL技术的应用场景和开发流程。
(4)前瞻性:不仅介绍CXL的当前状态,还展望其未来的发展趋势和潜在应用,如在人工智能、机器学习、高性能计算等领域的应用前景。
(5)标准化:讨论CXL技术在标准化方面的进展,包括与其他互连协议的对比,以及CXL在推动行业标准化方面的积极作用。
(6)生态建设:不仅关注技术本身,还关注CXL生态系统的建设,包括硬件产品、软件工具、开发平台和行业应用等。
本章先阐述CXL的产生背景,然后介绍相关互连协议,以及CXL的发展历程及应用场景,旨在帮助读者更好地理解该技术在当今计算领域的重要性和潜力,为深入探讨CXL做准备。
在当今高速发展的信息时代,随着新型应用的激增和计算需求的不断增长,传统架构面临着巨大挑战,也推动着技术不断革新。本节将深入探讨CXL的产生背景,分析传统互连总线的局限性,以帮助读者更好地理解CXL在高速互连方面的潜在优势。
近年来,大数据和人工智能(AI)等前沿技术飞速发展,已广泛应用于生活的各个领域。例如,社交媒体平台需要处理海量用户上传的图像、视频和文字内容,为用户提供个性化的推荐和广告;金融领域中的高频交易需要快速处理大量交易数据并进行实时决策;而在生命科学领域,基因组学研究可能会涉及对数以万计的基因进行分析和模拟,以便研究疾病和药物相互作用。
这些新型数据密集型应用的数据存储量和处理量相当庞大。例如,就人工智能大语言模型而言,GPT-3 175B包含了1750亿个参数,如果使用4字节表示每个参数,那么要存储这些参数,共需占用700GB(175×4×109)的存储空间。在模型训练阶段,每个可训练的参数会对应一个梯度参数与两个优化器状态参数(例如Adam优化器中的一阶、二阶动量)以及计算过程中的激活值,此时模型运行所占用的存储空间将成倍增加;在模型推理过程中,即便可以通过模型量化等方法减少显存占用,但在有着大量用户的高并发处理场景中,存储和处理的数据量依旧庞大,这无疑需要耗费更多的算力,占用更多的内存。
谈到充分满足各种应用的计算需求,相比通用处理器,高性能专用芯片通常可以实现数倍甚至数十倍的算力提升,但是制造高性能专用芯片需要复杂的工艺流程,高端芯片的发展也受到制程工艺的制约。同时,随着摩尔定律推进速度放缓、登纳德缩放定律的逐渐失效、阿姆达尔定律的充分挖掘,CPU性能提升的难度越来越大。CPU架构主要面向广泛的通用计算场景,不适合人工智能等领域的高并发密集的向量、张量计算。面对指数级提升的算力需求和密集多样的计算需求,单纯依赖CPU一种计算架构显然是不行的。
结合不同架构计算单元的异构计算因可以带来显著的性能提升而成为主流计算模式。与此同时,大量算力基础设施涌现,如搭载专用加速器且具备强大计算能力的人工智能服务器、大规模集群服务器并行工作以处理海量数据的数据中心,以及资源共享的云计算平台等。这些系统提供灵活且可扩展的计算、存储资源,并实现资源之间的高效通信,对实现异构处理器高效协同工作以及高性能计算至关重要。
如图1-1所示,研究表明,过去20年里,硬件峰值计算能力提高了60000倍,内存带宽提高100倍,互连带宽却只提高了30倍。硬件计算性能、访存带宽、互连技术发展不匹配,使得“内存墙”和“输入/输出(I/O)墙”问题日趋严重。
图1-1 硬件峰值计算能力、内存带宽及互连带宽的对比
(引自论文“AI and Memory Wall”. Gholami A, Yao Z, Kim S, et al. AI and Memory Wall [J]. IEEE Micro, 2024, 44(3): 33-39)
此外,如图 1-2 所示,随着CPU中核的数量越来越多,每个核对应的内存通道带宽会越来越小,系统性能提升就会受限。
图1-2 CPU核数及内存带宽发展
PCIe(Peripheral Component Interconnect express)是一种常用的高速互连总线标准,可用于实现计算机内部各种设备(如加速器、网卡、存储设备等)间的通信。对于PCIe架构下的普通服务器,内存(一般是DDR)必须通过内存总线及内存控制器连接到CPU、GPU、DPU等设备,由这些设备独享。在当前CPU的所有内存通道都被占满后,如果需要更多内存来处理大量工作负载,就不得不向系统添加一个CPU从而提高内存容量,这可能会导致CPU的计算能力未得到充分利用。也就是说,这种PCIe基础架构无法有效、灵活地扩展。关于这一点,超大规模数据中心用户的感受尤为深刻。例如,微软Azure的数据中心内,当所有处理器核心被分配给虚拟机之后,仍有25%的DRAM资源因未被配置而处于闲置状态,从而造成内存资源浪费。造成此类问题的根本原因是PCIe并不支持主机对设备的内存语义访问,即通过PCIe连接的设备内存无法映射到系统一致性内存空间,从而难以直接用作内存的灵活扩展。
PCIe在许多数据处理场景下表现出色,其中直接存储器访问(Direct Memory Access,DMA)技术可以实现旁路CPU的数据复制,减少通信开销。但是加速器访问一块主存数据需要将其从主存搬移至加速器,并部署软件机制,以防CPU和加速器对其同时访问。在人工智能、深度学习等需要大量计算和数据传输的高性能计算领域,频繁的数据访问可能会使PCIe的延迟和带宽成为系统性能瓶颈。在这些场景中,加速器更希望借助本地缓存与CPU同时访问相同数据结构部分,而无须来回移动整个数据结构,即可以采用一致性数据访问方式来提高访存速度和进行高速数据处理。
近年来,为了解决计算系统中CPU与加速器间的一致性访问问题、I/O墙问题,一系列高速缓存一致性互连协议标准陆续被提出。表1-1展示了相关互连协议的对比。
表1-1 相关互连协议的对比
NVLink |
CCIX |
Gen-Z |
OpenCAPI |
CXL |
|
---|---|---|---|---|---|
发布时间/年 |
2016 |
2016 |
2016 |
2014 |
2019 |
成员 |
NVIDIA私有 |
AMD、Xilinx等 |
AMD、Dell等 |
IBM、AMD等 |
Intel、ARM等 |
拓扑结构 |
P2P&Switched |
P2P&Switched |
P2P&Switched |
P2P |
P2P&Switched |
物理层 |
自定义 |
PCIe 5.0 x16 |
用户自定义(兼容IEEE 802.3、PCIe) |
用户自定义,POWER 9采用Bluelink |
PCIe x16 |
双向带宽 |
50 GB/s(每条链路) |
128 GB/s |
能达到400 GB/s |
16 lanes能达到100 GB/s |
128 GB/s |
架构支持 |
NVIDIA GPU专用;ARM和Power架构支持 |
有ARM和RISC-V架构IP |
ARM架构支持 |
Power架构支持 |
x86/x64、AMD架构支持,有ARM和RISC V架构IP |
应用产品 |
NVIDIA GPU; IBM Power CPU、NVIDIA Grace CPU |
ARM Neoverse系列CPU |
暂无 |
IBM Power 9、Power 10 |
Intel Xeon、AMD Epyc、ARM Neoverse系列等;三星大内存设备、内存语义SSD;XConn Apollo CXL Switch |
发展趋势 |
NVIDIA私有 |
2023年8月已并入CXL |
2022年1月已并入CXL |
2022年8月已并入CXL |
目前是主流 |
2014年,IBM、AMD和赛灵思(Xilinx)等公司联合发布行业标准设备接口OpenCAPI,这一接口支持处理器以标准化高速串行、低延迟的方式与加速器设备连接,在IBM的POWER 9处理器系列中首次实现。OpenCAPI物理层采用IBM的Bluelink,通道单向传输速率可以达到25 Gbit/s,且能与NVLink复用。目前主要用于IBM POWER的主机与外围设备互连,范围比较有限。在拓扑结构上,OpenCAPI只支持与CPU直连的点对点结构,未实现对OpenCAPI Switch等功能的支持,无法实现跨任意拓扑和交换机的一致性维护,架构扩展能力受限。
随着人工智能等应用领域对并行计算结构的依赖,为充分发挥多GPU系统的计算性能,英伟达(NVIDIA)于2016年推出了一种总线及其通信协议——NVLink,以期提升CPU与NVIDIA GPU之间的通信带宽。第四代NVLink最多支持 18 条链路,双向传输带宽高达900 GB/s,这一带宽是PCIe 5.0 x16的7倍。同时,第四代NVLink允许CPU在读取数据时缓存GPU显存,从而能使处理器低延迟地收发共享内存池中的数据。NVSwitch可用于节点内GPU之间的多对多通信,其级联架构大大提高了GPU大规模扩展能力。但是,作为英伟达私有协议,NVLink除了实现NVIDIA GPU间高速通信,作为系统总线目前仅在IBM的POWER PC架构、ARM架构CPU中实现,尚未形成支持其他架构加速器的总线行业标准。
2016年,AMD、ARM和赛灵思等公司联合推出对称的缓存一致性协议CCIX(Cache Coherent Interconnect for Accelerator),让CPU之外的硬件加速器(例如FPGA、GPU等)也能以缓存一致的方式使用与多个处理器共享的内存,在异构系统中实现更快的内存访问。CCIX交换机(Switch)也支持多种灵活的系统拓扑。但是,作为对称的缓存一致性协议,CCIX交换机存在两方面的不足:一方面,设备设计的复杂性较高;另一方面,缺少用来协调和管理通信的中心节点,如果一个设备发生故障,可能会影响多个设备之间共享的数据和状态信息,导致系统不稳定甚至崩溃。在生态建设方面,目前产业界仅在ARM Neoverse系列CPU中实现了对CCIX的支持。
2016年,惠普(HP)等公司基于HPE The Machine项目中内存池化架构原型样机的研究,组成Gen-Z联盟,提出支持以内存为中心架构的低延迟总线协议Gen-Z,可以连接智能网卡、加速器(GPU、FPGA、ASIC等)、DRAM、SCM、闪存(Flash)等多种类型设备,支持计算单元对DRAM或SCM的字节寻址的加载/存储。内存语义(Memory Semantics)和Switch技术的实现,使得Gen-Z在资源扩展性及内存池化能力方面具有优势,可为数据中心提供高传输带宽和大规模扩展能力。但是,Gen-Z没有内置硬件维护缓存一致性,相应的软件开销较大。在生态建设方面,产业界尚没有支持Gen-Z的商用CPU以及硬件产品。
2019年,Intel在PCIe 5.0的基础上添加了内存语义访问和缓存一致性控制机制,提出了第一个支持各种类型主机和设备之间高带宽、低延时互连的开放工业标准CXL。由于其高速一致性控制建立在PCIe规范的基础之上,因此具有较好的兼容性。内存语义和缓存一致性的实现,既允许在系统内存层次结构上添加SCM而无须占用内存总线通道,又降低了数据移动对CPU及内存资源的消耗,同时缩短了数据访问路径及时长。进一步地,CXL 3.0实现了多级交换机,提升了系统的灵活性和扩展性,并引入了“内存共享”的概念,使得多个主机可以同时访问CXL设备的内存区域。此外,CXL 3.0实现的机制是硬件缓存一致性,不需要软件管理的协调,因此有助于提高数据流效率和内存利用率。
随着在行业内的推广,CXL逐渐为企业所广泛接受。继2019年3月发布CXL 1.0后,Intel先后推出了向后兼容的CXL 2.0、CXL 3.0和CXL 3.1。如图 1-3 所示,Gen-Z、OpenCAPI、CCIX协议逐渐为CXL联盟所合并。随着另外两家CPU巨头AMD、ARM以及NVIDIA的加入,CXL阵营日渐壮大,其联盟成员数量已经超过250个,CXL由此成为行业主导的、极具未来发展前景的互连标准。
图1-3 CXL规范发布时间线
在高速发展的科技领域,CXL逐渐成为各种应用场景中的关键技术之一,广泛应用于存储、高性能计算、数据中心和云计算等领域。在存储领域,数据的爆炸式增长使得内存容量的可扩展性成为企业和个人用户关注的焦点。CXL内存语义功能支持内存扩展和内存共享,能够连接各类易失和非易失存储设备,为系统提供大容量内存支持,也使得数据的处理和访问变得更加迅速,带来了革命性变化。三星电子、美光和海力士等公司已陆续研制出CXL DRAM、CXL SSD内存扩展设备,并进一步将其用于内存池化平台的研究。此外,在CXL内存扩展设备中灵活地引入计算单元,支持近数据处理(Near Data Processing,NDP),可以大量减少数据迁移,降低内存访问延迟和功耗,进一步缓解内存墙问题,同时为内存计算(Processing in Memory,PIM)的实现提供基础环境。
在人工智能和机器学习等高性能计算领域,CXL可以提供高带宽、低延迟的数据传输,可以加速人工智能算法的执行速度,非常适合用于大规模数据处理和模型训练。CXL的内存扩展和共享功能,更是为大规模深度学习模型提供了更大的内存空间——用于数据存储和处理。CXL还支持多种异构计算加速器的连接,可以实现CPU、GPU、FPGA等不同处理器之间的高效协同工作,为训练和推理过程提供强大的算力支持。
在数据中心和云计算领域,CXL支持计算和内存资源的大规模灵活扩展、不同设备之间高效的数据共享和协作,实现了服务器内部组件之间的高带宽、低延迟通信,促进了资源的解耦、池化与共享。这不仅提高了数据中心的整体性能和资源利用效率,还降低了运营成本。通过更灵活高效的资源配置和管理,数据中心和云服务提供商能够根据用户的需求动态分配计算资源,提供更具弹性和高效的云服务。
此外,在边缘计算、科学研究等领域,CXL也有着广泛的应用前景,为这些领域的发展提供了新的技术支持。
综上所述,CXL为各种应用场景带来了许多新的机遇。随着CXL的不断发展,我们相信,它将会发挥越来越重要的作用,推动计算技术的进步和创新。
通过学习本章,读者可以一窥CXL的丰富内涵与深远意义。本章首先简要介绍了CXL技术的产生背景,包括应用需求飞速增长、多元化计算架构需求以及PCIe的局限性。接着梳理了为应对这些问题提出的相关互连协议,如OpenCAPI、NVLink、CCIX、Gen-Z等,分析了它们各自的特点和瓶颈。然后讲述了 CXL 的起源、演变及发展状况,CXL建立在PCIe 5.0基础上,具有内存语义访问和缓存一致性控制机制。随着其不断发展,CXL 已逐渐成为行业主导的互连总线标准。最后介绍了CXL作为高带宽、低延迟的互连接口技术,在存储、高性能计算、数据中心和云计算等领域的广泛应用场景。此外,CXL在边缘计算和科学研究等领域展现出广阔前景,将在未来发挥更加重要的技术支持作用,促进计算技术的持续创新。