谁能在第四代算力革命中脱颖而出?CPU?GPU? 算法?数据?
导语
1.“数据、算法、算力”是数字经济时代的三大核心要素,其中算力是数字经济的物理承载。
2.目前,算力已经成为全球战略竞争的新焦点和国家经济发展的重要引擎。世界各国的算力水平与经济发展水平呈正相关。
3.下面通过四个模块,从微观到宏观,详细分析与性能和算力相关的因素以及算力平台。尽可能直面当前算力提升所面临的挑战和困难,展望未来算力的发展趋势。
1 算力综述
随着数字经济时代的到来,各种各样的应用都需要强大的算力支持。无论从单个设备角度,还是万千设备组成的宏观算力角度,都需要持续的算力来支撑数字经济的繁荣发展。
根据冯·诺依曼架构,可以绘制出一个典型服务器模型。一个服务器,由核心的处理逻辑、分层级的寄存器、缓存、内存、本地外存四级的暂存存储(云服务器本地存储也是暂存,关键的数据必须存储到远程存储集群)、以及通过网络的输入/输出三部分组成。
站在处理器中处理逻辑部分角度,不管是从各级暂存还是从网络 I/O,都是数据的输入/输出。因此,计算模型可以简单的分为两部分:数据处理和数据输入输出。并且,系统性能 = 最小值(数据处理能力,数据输入/输出能力)。
随着更大规模计算需求的发展,逐渐形成复杂的存储分层结构。计算和 I/O 之间的不匹配导致复杂的存储分层结构,而复杂的存储分层结构一方面增加功耗,另一方面限制性能进一步提升。
影响性能的三个主要因素
这里说的性能,指的是单位处理器的性能。衡量一个处理器的性能,通常有三个因素:
一、“指令”复杂度,类似于单位时间加工的零件数量,指的是单个指令中计算的密度。
指令是软件和硬件的媒介,指令的复杂度(单位计算密度)决定系统的软硬件解耦程度。按照指令的复杂度,典型的处理器平台大致分为 CPU、协处理器、GPU、FPGA、DSA、ASIC。任务在 CPU 运行,则定义为软件运行;任务在协处理器、GPU、FPGA、DSA 或 ASIC 运行,则定义为硬件加速运行。
鱼和熊掌不可兼得,指令复杂度和编程灵活性是两个互反的特征:指令越简单,编程灵活性越高,因此才说软件有更高的灵活性;指令越复杂,性能越高,因此而受到的限制越多,只能用于特定场景的应用,其软件灵活性越差。
二、运行速度,即运行频率,类似于一个小时的单位时间数量,指的是 1 秒钟时钟周期变化的数量。
频率越高,计算速度越快。不考虑其他因素制约,计算速度和频率是正比关系。而频率受电路中的关键路径(延迟最大路径)约束,两者呈反比关系:关键路径越短,频率则越高。频率受关键路径制约,而关键路径与两个因素有关:
关键路径所包含门的数量,即从前一级寄存器到后一级寄存器之间的最长路径所包含的逻辑门数量
单个逻辑门延迟时间,逻辑门延迟时间跟半导体生产工艺相关,一般情况下,工艺尺寸越小,单个逻辑门延迟越小
因此,想要优化频率,就要优化关键路径:一个是优化关键路径的逻辑门数量,另一个则是优化单个逻辑门延迟。当逻辑门延迟越小,或两级寄存器之间的逻辑门数量越少,则频率越高,计算速度也越快。
三、并行度,类似于团队的成员数量,指的是多个并行的处理。
并行设计在硬件逻辑设计里非常常见。如:
指令流水线:指令流水线是一种时间并行,在同时有多条指令处理流水线的不同阶段,相当于有多条指令在并行处理
指令多发射(Multiple Issue):一条流水线,从指令缓冲区一次发送到译码阶段就有多条指令,然后在执行阶段也是多条指令并行
超线程(Hyper-Thread):在一个处理器核内部,多组不同的指令流处理,分时共享处理器核内部的各种硬件资源,达到更佳的资源利用率,提升整体性能
多总线:如,指令、数据总线分开,多数据总线等设计,进一步增加处理器的数据处理带宽
多核技术:通过一些内部互联总线,把多个处理器核集成到一块芯片内,以此来提升综合性能
多处理器芯片:受限于芯片工艺、功耗水平、设计架构,单芯片内的多核互联不能无限制增加下去,也可以通过一些芯片间互联技术,把多个 CPU Socket 连成一个 NUMA 系统,当前比较常见的是 2-8 个 Socket 互联架构
总线:对并行总线来说,增加数据线的宽度,对增加总线的带宽是显而易见的,并行总线一般用于芯片内部逻辑通信;串行总线,例如 PCIe,相比 PCI 并行总线,一方面可以快速提升频率,还可以通过很多组串行线组合通信来提升传输性能,串行总线一般用于芯片间数据通信。
异构计算单元:CPU 和 GPU、xPU 以及各种硬件加速器组成异构多处理单元共同协作完成工作任务,CPU 更多的是承担控制和数据交互的角色。
多服务器集群:现在大型的互联网系统需要成百上千的服务器,分为业务处理、网络处理、存储和数据库处理等不同功能分工的服务器,共同组成一个性能强大并且运行稳定的系统对外提供服务。
通过不同方向、不同层次的并行技术,都可以提升硬件系统的性能。把不同复杂度的单位处理都当作“指令”。那么,我们就可以通过 IPC(Instruction per Cycle)来评价并行度。对一个 CPU 核来说,IPC 代表每个周期执行的指令数;对一个硬件加速模块来说,IPC 则代表一个周期所能进行的单位处理的数量。
简洁明了的用公式表示性能和三者的关系:
(单个处理器)性能 = 指令的复杂度(单位计算密度) x 频率 x 并行度
宏观的算力
性能是微观的概念,代表单个个体计算能力。而算力则是宏观的概念,算力是很多个体计算能力总和。为了避免混淆,我们采用总算力的叫法。
在前面已经介绍单个个体的性能(在泛 I/O 不拖后腿的情况下):
(单个处理器)性能 = 指令的复杂度(单位计算密度) x 频率 x 并行度
那么总算力则和单个处理器性能以及处理器的数量成正比:
总算力 = (单个处理器)性能 x 处理器的数量
虽然总算力可以很高,但如果因为各方面原因,其利用率不高,则也不够好。因此:
实际总算力 = 总算力 x 利用率
= 指令的复杂度(单位计算密度) x 频率 x 并行度 x 处理器的数量 x 利用率
相关的若干因素总结一下,要提高宏观的实际总算力,就必须要:
1.提高指令的复杂度(单位计算密度)。新的 DSA 架构创新,均衡考虑不同的算力平台,以及通过异构和超异构计算,融合多种平台一起协作,完成系统级计算。
2.提高运行频率。优化设计,选择最优的流水线级数以及工艺等的持续进步,优化系统的运行频率。
3.提高并行度。更高的扩展性(Scalibility),更高性能的各层级互联总线,并行更多处理引擎。
4.优化 I/O 和处理的匹配度。通过工艺和封装优化,实现更加匹配计算和 I/O 匹配。
5.实现处理器芯片更大规模落地。均衡芯片整体性能和灵活可编程能力,实现宏观总算力最大化。
6.进一步优化宏观算力利用率。算力上规模后,通过云计算、边缘计算、超云、云网融合等手段,持续优化算力利用率,降低算力成本。
简单来说说,算力提升核心就两个方面:
1.增大规模(Scale out),通过扩大算力基础设施建设,以及“东数西算”等方式,构建更大规模并且低能耗的现代化数据中心。
2.提升单个计算节点性能(Scale up),构建新一代创新计算范式,要把算力再持续提升 1-2 个数量级,并且能够提供非常好的易用编程能力,来持续应对未来 10 年更加复杂系统的算力需求爆炸挑战。
蓝海大脑作为领先的数字基建提供商,将积极发挥产品和技术优势,提供先进算力支持。
2 三大主流计算平台 CPU、GPU 和 DSA
CPU
在手机端已经非常成熟的 SOC 实现,为什么在数据中心端没有大规模应用?为什么直到现在,数据中心依然是以 CPU 为主的计算平台?这主要源于越是复杂的场景,对软件灵活性的要求越高,而只有 CPU 能够提供云场景所需的灵活性。
超大规模复杂计算场景对硬件灵活性的要求,主要体现在四个方面:
灵活性。硬件处理引擎要能够很好地支持软件快速迭代。CPU 其灵活基础指令编程的特点,可以认为是最适合云计算的处理引擎。
通用性。厂家购买服务器,很难预测服务器会运行哪类任务。最好的办法是采用完全通用服务器。CPU 其通用性,成为云计算场景最优选择。
利用率。云计算通过虚拟化把资源切分,实现资源共享,以此提高资源利用并降低成本。而目前,只有 CPU 能够实现非常友好的硬件级别的虚拟化支持。
一致性。云计算场景,软硬件相互脱离。同一软件实体会在不同的硬件实体迁移,同一硬件实体也需要运行不同的软件实体。而 CPU,是一致性最好的硬件平台。
GPU 与 NP
处理器(Network Processor,简称 NP)跟 GPU 在技术理念上有很多相似之处:都是通过特定优化的、高效能的小 CPU 核组成的众核系统,并行的完成计算任务。根据“指令”复杂度,从 CPU 到 ASIC 的划分,NP 和 GPU 处于相同的位置。
NP 具有如下的一些不足:
性能。虽然相比 GPU,性能是在同一层级,但相比 ASIC/DSA 性能不够。
场景。NP 主要用于网络场景的处理,没有像 GPU 那样作为通用并行计算,GPU 可以用于非常多的高性能场景。
开发和生态。GPU 由于 NVIDIA CUDA 的强大生态,框架、工具链、开发库都非常成熟。而 NP 由于生态的不成熟,以及各家 NP 之间也基本互不兼容,开发者需要了解底层的硬件细节,致使编程难度很大。
NP 在网络领域有一定范围采用,但网络领域更主要的处理引擎是网络 ASIC,这些年还兴起网络数据面可编程的网络 DSA,都是相比 NP 架构具有更极致的性能。正因为 NP 相比 ASIC/DSA 的性能不足,以及相比 GPU 覆盖的场景有限,这样的 “高不成,低不就”,导致其一直没能成为(相比 GPU 而言)主流的通用计算平台。
DSA
DSA 针对特定应用场景定制处理引擎甚至芯片,支持部分软件可编程。DSA 与 ASIC 在同等晶体管资源下性能接近,两者最大的不同在于是否可软件编程。ASIC 由于其功能确定,软件只能通过一些简单的配置控制硬件运行,其功能比较单一。而 DSA 则支持一些可编程能力,使得其功能覆盖的领域范围相比 ASIC 要大很多。
DSA,一方面可以实现 ASIC 一样的极致性能,另一方面,可以像通用 CPU 一样执行软件程序。当然,DSA 只会加速某些特定领域应用程序。例如:用于深度学习的神经网络处理器以及用于 SDN 网络可编程处理器。
CPU、GPU 和 DSA 的优劣势分析
蓝海大脑液冷 GPU 服务器搭载于 NVIDIA 4 × A100 / 3090 / P6000 / RTX6000;使用 NVLink + NVSwitch 的最高 GPU 通信;4 个用于 GPU Direct RDMA 的 NIC(1:1 GPU 比率);最高 4 x NVMe 用于 GPU 系统盘,带有 AIOM;双电源冗余供电系统、防雷击、防浪涌保护。
3 面向未来十年的新一代计算架构
未来十年的新一代计算架构的一些设计目标——基于软硬件融合架构(CASH,Converged Architecture of Software and Hardware)的超异构计算:
1.性能。让摩尔定律继续,性能持续不断地提升。相比 GPU,性能再提升 100+倍;相比 DSA,性能再提升 10+倍。
2.资源效率。实现单位晶体管资源消耗下的最极致性能,极限接近于 DSA/ASIC 架构的资源效率。
3.灵活性。给开发者呈现出的是极限接近于 CPU 的灵活性、通用性及软件可编程性。
4.设计规模。通过软硬件融合的设计理念和系统架构,驾驭 10+ 倍并且仍持续扩大的更大规模设计。
5.架构。基于软硬件融合的超异构计算:CPU + GPU + DSA + 其他各类可能的处理引擎。
6.生态。开放的平台及生态,开放、标准的编程模型和访问接口,融合主流开源软件。
4 宏观算力建设
数字经济时代,不断增强算力,不断降低算力成本。一方面,我们可以以相同的价格,可以获得更多更丰富的算力;另一方面,是降低算力获取门槛,实现算力普惠。
持续不断的提升算力,降低成本,实现算力普惠
随着数字经济建设逐步深入,对算力需求不断提高。在功耗和成本不变情况下,通过架构创新,提升芯片性能。如果我们能够把芯片性能提升 10 倍,在同样规模下,意味着 10 倍的宏观算力提升,也意味着单位算力成本和功耗均降低到 1/10。也就意味着,对用户来说,可以以同样价格获得更多更丰富算力资源。
芯片一次性成本极高,芯片通用性可以确保芯片大规模复制。而大规模复制的芯片,就意味着无限摊薄芯片的研发成本。性能提升,成本降低,一里一外的优势,确保芯片核心竞争力。
并且,通过算力提升,以及成本和功耗降低,可以降低算力使用门槛,使得更多用户能够享受算力的便捷。在数字经济世界里,大家共享技术发展带来价值红利。
建设宏观经济,首先需要的是 IT 基础设施。蓝海大脑作为中国领先的 IT 基础设施提供商,可以提供服务器、存储、网络、5G 云网融合产品等 IT 基础设施。
评论