新闻中心

EEPW首页>嵌入式系统>设计应用> CXL、CCIX 和 SmartNIC 下的 PCIe 5 将如何影响解决方案加速

CXL、CCIX 和 SmartNIC 下的 PCIe 5 将如何影响解决方案加速

作者:Scott Schweitzer 时间:2020-11-26 来源: 收藏

与普通的NIC不同,SmartNIC将会对PCIe总线提出更高的要求。CXLCCIX等第五代PCIe和协议在此背景下应运而生。不久之后,我们将能共享一致性存储器、高速缓存,并建立多主机点对点连接。

本文引用地址://m.amcfsurvey.com/article/202011/420681.htm

图片.png

正文:

过去三十年间,基于服务器的计算历经多次飞跃式发展。上世纪90年代,业界从单插槽独立服务器发展到服务器集群。紧接着在千禧年,产业首次看到双插槽服务器,再后来,多核处理器也问世了。进入下一个十年,GPU的用途远远超出了处理图形的范畴,我们见证了基于的加速器卡的兴起。

随着迈入2020年,网络接口卡(SmartNIC),也即数据处理单元(DPU)开始风靡。它们大量采用或多核Arm集群或是两者混搭,每种做法都能大幅提高求解性能。从股票交易到基因组测序,计算正在以更快的速度求解答案。在机箱内部,数据通道是PCI ExpressPCIe)。虽然几经变革,但它仍然是无可争议的选择。

PCIe的演进发展

高速外围组件互连PCIe2003年首次亮相,恰逢网络准备开始从以千兆位以太网GbE为主要互联的时代向更高网速的时代跃进。此时,MyrinetInfiniband等高性能计算HPC网络刚刚超越GbE,数据速率分别达到2Gb/s8Gb/s。此后不久,10-GbE网络接口控制器NIC崭露头角,而且性能优异。它们在每个方向上的速率接近1.25GB/s,这种8通道x8PCIe总线的诞生恰逢其时。

第一代PCIe x8总线在每个方向上的速率为2GB。当时16通道x16的插槽尚未问世,服务器主板一般只提供一些x8插槽和几个x4插槽。为了节省成本,部分服务器厂商甚至使用了x8连接器,但却仅将它们连接成x4,这确实十分有趣。

大部分人(像我一样的架构师)都知道,PCIe每发展一代,速度就会提高一倍。今天的第四代PCIe x8插槽的速率大约为16GB/s,因此,下一代速率将在32GB/s左右。如果第五代PCIe皆能达到这一水平,那确实也不错。不过它还像阿拉丁神灯那样神奇,能以CXLCCIX两种新协议的形式允诺在CPUSmartNIC或协处理器等加速器之间实现高效的通信。

CXL

我们先谈CXL。它提供了定义清晰的主从模式。在这种模式下,CPU的根联合体能通过与加速器卡的高带宽链接来共享高速缓存和主系统存储器(图1

图片.png

1.通过CXL与处理器相连的加速器的概念图。(来源:Compute Express Link Specification July 20200.9版第2次修订,第31页)

这有助于主机CPU高效地向加速器分派工作并接收处理结果。部分此类加速器使用DRAM或高带宽存储器HBM)来配备大容量高性能本地存储器。借助CXL,现在可将这些高性能存储器与主机CPU共享,从而更便捷地在共享存储器中处理数据集。

此外,对于原子事务,CXL能在主机CPU和加速器卡之间共享高速缓存存储器。CXL在改善主机与加速器间的通信方面有了长足的发展,但未能解决PCIe总线上的加速器之间的通信问题。

2018年,Linux内核最终加入了可支持PCIe点对点P2P)模式的代码。从而更方便在PCIe总线上的不同设备之间共享数据。虽然P2P早在本次内核更新前就已经存在,但它需要精心调试才能运行,往往要求用户能够通过编程就对等设备进行控制。更新内核后,加速器与PCIe总线上的PCIe/NVMe存储器或另一个加速器间的通信方式相对简化。

随着解决方案变得日益复杂,简单的P2P已不敷使用,而且会成为解决方案性能的制约因素。今天我们使用DIMM插槽中的永久存储器、NVMe存储和直接插在PCIe总线上的智能存储(SmartSSD),配以各种加速器卡和SmartNICDPU(其中一些本身就具有很大的存储容量)。由于在这些设备之间必须实现通信,因此我们昂贵的服务器处理器将化身为成本高昂的流量灯,并且成为海量数据流的瓶颈。CCIX在此情形下就能大显身手了,其环境适合在PCIe总线上的设备之间建立对等关系。

加速器缓存一致性互联

有人认为CCIX标准与CXL大同小异,但事实并非如此。在实现总线上点对点连接方面,CCIX的方法与CXL截然不同(图2。此外,它还能利用不同设备上的存储器,每个设备具有不同的性能特征,对这些存储器进行池化,并映射到单一的非统一存储器访问(NUMA)架构。随后它建立Virtual Address空间,使池中的所有设备都能访问NUMA存储器的完整范围。这已经远远超出简单的PCIe P2P存储器间复制或是由CXL实现的主从模式。

图片.png

2.三种样本CCIX配置包括直接附加、交换拓扑和混合菊花链。(来源:An Introduction to CCIX White Paper,第5页)

作为一种概念,NUMA自上世纪90年代以来一直存在,所以业界对它的理解也十分深入。以此为基础,当今的大多数服务器都能轻松地扩展到太字节(TB)或更大容量的DRAM存储器。不仅如此,能映射名为永久存储器(PMEM)或存储级存储器(SCM)的新型存储器的驱动程序业已存在,它能与真实存储器搭配,创建“海量存储器”。综合运用CCIX,将会进一步帮助系统架构师利用SmartSSD扩展这一概念。

计算存储

SmartSSD也叫计算存储,它将计算器件(通常为加速器)与固态驱动器中的存储控制器紧密布局,或在控制器中嵌入计算功能。从而使SmartSSD中的计算器件能够在数据出入驱动器的过程中处理数据,进而重新定义数据的访问和存储方式。

虽然SmartSSD最初被视为块设备,但在FPGA中安装适当的未来驱动程序后,可以当作可按字节寻址的存储使用。现今生产的SmartSSD有数太字节的容量,而且容量还会暴增。因此,只有通过NUMASmartSSD才能用于扩展大容量存储器概念,这样一来主机CPU和加速器应用就能跨大量设备访问数太字节容量的存储器,且无需使用该存储器重新写入应用。此外,通过实现内联压缩与加密,SmartSSD还能提供更佳的TCO解决方案。

引入SmartNIC

具体该如何使SmartNIC与该架构匹配呢?SmartNIC是一种特殊类型的加速器,位于PCIe总线和外部网络之间的连接处。SmartSSD将计算放在紧挨数据的位置上,而SmartNIC则让计算紧临网络。为什么这一点如此重要?简单地说,我们很少关注服务器应用自身的网络时延、拥塞、丢包、协议、加密、叠加网络或安全政策等问题。

为了解决这些问题,创建了QUIC等低时延协议,用于改善时延问题、缓解拥塞,以及实现丢包恢复。我们已经开发出了TLS并采用内核TLSkTLS)加以扩展,以加密运行中的数据,保障数据安全。我们现在看到正在将kTLS当作SmartNIC的一项卸载功能添加进来。

为了支持虚拟机(VM)和容器的编排,我们创建了叠加网络。随后又开发出Open vSwitchOvS)等技术,用于对叠加网络进行定义和管理。SmartNIC正在开始卸载OvS

最终,我们按照政策进行管理以确保安全。这些政策有望反映在CalicoTigera等形式的编排框架中。这些政策很快也将通过使用P4等编程匹配动作框架被卸载到SmartNIC。所有这些任务都应该卸载到名为SmartNIC的这类专用加速器上。

借助CCIX,架构师可以构建出一个解决方案,作为有单一虚拟地址空间的单个超量存储器空间,使多个加速器直接访问真实存储器和SmartSSD中的存储。例如,可使用四个不同的加速器来构建解决方案(图3

图片.png

3.图中所示的是样本CCIX应用,它使用了修改的CCIX 4c-混合菊花链模型。

SmartNIC能加载视频解码器,视频从摄像头导入后,就能转换回未经压缩的帧,存储在NUMA虚拟地址空间的共享帧缓存中。在这些帧可用后,运行在人工智能(AI)图像识别应用上的第二个加速器能扫描这些帧,识别人脸或车牌。与此同时,第三个加速器可以对这些帧进行转码,用于显示和长期存储。最后,运行在SmartSSD上的第四个应用负责在AI和转码任务成功完成后从帧缓存中删除这些帧。这里我们用四个高度专业的加速器协作运行,形成所谓的“Smartworld”应用。

行业开始添加了更多内核,以解决与摩尔定律相关的问题。如今,虽然内核的数量相当充裕,但CPUNIC、存储和加速器等外部器件间的带宽不足。PCIe Gen5是我们的下一个关键发展点。它能大幅提高带宽,开启在CPU上进行高性能计算的时代。

例如,典型的CPU核心能处理1Gb/s+,如果你采用双128CPU,那么PCIe Gen4x16是不够用的。对于需要在CPU核心和加速器之间进行密切交互的应用来说,CXLCCIX协议提供的高速缓存一致性具有诸多优势。数据库、安全性和多媒体等主要应用工作负载现在正开始利用这些优势。

编排

这个问题的最后一个环节是编排。这项功能指Kubernetes等框架能自动发现并管理加速硬件,并在编排数据库中将其标记为在线可用。它随后还需要知道该硬件是否支持上述一个或多个协议。随后,随着新求解实例请求的进入以及动态启动,能够由这些高级协议感知并加速的容器实例就可以使用该硬件。

已开发出资源管理器(XRM),能够与Kubernetes协同工作,管理池中的多个FPGA资源,从而提升加速器的整体利用率。这样一来,就能自动分派新发布的应用实例,使其在基础设施中最适当的高性能资源上执行,同时遵守既定的安全政策。

SmartNICDPU使用了CXLCCIX,将为我们提供高度互联的加速器,有助于开发复杂、高性能的解决方案。这类SmartNIC将在我们的数据中心内乃至整个世界范围内,向其他系统提供计算密集型连接。甚至可以构想这样一个未来:命令一旦进入Kubernetes控制器,就在SmartNIC资源上以原生运行的方式启动容器或POD。这个新工作负载的大量计算随后可能会在服务器中某处的加速器器件上进行,甚至完全不需要服务器主机CPU的直接参与。

要正确发挥这样的功能,我们就需要进一步强化安全,使安全水平远远高于CalicoTigera。此外,我们也需要新的加速器感知安全框架来将安全环境(通常称为安全飞地)扩展到多个计算平台上。这样就使得Confidential Computing有了用武之地。它应该同时提供所需架构和API,从而为单个安全飞地内多个计算平台上的在用数据提供保护。

所有敏感信息隔离设施(SCIF)都是如此。计算机中的安全飞地应能覆盖多个计算平台,而激动人心的时刻就在眼前。




关键词:PCIe5FPGA赛灵思

评论


相关推荐

技术专区

关闭