CPU是整个IT生态的定义者,无论是服务器端的x86还是移动端的ARM,都各自是构建了稳固的生态系统,不仅形成技术生态圈,还形成了闭合价值链。
GPU是执行规则计算的主力芯片,如图形渲染。经过NVIDIA对通用GPU(GPGPU)和CUDA编程框架的推广,GPU在数据并行的任务如图形图像、深度学习、矩阵运算等方面成为了主力算力引擎,并且成为了高性能计算最重要的辅助计算单元。2021年6月公布的Top500高性能计算机(超级计算机)的前10名中,有六台(第2、3、5、6、8、9名)都部署有NVIDIA的GPU。
图 未来算力生态(相关厂商为不完全列举,仅做为示意参考)
数据中心与超极计算机不同,后者主要面向科学计算,如大飞机研制,石油勘探、新药物研发、气象预报、电磁环境计算等应用,性能是主要指标,对接入带宽要求不高;但数据中心面向云计算商业化应用,对接入带宽,可靠性、灾备、弹性扩展等要求更高,与之相适应发展起来的虚拟机、容器云、并行编程框、内容分发网等等技术,都是为了更好的支撑上层商业应用如电商、支付、视频流、网盘、办公OA等。但是这些IaaS和PaaS层的服务开销极大,Amazon曾公布AWS的系统开销在30%以上。如果需要实现更好的QoS,在网络、存储、安全等基础设施服务上的开销还会更高。
这些基础层应用类型与CPU架构匹配程度不高导致计算效率低下。现有的CPU的架构有两个大类:多核架构(数个或数十几个核)和众核架构(数百个核以上),每种架构支持唯一的规范通用指令集之一,如x86、ARM等。以指令集为界,软件和硬件被划分开来分别独立发展,迅速的催生了软件产业和微处理器产业的协同发展。但是,随着软件复杂度的上升,软件的生产率(Productivity)得到更多的重视,软件工程学科也更加关注如何高效地构建大型软件系统,而非如何用更少的硬件资源获得尽可能高的执行性能。业界有个被戏称的“安迪比尔定律”,其内容是“What Andy gives, Bill takes away”,安迪(Andy)指英特尔前CEO安迪·格鲁夫,比尔(Bill)指微软前任CEO比尔·盖茨,意为硬件提高的性能,很快被软件消耗掉了。
正如CPU在处理图像处理时不够高效一样,现在有大量的基础层应用CPU处理起来也比较低效,例如网络协议处理,交换路由计算,加密解密,数据压缩等这类计算密集的任务,还有支持分布式处理的数据一致性协议如RAFT等。这些数据或者通过从网络IO接入系统,或者通过板级高速PCIe总线接入系统,再通过共享主存经由DMA机制将数据提供给CPU或GPU来处理。既要处理大量的上层应用,又要维持底层软件的基础设施,还要处理各种特殊的IO类协议,复杂的计算任务让CPU不堪重负。
这些基础层负载给“异构计算”提供了一个广阔的发展空间。将这些基础层负载从CPU上卸载下来,短期内可以“提质增效”,长远来看还为新的业务增长提供技术保障。DPU将有望成为承接这些负载的代表性芯片,与CPU和GPU优势互补,建立起一个更加高效的算力平台。可以预测,用于数据中心的DPU的量将达到和数据中心服务器等量的级别,每年千万级新增,算上存量的替代,估算五年总体的需求量将突破两亿颗,超过独立GPU卡的需求量。每台服务器可能没有GPU,但必须有DPU,好比每台服务器都必须配网卡一样。
来源:专用数据处理器(DPU)技术白皮书,中国科学院计算技术研究所,鄢贵海等
全文下载:https://www.yusur.tech/zkls/zkys/dpu_whitepaper.html