亚马逊自研芯片-异构芯片-NVIDIA分析
参考文献链接
https://mp.weixin.qq.com/s/frLCeSpu7v_BnlJ6BcCRMQ
https://mp.weixin.qq.com/s/duHY4NbXSBIk6nc572V8ww
https://m.mydrivers.com/newsview/877024.html?fr=kkj
亚马逊AWS自研芯片深度分析
去年的AWS re:Invent 2021有很多跟芯片相关的内容值得展开来说的事情。但网上已经有很多专业的文章了,我就不再班门弄斧一一介绍了。只好另辟蹊径,尝试从整体和发展的角度,和一些“可能存在”的“向左(定制)还是向右(通用)”的权衡,来分析一下AWS为什么过去和现在要做芯片和硬件自研这些事情,以及未来要往何处去。再次强调一下,芯片定制分为两个方面:芯片功能的定制还是通用,是个技术路径的问题;巨头通过定制芯片,满足自身需求,这是一个商业选择的问题。这两者不能混淆。1 硬件定制
硬件定制可以简单地分为两种模式:
- 由外而内。从通用的服务器等硬件出发,进一步优化(裁剪和增强)数据中心各种硬件产品,落地成标准化的硬件和系统设计,再通过规模化的部署,来达到降低成本的目的。例如,OCP倡导的各种OCP兼容的服务器、交换机及其他硬件设计。
- 由内而外。从内在的业务场景需求出发,通过软硬件深层次的协同优化设计,落地到个性化的硬件定制。各家互联网云计算公司,如AWS、微软和阿里云等,主要用于自身业务的各种硬件定制产品。
对于互联网巨头来说,设计并制造自己的硬件,以此来提高效率并建立竞争优势已经是显而易见的事情。亚马逊AWS不仅设计自己的计算服务器、存储服务器、路由器以及相关的核心芯片,还设计自己的连接全球以及数据中心内的高速网络。
(a) AWS定制交换机(b) AWS定制SDN网卡图1 AWS定制网络设备如果采用标准的商用路由器,出现问题,供应商最快需要花费六个月时间来修复问题。如图1(a),AWS根据自己的软硬件规格定义定制路由器,并且拥有自己的协议开发团队。虽然一开始的诉求主要是降低成本,但实际上最终的结果是,定制的网络设备不仅仅降低了成本,最大的收获是网络可靠性。AWS路由器采用的是AWS和博通(Broadcom)联合定制的具有70亿晶体管规模的ASIC芯片,总的处理带宽为3.2Tbit/s(数据来自AWS Re:Invent 2016)。AWS网络策略的另一个关键部分是SDN,AWS将SDN的其中一部分工作从软件卸载到硬件。如图1(b),通过硬件卸载网络功能,降低了CPU的资源消耗,并且降低了网络延迟以及网络的性能抖动。(a) AWS定制芯片(b) AWS定制计算服务器(c) AWS定制存储服务器图2 AWS定制芯片及服务器如图2(a),2015年AWS收购了Annapurna labs公司,之后Annapurna labs设计并生产了AWS定制芯片,可用于AWS各类定制服务器。AWS不仅仅定制硬件(板卡及服务器),也定制自己的芯片。通过芯片定制,可以更好地实现AWS对数据中心的各种创新。如图2(b),AWS定制1U的服务器,因此其在机架上会占满1U的槽位。没有采用更密集的在1U的槽位集成更多的服务器节点的做法,这样做是为了提高热效率和功率效率。如图2(c),AWS自定义的存储服务器在一个42U标准的机架上部署880块磁盘,升级后的存储服务器可以容纳1110块磁盘,存储容量为11 PB(数据来自AWS的Re:Invent 2016)。
2 虚拟化卸载和Nitro DPU芯片
2.1 AWS EC2虚拟化技术的演进
在介绍虚拟化演进之前,我们先介绍下虚拟化的三种方式:
- 完全软件虚拟化(Virt. in Software, VS):支持不需要修改的客户机OS,所有的操作都被软件模拟,但性能消耗高达50%-90%。
- 类虚拟化(Para-Virt., PV):客户机OS通过修改内核和驱动,调用Hypervisor提供的hypercall,客户机和Hypervisor共同合作,让模拟更高效。类虚拟化性能消耗大概为10%-50%。
- 完全硬件虚拟化(Virt. in Hardware, VH):硬件支持虚拟化,性能接近裸机,只有0.1%-1.5%的虚拟化消耗。
AWS EC2虚拟化技术演进图3是AWS“教科书”般的虚拟化迭代优化的演进示意图。我们只关注与性能最相关的CPU/Mem、网络I/O、本地存储I/O、远程存储I/O四类计算机资源。大致的演进介绍如下:
- 最开始,所有的计算机资源都是纯软件模拟的。
- Xen PV 3.0引入了PV,部分提升了性能。
- Xen HVM 3.0引入了CPU和内存的硬件虚拟化(基于Intel VT-x和AMD-v技术),大幅度提升了性能;这一时期,网络和存储I/O对处理带宽的要求还不高,PV的I/O虚拟化还是满足要求的。
- Xen HVM 4.0.1,没有优化四个主要的资源,性能提升不算明显。
- Xen AWS 2013,通过PCIe SR-IOV技术,正式引入了网络I/O硬件虚拟化。
- Xen AWS 2017,通过PCIe SR-IOV技术,正式引入了本地存储I/O硬件虚拟化。
- 2017年,AWS Nitro 2017。Nitro项目正式登场。站在I/O虚拟化的角度,NITRO项目的创新有限。NITRO最有价值的创新在于把Backend的网络和远程存储的Workload卸载到了NITRO卡上。从Nitro开始,云计算架构就走上了业务和基础设施在物理上完全隔离的路子。
- AWS Bare Metal 2017。裸金属机器和用于EC2虚拟机的Nitro 2017最大的区别在于有没有一层Lite Hypervisor。
2.2 Nitro DPU芯片的演进
严格来说,2017年底AWS宣布的Nitro系统是全球第一家真正商业落地的DPU芯片。AWS引领了DPU的潮流,随后DPU这个方向才逐渐火热了起来。
图4 AWS Nitro系统如图4所示,不同的EC2服务器实例类型包括不同的Nitro系统特性,一些服务器类型有许多Nitro系统卡,实现AWS Nitro系统的五大主要特性:
- Nitro VPC(虚拟私有云)卡;
- Nitro EBS(弹性块存储)卡;
- Nitro本地存储卡;
- Nitro控制器卡;
- Nitro安全芯片。
为什么需要这么多张卡?原因很简单,因为最开始的Nitro芯片其实是一张CPU卡:
- CPU性能弱,一张不够,就多张卡整合到一起完成想要的功能;
- CPU完全可编程,同样的芯片,同样的板卡,只需要后期运行不同的软件,就可以非常方便的实现不同的功能。
虽然,Nitro计算的主要载体是CPU,导致许多工作任务从Host CPU卸载到Nitro的嵌入式CPU上之后,性能并没有得到提升,有点“多此一举”。但实际上已经提供了很多价值:
- 做到了把VM的业务和宿主机侧的管理任务完全隔离,这样提供了很多安全方面的好处,并且可以打平虚拟机和物理机环境。业务和管理分离,还有很多其他好处,这里不一一展开了。
- 因为是嵌入式的CPU,所以,可以快速地开发新功能。例如基于Nitro嵌入式CPU,开发了SRD和EFA,为高性能的HPC提供解决方案。快速地为业务提供更强大的功能和服务价值,给客户提供更加快速而积极的功能支持,是云计算的核心竞争力。虽然消耗Nitro卡的资源多一些,但这些可以留待后续持续优化。
随着时间的推移,Nitro芯片势必会逐步的增加了各种加速引擎,整体性能也会得到增强。最新版的Nitro系统,则完全整合成了单芯片板卡。相比前面几代Nitro,功能更加的强大,而成本却得到了大大地降低。
2.3 AWS Nitro与NVIDIA DPU的本质区别
看2.2节的内容,很多人可能会认为,Nitro采用CPU设计,AWS的设计水平有限。为什么不像NVIDIA一样,集成各种ASIC的加速引擎呢?
还有一个类似的问题,在手机端,集成各种专用硬件加速引擎的手机SOC芯片已经非常成熟,但为什么数据中心的计算平台依然是以CPU为主?原因只有一个:数据中心场景,对软件灵活性的要求,远高于对性能的要求。如果不能提供灵活性(或者说易用性、可编程性),提供再多的性能都是“无本之木”。图4 Nitro和NVIDIA DPU的演进对比互联网云计算厂家的上层软件业务逻辑各不相同并且快速迭代,这几乎无法采用定制的ASIC设计。简而言之:定制的ASIC很难适合灵活多变的云场景。如图4所示,芯片公司(NVIDIA)根据自身对业务的理解,做定制ASIC。但这些ASIC实现的加速功能是芯片公司对业务场景的理解,并把业务逻辑固化到定制的设计中,使得云厂家很难基于此硬件平台开发出差异化的创新功能。并且,定制的设计,限制了云厂家的创新能力,并且使得云场景不得不跟硬件平台厂家深度绑定,这些对云厂家来说,并不是一件好事。如图4所示,AWS Nitro和NVIDIA DPU是两种不同方向的演进:- NVIDIA DPU演进:从硬到软,NIC -> SNIC -> DPU(DPU = SNIC+嵌入式CPU);定制设计,客户无法差异化,与云系统发展规律相悖。
- AWS Nitro演进:从软到硬,CPU基础上,逐步增加足够弹性的加速引擎;通用的设计,符合云系统发展规律。
NVIDIA,一开始就是完全ASIC的设计。虽然性能足够好,但却很难覆盖客户五花八门的各种差异化场景以及各种场景未来2-3年的中长期迭代。即使非常熟悉自身的场景需求,AWS所做的硬件优化,依然是非常审慎的。AWS并没有贸然的做ASIC,而是做足够灵活弹性的硬件加速。这使得,整个Nitro芯片,具有非常强大的灵活可编程能力。
3 Graviton CPU,跟Nitro走向不同的方向
3.1 Graviton CPU的演进
图5 Winnie Shao博士总结的Graviton CPU的3代演进
在AWS re:Invent 2021大会上,AWS发布了最新一代的ARM CPU芯片Graviton 3。相比2018年发布的Graviton 1和2019年发布Graviton 2,有了很大的改进。话不多说,直接上图。如图5所示,Winnie Shao博士是CPU领域的专家,她总结的这个表格已经非常完善了,我就不再班门弄斧了。3.2 Graviton CPU和Nitro DPU的渊源
第一代Nitro是在AWS re:Invent 2017上发布的,初代Nitro本质是一款CPU芯片。随后一年,re:Invent 2018发布了Nitro 2代以及Graviton 1代ARM CPU芯片。我们大约可以推断,Nitro 2主要升级了CPU的性能,Nitro 2代和Graviton CPU 1代是比较接近同一款芯片的设计。
![](/i/l/?n=23&i=blog/1251718/202212/1251718-20221205045634910-501620166.png)
图6 推测的AWS ARM服务器架构示意图由于ARM CPU核的单核性能相比x86 CPU核仍有差距,要想更好地实现降成本的目标,势必需要在ARM服务器的高计算密度方面做文章。如图6所示,这是我们推测的ARM服务器内部架构,也只有这样,Nitro System组成一个平台化的系统,提供Multi-Host的机制给到CPU,可以支持4-8块CPU计算节点。这样,可以在单台服务器规模,最多容纳16颗ARM CPU。更极端的推测,如果Graviton和Nitro是同一颗芯片的话,AWS ARM服务器相当于包含了21颗CPU芯片。
图7 Graviton和Nitro的演进区别如图7所示,Graviton和Nitro可以说“同宗同源,师出同门”,但却因为分工和定位的不同,逐渐走向了两个不同的方向:
- Graviton的Scale Out模式。Graviton定位为主CPU。势必需要提供更加强大的单核性能以及提供更高的水平扩展性,也就是说单芯片要集成更多的CPU核,以及要支持多CPU的跨芯片缓冲一致性互联。
- Nitro的Scale Up模式。Nitro的主要工作是卸载、隔离和加速。只隔离和卸载,不解决本质问题,只有通过硬件加速才真正实现性能提升和成本降低。所以,Nitro的演进,势必走向通过硬件加速,疯狂地提升单芯片的处理性能的路子上。
4 应用加速芯片
4.1 CPU、DPU和GPU/FPGA/DSA
CPU、GPU/FPGA/DSA以及DPU的关系如图CPU、GPU/FPGA/DSA和DPU,三者的关系就像《三体》描述的那样,既相互协作,又相互竞争,最终达到一个相对稳定的状态:
- DPU主要定位基础设施层的加速和处理;
- GPU/FPGA/DSA主要负责应用层的加速;
- CPU负责应用层的常规处理。
当然,DPU有个优势是DPU是所有数据的入口/出口。按照互联网“得入口者得天下”的说法,DPU会成为云计算各类服务承载的核心。
GPU/FPGA/DSA主要用于应用加速。顾名思义,应用加速是提供给用户业务应用的服务,针对用户性能敏感的业务场景,针对特定应用提供硬件加速平台。应用加速所使用的加速平台则是暴露给用户使用的,用户可以感知到并且用户根据自己的想法来使用硬件加速平台。与之对应的,VPC、EBS等基础服务,即使云计算厂家通过专有的硬件加速,这些加速用户也是无法感知的。应用加速平台常见有三种类型:- GPU加速的云主机。例如,AWS EC2 P3实例可以提供高性能的计算,可支持高达8个 NVIDIA V100 GPU,可为机器学习、HPC等应用提供高达100Gbps的网络吞吐量。
- FPGA加速的云主机。例如,AWS EC2 F1实例使用FPGA实现自定义硬件加速交付。
- DSA/ASIC加速的云主机。例如,AWS EC2 Inf1实例可在云端提供高性能和最低成本的机器学习推理。这些实例具有多达16个AWS Inferentia芯片,这是由AWS设计和打造的高性能机器学习推理芯片。
4.2 为什么要为特定场景定制芯片
AWS发布了Inferentia定制芯片,它不像Graviton这样的通用CPU处理器什么都能干,而是专注于机器学习推理。通用CPU处理器可以支持足够广泛的各种工作负载类别,当然也包括机器学习推理,为什么还要开发特定工作负载的专用处理器?
的确,通用CPU处理器多年来一直承担着绝大部分的工作负载,CPU数量非常庞大,因此单位的成本可以做到比较低。低成本的优势可以抵消为特定工作负载芯片定制的优势。当只有少量服务器运行特定工作负载时,很难从经济上证明芯片定制优化是合算的。在计算领域之外,芯片定制在网络领域大放异彩。网络数据包处理是高度专业化的,网络协议很少更改。数量足够大,定制就非常的经济。因此,大多数网络数据包处理是使用ASIC芯片完成的。大多数路由器,无论来源如何,基本都是建立在专门的ASIC之上的。虽然,定制ASIC硬件可以将延迟、性能价格比以及性能功耗比提高高达十倍。但是,这么多年以来,大多数的计算工作负载仍“顽强”地停留在通用CPU处理器上。通常,每个客户服务器数量不多,芯片定制通常意义不大。但是,云计算改变了这一切。在成功且广泛使用的云中,即使是“稀有”工作负载,其数量也可能达到数千甚至数万。过去,作为企业,几乎不可能证明芯片定制,针对特定工作负载的加速处理,是足够经济的。但在云中,有成千上万足够罕见的工作负载。突然之间,不仅可以针对特定工作负载类型进行硬件的优化,而且如果不这样做,反而显得有点“不够积极”。在很多情况下,芯片定制不仅仅可以把成本降低一个数量级,电量消耗减少到1/10,并且这些定制化的方案可以给客户以更低的延迟提供更好的服务。定制的芯片将成为未来服务器端计算的重要组成部分,亚马逊自2015年初以来就有一个专注于AWS的芯片定制团队,在此之前,AWS与合作伙伴合作构建专业化解决方案。在re:Invent 2016大会上,AWS发布了一款安装在所有服务器中的定制芯片(James Hamilton的星期二夜现场,Nitro的前身)。尽管这是一个非常专业的定制芯片,但AWS每年安装的此类定制芯片超过一百万,而且这个数字还在继续增加。在服务器领域,它实际上是一个销量非常大的芯片了。机器学习工作负载需要的服务器资源将比当前所有形式的服务器计算的总和还要多。机器学习的客户价值几乎适用于每个领域,潜在收益非常巨大。机器学习几乎可以立即适用于所有业务,包括客户服务、保险、金融、供暖/制冷以及制造。一项技术很少有像机器学习一样如此广泛的应用,当收益如此之大时,这对大多数企业来说就是一种赛跑。那些最先深入应用机器学习的人或组织可以更有效、更经济地为客户服务。AWS专注于让机器学习的快速部署变得更加容易,同时降低成本,让更多的工作负载可以更经济地使用机器学习。规模和针对特定场景的优化,是Inferentia等工作负载专用加速芯片发展的最本质的驱动力量。未来,在大型数据中心,除了AI训练和推理芯片,也会出现很多面向其他工作负载,如视频图像处理、大数据分析、基因组学、电子设计自动化 (EDA)等,的特定加速芯片。4.3 AI-DSA推理芯片Inferentia
Inferentia是AWS第一款AI推理芯片,而基于Inferentia的Inf1实例针对ML推理进行了优化,与基于GPU的同类EC2实例相比,Inferentia的推理成本下降80%,吞吐量提高2.3倍。使用Inf1实例,客户可以在云端低成本运行大规模ML推理应用程序,例如图像识别、语音识别、自然语言处理、个性化和欺诈检测。
![](/i/l/?n=23&i=blog/1251718/202212/1251718-20221205045930531-914244897.png)
图9 AWS inferentia AI推理芯片Inferentia的高性能。每个芯片具有4个神经元核心,可以执行高达128 TOPS(每秒数万亿次操作)。它支持BF16、INT8和FP16数据类型。并且,Inferentia可以采用32位训练模型,并使用BF16的16位模型的速度运行它。亚马逊推理,低延迟的实时输出。随着ML变得越来越复杂,模型不断增长,将模型传入和传出内存成为最关键的任务,这带来了高延迟并放大了计算问题。Inferentia芯片具有在更大程度上解决延迟问题的能力。多芯片互联:首先可以将模型跨多个内核进行分区,并使用100%的片内内存——通过内核流水线全速传输数据,防止片外内存访问引起的延迟。支持所有框架。机器学习爱好者可以轻松地将几乎所有可用的框架上运行在Inferentia。要运行Inferentia,需要将模型编译为硬件优化表示。可以通过AWS Neuron SDK中提供的命令行工具或通过框架API执行操作。
4.4 AI-DSA训练芯片Trainium
图10 AWS Trainium AI训练芯片
如图10所示,在AWS re:Invent 2020开发者大会上,AWS发布了其设计的主要用于机器学习训练的第二款定制的AI芯片--AWS Trainium。它提供比云端任何竞争对手更高的性能,同时支持TensorFlow、PyTorch和MXNet等。这款定制芯片的主要优势是速度和成本,AWS承诺与标准AWS GPU实例相比,吞吐量提高30%,每次推断的成本降低45%。Trainium芯片还专门针对深度学习训练工作负载进行了优化,包括图像分类、语义搜索、翻译、语音识别、自然语言处理和推荐引擎等。它将以EC2(亚马逊弹性计算云)实例的形式出现在亚马逊的机器学习平台SageMaker中。Trainium与Inferentia有着相同的AWS Neuron SDK,这使得使用Inferentia的开发者可以很容易地开始使用Trainium。因为Neuron SDK集成了流行的机器学习框架,包括TensorFlow、PyTorch和MXNet,开发人员可以轻松地从基于GPU的实例迁移到Trainium,代码更改很少。5 Nitro SSD
图11 Nitro SSD的位置
Nitro SSD是一张独立的SSD盘,使用了专用的SSD控制器芯片,我们姑且称之为Nitro SSD Controller。为什么叫“Nitro” SSD?我理解是因为这个SSD是挂在Nitro卡之下,并且为了整个系统极致的优化,内部的一些协议或算法跟Nitro卡内部有一定的协同,不管是用于本地存储或者是EBS远程存储。AWS Nitro SSD,使AWS能够为客户提供具有大量IOPS、大量吞吐量和 64 TiB 的最大卷大小的EBS卷。Im4gn和Is4gen实例使用第二代AWS Nitro SSD,未来许多新的EC2实例也将使用Nitro SSD。AWS Nitro SSD每个设备内部的固件负责实现许多较低级别的功能。当客户将设备推向极限运行时,客户希望我们能够诊断并解决他们观察到的任何性能不一致问题。构建AWS自己的设备使AWS能够设计操作遥测和诊断,以及使AWS能够以云规模和云速度安装固件更新的机制。更进一步的,AWS开发了自己的代码来管理实例级存储,以进一步提高可靠性和调试能力。在性能方面,对云工作负载的深入了解促使AWS对设备进行设计,以便它们能够在持续的负载下提供最高性能。SSD由快速、密集的闪存构成。由于这种半导体存储器的特性,每个单元只能被写入、擦除和重写有限的次数。为了使设备的使用寿命尽可能长,固件负责一个称为磨损均衡的过程。这个过程涉及一些内务管理(一种垃圾收集形式),在处理大量写入时,各种类型的SSD可能会在不可预测的时间变慢(产生延迟峰值)。AWS还利用数据库的专业知识,在SSD固件中构建了一个非常复杂、断电安全的基于日志的数据库。第二代AWS Nitro SSD旨在避免延迟峰值并在实际工作负载上提供出色的I/O性能。基准测试显示,使用AWS Nitro SSD的实例(例如新的 Im4gn 和 Is4gen)的延迟可变性比I3实例低75%,从而为客户提供更加一致的SSD性能。6 综合分析
从定制硬件整机开始,再逐步深入到定制芯片,然后慢慢地把上层的软件、芯片以及硬件整机全方位协同并整合到一起,亚马逊AWS逐渐构筑起自己特有的、最强大的竞争优势。图12 以AWS为例的数据中心核心芯片示意图聚焦到芯片,简单总结一下。
如图12所示,整个数据中心核心的芯片有如下类型:CPU、GPU/FPGA/各种DSA加速芯片、DPU、SSD等高性能存储控制芯片以及交换机芯片。未来AWS应该要做的是:数据中心关键芯片还没有的会逐渐补齐,已有的芯片类型后续会持续增强。详细的综合分析如表1所示。表1 AWS芯片自研综合分析
位置 |
类型 |
子类型 |
代号 |
分析&推测 |
服务器侧 |
CPU |
CPU |
Graviton |
重要性:★★★★★ CPU是数据中心算力的最核心器件,ARM服务器CPU反响不错,AWS应该会持续重金投入,加大ARM服务器CPU的使用量,提升ARM服务器的整体占比。
|
应用加速 |
GPU |
无 |
重要性:★★★★★ 在AI的算法模型还没有稳定之前,GPU都是AI算力的重要承担者,NVIDIA如日中天。AWS因为其上层软件生态的优势,以及云计算的运营模式,有能力抵消其在GPU生态上的劣势。预计未来AWS会自研GPGPU芯片,并加入EC2家族对外提供服务。
|
|
FPGA |
无 |
重要性:★★☆☆☆ FPGA作为FaaS平台,对云计算上层服务来说,没有那么直接,需要客户或第三方ISV开发加速硬件和配套的软件。FaaS不是主流的云服务,并且Xilinx和Intel的FPGA都相对成熟稳定,FPGA应该不是AWS发展的重心。
|
||
DSA-AI-推理 |
Inferentia |
重要性:★★★★☆ AI推理和训练我们放到一起。AI是应用的王者,并且是算力的吞金兽,必须要做各种定制加速DSA。并且,云计算的模式也可以先天抵消DSA-AI的许多使用门槛。通过云的封装,可以提供各种框架服务甚至SaaS层AI服务,使得AI-DSA芯片能大范围地用起来。对AWS来说,AI相关的定制芯片,是必须要持续投入,持续优化和增强的。
|
||
DSA-AI-训练 |
Trainium |
|||
DSA-其他 |
无 |
重要性:★★★☆☆ 除了AI,也有很多其他算力需求高的工作任务。随着发展,也会出现新的需要高算力的工作任务,比如元宇宙,就对图形图形处理、网络等提出了更高的要求。GPGPU的效率有所欠缺,并且可见的未来也会像CPU一样达到性能瓶颈。专用的图形GPU或者VPU可能会成为AWS下一个定制的DSA芯片。
|
||
DPU |
DPU |
Nitro |
重要性:★★★★★(★) 因为软件生态的强大,CPU是数据中心最核心的芯片。但CPU芯片的功能定义已经足够成熟,只需要持续优化升级改进即可。而DPU的挑战在于,DPU是整个云计算服务承载的核心,不仅仅是要提供足够的性能,更是要把现有的许多服务,不仅仅是IaaS层服务,也包括PaaS甚至SaaS的服务,要融入DPU中。可以说,DPU是云计算最战略级的芯片,没有之一。给六颗星,不为过。
|
|
CPU、GPU、DPU的整合 |
无 |
重要性:★★★★★ NVIDIA有CPU+GPU的处理器,也有CPU+GPU+DPU的Atlan,未来CPU、GPU、DPU两两整合,或者三者整合成独立的单芯片加速平台是一个越来越明显的趋势。集成大芯片,会在性能和成本方面带来很多的好处。随着数据中心规模的增大,以及一些场景逐渐稳定成熟,把CPU、GPU、GPU重新整合重构,是一个必然的趋势。
|
||
存储盘 |
SSD |
Nitro SSD |
重要性:★★★☆☆ 存储控制器厂家,很容易“只见树木,不见森林”,导致无法站在数据中心超大规模的全局去思考问题,这也会导致存储卡会成为性能稳定性和数据安全的潜在风险。类似ZNS技术,AWS通过自研Nitro SSD跟Nitro DPU芯片更好地协同,给客户提供更稳定更安全的存储服务。只是,与整个数据中心计算相比,这块相对来说属于“枝叶”,一旦稳定,后期应该不需要投入太多。
|
|
交换机侧 |
Switch |
Switch |
无 |
重要性:★★★★★ 更简单的网络,还是更复杂的网络?网络到底要不要分担计算的压力,足够Smart来处理一些计算的任务?还是提供极致简单且极致性能的网络,把可能的计算都交给用户,让用户掌控一切?上面说的这些话,如何选择都没关系。重要的是,交换机是网络的核心,网络又是云计算的前提。没有网络,计算和存储什么都不是。这一条就够了!交换机侧,AWS这种体量的云计算公司一定不会放过。期待AWS在交换机侧的创新!
|
参考文献
- AWS Innovation Scale, James Hamilton, Re: Invent 2016, https://mvdirona.com/jrh/talksandpapers/ReInvent2016_James%20Hamilton.pdf
- AWS EC2 Virtualization 2017: Introducing Nitro, https://www.brendangregg.com/blog/2017-11-29/aws-ec2-virtualization-2017.html
- AWS Nitro System, James Hamilton, https://perspectives.mvdirona.com/2019/02/aws-nitro-system/
- AWS Graviton3:遵循摩尔定律又有自己节奏,Winnie shao,“企业存储技术”公众号,https://mp.weixin.qq.com/s/IFIIJ5sF4yvyGkrcsTPnLw
- AWS Inferentia Machine Learning Processor, James Hamilton, https://perspectives.mvdirona.com/2018/11/aws-inferentia-machine-learning-processor/
- Deep dive into Amazon Inferentia: A custom-built chip to enhance ML and AI, https://www.cloudmanagementinsider.com/amazon-inferentia-for-machine-learning-and-artificial-intelligence/
- MacOS上云了!AWS还推出机器学习Trainium芯片:万亿次浮点运算,推理成本再降45%,新智元,https://mp.weixin.qq.com/s/4xkLq4S1ZaZLuqQSNHI0_Q
- AWS Nitro SSD – High Performance Storage for your I/O-Intensive Applications, https://aws.amazon.com/cn/blogs/aws/aws-nitro-ssd-high-performance-storage-for-your-i-o-intensive-applications/
通用超异构处理器
记得之前看过专门介绍各种PU List的文章,最大的感受是:处理器类型很多很多,从APU到ZPU,26个字母都已经被用光了。大家可能对这些PU都耳熟能详,但要说到各个PU之间的关系和协作,可能大家了解甚少。今天我们会进行基本的介绍。
本文章主要介绍综合的、融合的基于超异构计算的通用处理器GP-HPU(General Purpose Hyper-heterogeneous Processing Unit)。
1 不同处理器类型的分类和协同
目前有个基本的思考框架,来把各种PU进行划分:系统是由分层分块的模块组成的,这样我们可以大致上把系统分为三部分,如上图所示。
各类PU分析如下:
- CPU,中央处理器,是最核心的处理器。目前其他各种处理器,号称取代CPU的核心地位,这些表述是不对的:你只是代替CPU干脏活累活,一切的控制和管理依然是CPU来完成。
- 各类加速器芯片。通过CPU+xPU的异构计算架构,如GPU、FPGA加速器、各类AI芯片(谷歌TPU、graphcore IPU、NPU、BPU等)以及其他各种加速芯片,这类芯片没法单独运行,需要有CPU的协作,构成CPU+xPU的异构计算的方式运行。
- DPU。目前,大家对DPU的理解是,DPU主要负责系统I/O的处理。不管是网络I/O还是远程存储I/O,都需要走网络,因为DPU被不少人认为是I/O加速的处理器。更深一层的理解,是DPU是作为基础设施处理器的存在,负责整个系统底层工作的处理。
- SOC,系统级芯片。把整个系统的所有处理放在一个芯片里,有各种加速引擎负责性能敏感的工作任务,CPU负责一些基本任务的处理和整个系统的控制和管理。
不管叫什么PU,逃不开这四个类型。
2 场景特点:综合、通用以及资源预备
许多AI芯片或系统落地面临的一个主要问题是“我好不容易做了一盘饺子,可用户需要的是一桌菜肴”。也即是说,客户需要的是综合性的系统解决方案,而AI只是其中的一部分,甚至非常小的一部分。
具体的终端应用场景包罗万象,但云端和边缘端,却都是清一色的服务器来提供服务端的运行以及和终端的协同。这些服务器,可以服务各行各业、各种不同类型的场景的服务端工作任务的处理。云和边缘服务器场景,需要考虑服务端系统的特点(微服务化功能持续解构,并且还和多租户、多系统共存),对系统的灵活性的要求远高于对性能的要求,需要提供的是综合性的通用解决方案。
在云和边缘数据中心,当CSP投入数以亿计资金,上架数以万计的各种型号、各种配置的服务器的时候,严格来说,它并不知道,具体的某台服务器最终会售卖给哪个用户,这个用户到底会在服务器上面跑什么应用。并且,未来,这个用户的服务器资源回收之后再卖个下一个用户,下一个用户又用来干什么,也是不知道的。因此,对CSP来说,最理想的状态是,存在一种服务器,足够通用,即不管是哪种用户哪种应用运行其上,都足够高效快捷并且低成本。只有这样,系统才够简单而稳定,运维才能简单并且高效。然后要做的,就是把这种服务器大规模复制(大规模复制意味着单服务器成本的更快速下降)。
服务器都是相对通用,服务器上目前大芯片就三个位置,也就是我们通常所说的数据中心三大芯片的位置:CPU、业务加速的GPU以及基础设施加速的DPU。大家要做的,就是自己芯片的定位,以及同其他各种厂家的各种芯片来竞争这三个位置。
有些专用的芯片,用在特定领域,需要设计专门的服务器,这种方案都流离在整个云和边缘计算主流体系之外的,落地门槛很高,也很难大规模落地。
3 超异构处理器是什么?
系统持续演进:
- 第一阶段,性能要求不高,CPU能够满足要求。目前数据中心大量服务器依然是只有CPU处理器。
- 第二阶段,性能敏感类任务大量出现,不得不进行异构加速。如AI训练、视频图像处理,HPC等场景。这类场景,目前的状况主要:NVIDIA GPU+CUDA为主流,FPGA FaaS非主流,AI类的DSA落地较少(包括谷歌TPU,也不算成功)。
- 第三阶段。DPU的出现,CPU、GPU和DPU共同构成数据中心的三大处理芯片。
- 第四阶段,再融合。
为什么不是独立多芯片?为什么需要融合单芯片?融合单芯片是有诸多优势的:
- 融合有利于计算的充分整合,进一步提升数据计算效率;
- 系统成本跟主要芯片的数量是直接相关的,融合型单芯片可以进一步降低成本;
- 融合系统,内部功能划分和交互统一构建,相比三芯片方案,可以显著降低彼此功能和交互的各种掣肘(相互拖累);
- 大部分(80%-90%)场景是相对轻量级场景,通过超异构的单芯片可以覆盖其复杂度和系统规模;
- Chiplet加持,可以通过多DIE单芯片的方式,实现重量级场景的覆盖。
超异构处理器,可以认为是由CPU、GPU、各类DSA以及其他各类处理器引擎共同组成的,CPU、GPU和DPU整合重构的一种全系统功能融合的单芯片解决方案。
3.1 为什么叫超异构处理器?
首先,不能叫超融合处理器。超融合的概念是云计算领域一个非常重要的概念,大致意思是说在小规模集群能够把云计算的IaaS层的服务以及云堆栈OS完整部署,可以提供给企业和私有云场景的云计算解决方案,并且因为和公用云堆栈OS是同一的体系,可以实现混合云的充分协同。超异构处理器和超融合没有必然联系,可以支持小集群的超融合,也可以支持大集群的不“融合”。
NVIDIA对DPU的未来愿景:数据量越来越大,而数据在网络中流动,计算节点也是靠数据的流动来驱动计算,计算的架构从以计算为中心转向了以数据为中心。所有的系统本质上就是数据处理,那么所有的设备就都可以是Data Processing Unit。所以,未来以DPU为基础,不断地融合CPU和GPU的功能,DPU会逐渐演化成数据中心统一的处理器(只是,目前没有叫超异构HPU这个名字罢了)。
不管名称具体叫什么,这个处理器,一定是基于多种处理引擎混合的(超异构计算)、面向宏系统场景的(MSOC,Micro-SOC)、数据驱动的(DPU,Data Processing),一个全新的处理器类型。
4 超异构处理器和传统SOC的区别
严格来说,超异构处理器也是属于SOC的范畴。但如果只是称之为SOC,那无法体现超异构处理器和传统SOC的本质区别。这样,不利于我们深刻认识超异构处理器的创新价值所在,以及在支撑超异构处理器需要的创新技术和架构方面积极投入。
如下表格为超异构处理器和传统SOC的对比:
5 超异构处理器,是否可以极致性能的同时,还足够“通用”?
每一种处理器(引擎)都有其优势,也都有其劣势:
- CPU非常通用,能够干几乎所有事情。但劣势在于,其性能效率是最低的。
- DSA的性能足够好,劣势在于只能覆盖特定的领域场景,其它领域场景完全没法用。
- GPU,介于两者之间。能够覆盖的领域场景比DSA多、比CPU少,性能比CPU好但比DSA差。
复杂的宏系统,存在“二八定律”。比如,在服务器上,永远少不了的虚拟化、网络、存储、安全类的任务,以及很多服务器都需要的文件系统、数据库、AI推理等。因此,我们可以把系统计算当做一个塔防游戏:
- 在最前端,主要是各类DSA。他们的性能很好,负责处理算力需求强劲的任务。这些任务占整个计算量的80%。
- 中间是GPU,性能也不错,覆盖面也不错。则负责处理剩余20%中的80%的计算量。
- 而CPU的任务,就是兜底。所有“漏网之鱼”都由CPU负责处理。
这个思路,也对应我们第一部分介绍的系统的三类任务划分。
按照这个思路,我们再通过一些软硬件融合的系统设计,提供更多的通用性、灵活性、可编程性、易用性等能力,然后再不断的集成新的性能敏感任务的加速。基本上,这样的通用超异构处理器,可以在提供极致性能兼极致灵活性的同时,可以覆盖大部分云、边缘和超级终端的场景。
6 超异构处理器可以用在哪里?
超异构处理器HPU相比传统SOC,最核心的特点是宏系统,需要支持虚拟化和多租户多系统共存,需要支持资源、数据和性能隔离。因此,超异构处理器主要用在云计算、边缘计算以及自动驾驶超级终端等复杂计算场景:
- 云端重量级服务器。首先,HPU可以当做DPU来使用;更长远的,可以通过Chiplet方式实现HPU对重量级场景的覆盖。
- 云端轻量级服务器。可以实现HPU单芯片对目前以CPU为主的多个芯片的集成,并且性能显著提升。
- 边缘计算服务器。类似云端轻量服务器,可以通过单芯片集成的HPU实现所有计算的全覆盖。
- 超级终端。以自动驾驶为典型场景,目前也是逐渐地从分布式的ECU、DCU向集中式的超级终端单芯片转变。这将是HPU在终端场景的典型应用。
总结一下,超异构处理器的核心价值在于确保整个系统如CPU一样极致灵活性的同时,还可以提供相比目前主流芯片数量级的算力提升。可以用在云计算、边缘计算、超级终端等各类复杂计算场景。
NVIDIA已经不是显卡公司!找到新的印钞机了
前两天,世超在冲浪找选题的时候,发现英伟达公布了自家 2023 年第三季度的财报。
结果我点开财报一看,发现最赚钱的并不是 4090 等显卡业务,财报第一句话就给我整不会了。
数据中心反而被摆在了第一行的位置,而且营收和增长情况都不差。
不仅如此,在谈到具体的进展时,数据中心也被第一个拿出来讲,密密麻麻写了一大篇。
财报上说,数据中心在第三季度的收入为 38.3 亿美元,较去年同期增长 31% ,较上一季度增长 1% 。
乍一看这 1% 好像很一般,但是隔壁卖显卡的游戏业却下降了 23% ,收入为 15.7 亿美元。
再简单来讲,大家都以为英伟达是个卖显卡的,然而这方面却并不是英伟达最专业的业务,数据中心才是。
而且这玩意儿并非英伟达一家独大,大家熟悉的微软、亚马逊和 AMD 等都有类似的服务,而且都数钱到数到手抽筋儿。
那么问题来了,啥是数据中心啊?它为啥这么赚钱?
其实咱们只要还拿英伟达的财报举例子,把里面的条条款款拆开看一遍就知道了。
比如收入后面紧接着就写到,新一代 NVIDIA GPU 和 Quantum-2 系统已得到广泛采用。
而这个 Quantum-2 系统是英伟达的一个网络平台,由交换机、网络适配器和数据处理单元组成,速度可以飚到 400Gb/s 。
能够为 AI 开发者和科研人员提供最牛逼的网络性能,足以应对世界上最具挑战性的问题。
翻译一下就是:商用产品,跟咱们臭打游戏的半毛钱关系都没有。
再往下看,英伟达还跟甲骨文有一波 PY 交易,但仍然以商用为主。
甲骨文有一个东西叫做 Oracle Cloud Infrastructure 甲骨文云服务基础设施,简称 OCI 。
OCI 能够提供的服务奇多无比,从云分析、数据库管理再到网络防火墙等等,只要是和网络沾边的服务,没有他做不了的,只有你想不到的。
光是 A 开头的服务,就有 10 项。
而就在今年,甲骨文宣布将会展开多年与英伟达的深度合作,把英伟达加速计算和 AI 训练等技术带到 OCI 上面。
那么该怎么加速计算和训练 AI 呢?买显卡。
但是此显卡并非彼显卡,甲骨文买的并不是 4090 等 “ 泛泛之辈 ” ,而是美国政府禁止英伟达售卖给中国的 A100 和 H100 。
这玩意儿主要用于商用和人工智能等领域,一个就能卖你 10 万块钱,性能直接干翻 7 块 3090 。
甲骨文肯定不会只买一两块显卡,具体的交易金额世超不清楚,但从 “ 为期多年 ” 这几个字也能看出来是一笔大买卖。
所以再翻译一下就是:商用产品,跟咱们臭打游戏的半毛钱关系都没有。
如果到这里你还能听懂的话,那剩下的东西真是给世超看的一头雾水,什么 NeMo LLM 、BioNeMo LLM 、AI Enterprise 。
啥啥啥,这写的都是啥啊?
不过最终我还是在一大段财报里发现了一个亲切的单词 —— Microsoft ,巨硬。
同样宣布与微软展开为期多年的合作,同样也是为 Microsoft Azure 部署数大量的商用显卡,这个套路跟上面提到的甲骨文其实差不多。
Azure 可不是什么等闲之辈,国内有不少人都认识甚至用过 Azure 云服务。
而且这里就要把微软的财报也拉过来了,因为说出来你们可能不信,微软最赚钱的业务不是 Xbox ,不是 Office ,更不是 Windows ,正是 Azure 云服务。
在微软 2022 财年第四季度的财报中,营收最多的是 Azure 云服务,达到 209 亿美元,同比增长 20% 。
而个人计算机业务和生产力业务的营收分别为 144 亿美元和 166 亿美元。
你可以简单把 Azure 当成是一个云服务,但它严格来讲是一个云计算平台,可以帮助开发者开发程序,并且可以使用微软的存储和网络基础服务等等。
尽管是云端服务,但开发和运算归根结底还是需要大量的算力和硬件支持,所以就不难理解微软为啥要和英伟达 “ 称兄道弟 ” 了。
Azure 能提供的服务同样非常广泛,还有不少登陆即送的永久免费项目,对新手非常友好。
但像是虚拟机等功能还是得乖乖付钱,要不然人家 200 多亿是怎么挣的。
所以看到这儿你也明白了,微软最赚钱的业务,依然跟咱们臭打游戏的半毛钱关系都没有。
难道这些大厂最赚钱的业务,真就和咱们普通小老百姓一点关系都没有了呗?
其实没那么离谱,你要是想用也能用,比如亚马逊 AWS 就提供了基本的个人云存储服务。
AWS 是世界上使用最广泛的云服务之一,它的服务差不多可以分为三大类:云计算、数据库和云存储。
在很多人的眼里,亚马逊还是一个国际大卖,其实 AWS 业务开展已经有年头了,而且是亚马逊最重要的业务之一。
甚至在他们的财报上,部门竟然是按照北美部门、国际部门和 AWS 部门来分类的。
而在 2022 年度第三季度的财报上,AWS 部门的销售额有同比 27% 的增长。另外两个则分别是增长 20% 和下降 5% 。
更离谱的是营收,和去年同期相比,北美部门从小赚变小亏,全球部门从小亏变成了血亏。
只有 AWS 部门,从血赚变成大赚特赚。
AWS 的云服务相对来讲也是最亲民的,它不仅支持个人云存储,还免费提供 30GB 的空间,可以往这个小角落存点七七八八的东西。
这玩意儿用起来依然有一点门槛,如果你对网络数据啥的不是很了解,还是建议老老实实用云盘。
但话说回来,正是这些看上去有门槛的东西,成为了各家大厂最赚钱的业务。
显卡大厂英伟达、软件出身的微软、电商起家亚马逊,他们的起步各不相同,但现在都选择了数据服务这条路。
就连大家直呼 YES 的 AMD ,在面对疲软的 PC 市场表现时,苏妈也要在财报里夸一句数据中心业务有所增长。
这么一看,这些大厂好像已经没法再从我们这群臭打游戏的身上赚到更多钱了?
确实没那么赚了,但这并不意味着没法从我们身上赚钱,或者说零售行业就不重要了,而是大家找到了更赚钱的方向。
当一个领域被挖掘并加大商业化力度,也说明资本嗅到了商机,这代表它在以后是可以持续产生大量利润的。
而且现在大家动不动就什么云服务和 AI 啥的,但凡是个明眼人就能看得出来,这些东西就是未来的大趋势。
那既然以后的世界里,AI 化和云服务化不可避免,这些科技也能让人们的生活更加便利,为啥不能往这个方向发力呢?
现在是数据为王,等没准过了十几年,另外一个风靡世界的新技术登场,大家说不定就会再次更换赚钱的方向。
参考文献链接
https://mp.weixin.qq.com/s/frLCeSpu7v_BnlJ6BcCRMQ
https://mp.weixin.qq.com/s/duHY4NbXSBIk6nc572V8ww
https://m.mydrivers.com/newsview/877024.html?fr=kkj
标签:DPU,Nitro,芯片,AWS,自研,NVIDIA,服务器,CPU From: https://www.cnblogs.com/wujianming-110117/p/16951347.html