CPU、GPU大家耳熟能详,但近些年英伟达的DPU,Google的TPU,地平线的BPU,AMD的APU,Intel的NPU,百度与Xilinx的XPU……各类xPU(处理器)层出不穷。据说每过18天,集成电路领域就会多出一个XPU,这被戏称为AI时代的XPU版摩尔定律。 我初步收集整理了已经发布的所有xPU,由下表可见26个字母几乎快被用完了。可能未来马上要以xxPU再来一轮抢名字大作战。眼花缭乱的xPU到底如何区分,背后有何规律,与AI芯片又有何关系,代表着怎样的发展趋势呢?
揭秘xPU家族族谱 中国科学院计算技术研究所在2021年出版的《专⽤数据处理器 (DPU) 技术⽩⽪书》中,将所有处理器以应用特征和架构特征这两个维度粗略划分如下:◎ 从应用特征来看,可以分为“IO密集型”和“计算密集型”两类,如纵轴所示。一个处理器芯片是“IO密集”还是“计算密集”只部分决定了芯片的结构特征,并不能完全定义芯片的主体架构。
◎ 从应用特征来看,可以分为“IO密集型”和“计算密集型”两类,如纵轴所示。一个处理器芯片是“IO密集”还是“计算密集”只部分决定了芯片的结构特征,并不能完全定义芯片的主体架构。
◎ 从架构特征,无论是IO密集,还是计算密集,即可以通用CPU为核心构造主体计算架构,也可以以专用加速器为核心构造主体计算架构。前者可称之为以控制为中心的模式,后者称之为以数据为中心的模式。控制为中心的核心是实现 “通用”,数据为中心的核心是通过定制化实现“高性能”。图2-1中的AI芯片是狭义概念的AI芯片,也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块,针对人工智能算法做了特殊加速设计的芯片,包括ASIC/DSA、FPGA以及其他新兴芯片比如类脑芯片、量子芯片、仿生芯片等。广义上的 AI 芯片即所有能够运行人工智能算法的芯片,包含图2-1的所有,因为即使DSP、CPU都能进行一定的AI运算。而市场上一般大家把AI芯片分成GPU、FPGA、ASIC/DSA其实并不准确。而我们通常说的xPU就是狭义概念的AI芯片。
回顾AI芯片的历史,我们不难发现xPU家族背后发展的三条规律:从通用到专用再到融合,从串行到并行再到异构,从硬件定义软件到软件定义硬件。下面就从过去到现在,再以xPU举例来验证说明。
一、从通用到专用,再到融合1、从通用到专用一个系统,必然经过前期快速迭代,后期逐渐稳定的过程。因此,系统运行的处理器平台选择也必然有如下的一些规律:·CPU通用软件平台:当一个新的应用出现的时候,最早出现的一般是软件实现。一来实现所需要的代价较少,可以快速实现想法;二来CPU所提供的灵活性,不考虑性能的情况下,使之几乎可以处理任何场景的任务。·协处理器扩展指令加速平台:随着技术的演进,对性能提出了一些要求。这个时候,可以针对一些比较消耗CPU资源的程序进行一定的编程和编译优化。·GPU向量及并行加速平台:更进一步的,技术广泛应用,并且我们能从算法中寻找到更多的并行性。这个时候,我们就可以找一些专用的处理器,如GPU、DSP、NPU等来处理。通过特定的并行优化以及支持向量(SIMD)、多指令并行(MIMD/VLIW)等复杂指令编译优化的方式,深度的优化性能。·FPGA硬件可编程加速平台:随着技术越来越成熟,应用的规模越来越大。也越来越消耗资源。这个时候,我们值得花费更多的精力,提炼出复杂度非常高的算法(或者可以当作一个非常复杂的“指令”)然后通过硬件逻辑实现。再通过FPGA硬件可编程的方式快速落地。·DSA/ASIC定制加速平台:再进一步的,技术更加成熟稳定,应用规模足够庞大,这个时候就非常有必要为此场景定制开发DSA/ASIC,来达到最优的性能、最低的成本、最小的功耗。2、以Google TPU芯片为例2015年第一代TPU横空出世,TPU是 Google 为机器学习定制的专用芯片(DSA),专为 Google 的深度学习框架 TensorFlow 而设计。TensorFlow是一个开源的机器学习平台,由谷歌大脑团队开发,它是专门为深度学习和神经网络设计的,TensorFlow的核心概念是基于张量(Tensor),这是多维数组的概念,用于线性代数和统计学运算。也因此支持该算法的芯片就叫Tensor Processing Unit。◎ TPU架构虽然TPU已经更新到TPU5了,但其核心计算部分是右上方的黄色矩阵乘法单元,是典型的脉动阵列架构(也是乘法加矩阵计算),AI中尤其神经网络计算90%以上计算需要的就是矩阵计算,特别是大语言模型。
◎ TPU整体性能相较CPU、GPU确实更优
2016年就专门对比了AI场景下TPU相对于CPU/GPU(Intel Haswell处理器和Nvidia K80 GPU组合的情况下)的能效比表现:◎ GPU相对CPU领先倍数最多2.9,而TPU’即改进版TPU对CPU的领先幅度达到196倍。对GPU的领先幅度达到68倍。◎ 总体来看,TPU在执行谷歌常规机器学习工作负载方面,比一个标准的GPU/CPU组合平均要快15-30倍。◎ 由数据中心的功耗计算,TPU还能提供高达30-80倍瓦特的速率。3、通用与专用互相融合英伟达从Volta开始除了CUDA CORE之外就引入了TENSOR CORE,从而也支持矩阵计算,更适用于AI场景。而由上图H100能看出第四代张亮核心面积占比进一步提高。H100通过左右结构将CUDA CORE和TENSOR CORE融合在一个架构中,而不是分支成两个独立的架构,仍然基于其GPU的通用并行计算架构的应用,并不损害其原有的恐怖的软件生态加持,更能发挥已有生态的红利。同时在AI计算方面,保持了和最新的DSA竞争产品相比较的竞争力,同时通过尽量更多的共享模块以控制面积功耗;层次和可伸缩性保证覆盖从小型负载(单batch推理)到超大型负载的多种场景等等。如果不好理解,大家也可以简单看下面天数智芯研究院院长吕坚平画的图。图左是一般人认同的DSA架构示意图,图右是GPU融合DSA架构的示意图。我们可以将GPU这种融合DSA设计的方式称为“DSA通用化”,在提升效能的同时,持续强化通用优势。这可以解释,为什么号称为 AI专门设计的芯片,包括TPU在内,都无法照理碾压GPU,而其他绝大多数都在通用性上彻底对GPU称臣。
二、从串行到并行再到异构1、系统计算架构趋势随着算力需求越来越高,同构CPU的业务场景越来越少,基于GPU或AI等DSA处理器的异构计算已经成为主流。从发展的角度看,随着大模型等算力场景的持续挑战,未来会进一步从异构计算走向异构融合计算。 如果按照处理器类型的数量进行分类,可以分为三个阶段:◎ 第一阶段,单个处理器,即CPU同构计算阶段。◎ 第二阶段,两个处理器,即CPU+GPU或CPU+其他专用加速处理器的异构计算阶段。◎ 第三阶段,三个或三个以上处理器,即超异构或异构融合计算阶段。如英伟达2020年GTC大会上提出”CPU+GPU+DPU“ 架构,将DPU定义为”第三颗主力芯片“。英特尔在2023年12月14日,发布了首次集成NPU的处理器酷睿Ultra,凭借“CPU+GPU+NPU”的异构模式抢滩AI PC的算力底座。2、异构典型:DPU(1)DPU架构:宏观来看,至少可以分为以下三个核心组成部分:◎ 控制平面负责管理、配置,通常由CPU核来实现。◎ IO⼦系统负责DPU和其他处理平台(如X86、ARM处理器、GPU、FPGA等)或高速外部设备(如SSD)的集成,与高速网络的连接,以及缓存网络IO和系统IO输入输出数据,以及数据平面中间数据结果。也可作为共享内存,实现不同处理核之间的数据通信。◎ 数据平面通常集成多个同种类或不同种类的处理器核,能够满足大量不同类型的数据与业务处理;同时还具备可编程性,从而满足硬件维护以及不同应用的设计、开发需求。功能主要分为五类:高速数据包处理,虚拟化协议加速,安全加密,流量压缩,其他算法加速。
可以说DPU芯片本身就是一个异构的集合。而同时DPU的产生会带动系统级的架构变化。DPU将数据处理逻辑从“计算为中心”改变至“数据为中心“。在DPU出现前,网络数据处理逻辑以CPU为中心,按顺序执行,即传输重点为GPU、DSA、主存的数据流都必须经过CPU调度。这一结构也造成计算系统的两大局限:数据处理效能受限与CPU上层应用计算能力受限,而DPU的出现将数据集中处理、调度,不仅能够缩短数据所需经过的路径、减轻CPU负担,还能在提高数据处理效能的同时,降低其他计算芯片性能损耗,最终显著提升计算系统整体性能。
三、从硬件定义软件到软件定义硬件1、硬件定义软件AI芯片包含两个领域的内容:一个是计算机科学领域,简单地说就是软件,即研究如何设计出高效率的智能算法;另一个是半导体芯片领域,简单地说就是硬件,即研究如何把这些算法有效地在硅片上实现,变成能与配套软件相结合的最终产品。
GPU和CUDA都是硬件定义软件时代的产物。GPU平台,硬件的GPGPU提供接口给CUDA,CUDA再提供接口给应用。CUDA框架有特定的驱动和HAL屏蔽不同GPU的实现细节;并且CUDA为了向前兼容和维护生态,最终映射到标准的库。这些标准的库,提供了标准的接口给上层的CUDA应用程序。2、软件定义硬件当前,进入了软件定义硬件的时代。以云计算场景为例,许多用户场景的服务已经存在,只是这些服务以软件的形式运行在CPU。受限于CPU的性能瓶颈,使得软件的性能无法进一步提升,因此需要通过硬件加速的方式来继续提升性能。但是,服务已经稳定运行很久的时间,并且已经服务成千上万的上层用户。云计算提供商肯定很难把整个服务从CPU迁移到DSA等加速处理引擎。另外一方面,不同厂家的DSA呈现的都是不同的访问接口,如果迁移,这也会导致对芯片供应商的依赖。因此,需要硬件通过软件(或者硬件)的方式,给云计算提供商提供一致的标准访问接口。又比如英伟达的GPU仍然占到整个AI计算的89%以上。DSA或是国产AI芯片都需要耗费巨大的金钱和精力去与其竞争,就是因为它靠CUDA已经打下的生态,成为它巨大的门槛和壁垒。国产AI芯片除了抓住芯片管制和信创政策,还不得不去兼容CUDA,以及尽可能架构收敛,向其开放。3、以TPU为例从下图的箭头可见,AI算法从2012年的Alexnet到2018年的Transformer,相应的Google的TPU也在持续增加 AI 甚至大模型下特殊操作的支持。TPUV1 主要优化 MLP/DLRM(多层感知机,深度学习推荐模型)。TPU V3 对 RNN、CNN 的优化比例较多,而两者分别适合语音语言、图像的 AI 训练。TPU V4 对 Transformer的优化占比大幅度提高,而众所众知 Transformer 是大模型的基础。
未来发展三趋势 1、专用AI芯片的落地需要结合场景TPU的横空出世瞬间引爆了AI芯片的全行业大潮。但8年时间过去了,即使是谷歌具有从芯片、框架、生态到服务的全链条的全球顶尖技术,以及几乎全球第一的行业号召力,但整个TPU体系相较GPU而言仍相距甚远。其他的DSA架构的AI芯片,落地的场景和数量更少。本质原因也很简单:AI DSA芯片提供的灵活性跟上层AI算法所需的灵活性要求,相差甚大。我们把这个表述更加泛化一些:DSA芯片提供的灵活性比较低,而应用层算法对灵活性的要求比较高,两者相差巨大。系统是分层分块的系统,这些组件大体上分为三类:◎ 基础设施层。底层的业务逻辑相对最稳定。◎ 应用层。由于硬件平台运行具体哪些应用的不确定性,以及应用的快速升级迭代等,使得应用层的变化是最快的。◎ 应用层可加速部分。应用层可抽离出来的一些性能敏感的算法,其灵活性介于基础设施层和应用之间,变化相对适中。一般来说:越底层越确定,越适合DSA架构处理;越上层越不确定,越适合CPU这样的通用处理器处理;而性能敏感的应用层算法,比较适合于GPU及同指令复杂度级别架构(例如Graphcore IPU)的处理器。所以,未来ASIC/DSA芯片要想落地,需要芯片和场景的顺势而行。实践证明:ASIC由于其最低的灵活性,导致在云和边缘等复杂系统中没有用武之地。DSA不适合变化较快对灵活性要求较高的应用级的场景,如AI加速场景;DSA适合变化较慢灵活性要求较低的场景,例如:用于深度学习的神经网络处理器以及用于SDN的网络可编程处理器。2、软硬融合,开源开放异构计算的一个特点是“异构”,即缺少“通用性”,需要开发人员同时深入了解多种处理器的开发和调优方式,给软硬件开发带来了更高的复杂度。异构计算的另一个特点是“软硬协作”,它需要开发人员将软件硬件作为一个整体来架构和开发,给当下计算生态中软硬界限分明、技术栈分层的开发模式带来颠覆性挑战。尤其是超异构时代 ,如何协同调度好各个处理器编程框架(如GPU的CUDA、FPGA的OpenCL/HLS等),使其发挥最大效用,并且构建一个面向开发人员友好的协同软件开发生态,是迫切需要解决的问题。像Intel OneAPI,支持跨平台的开发框架。英特尔oneAPI是一个开放、可访问且基于标准的编程系统,支持开发人员跨多种硬件架构参与和创新,包括 CPU、GPU、FPGA、AI 加速器等。这些处理引擎具有非常不同的属性,因此用于各种不同的处理——oneAPI试图通过将它们统一在同一个模型下来简化这些操作。Intel oneAPI可以实现:设计一套应用,根据需要,非常方便地把程序映射到CPU、GPU、FPGA或者AI-DSA/其他DSA等不同的处理器平台。3、AI芯片完全取决于AI领域算法和应用发展的方向AI芯片的本质是一个领域专用架构,那么它发展的方向是完全取决于AI领域算法和应用发展的方向。AI芯片根据人工智能算法即计算范式的不同可以分类如下:
目前深度学习占据主流,文章开篇的所有xPU都是基于该范式研发设计而来,比如NPU、TPU等等。目前比较前沿的研究是设计“可进化”芯片,它基本上接近通过芯片的“自学习”来提升芯片自身的性能。AI芯片的最终目标是能够“自学习”,即芯片能够自己学习“如何学习”;另外一个重要目标是做到智能机器之间(相当于AI芯片之间)的相互学习和协调,从而使智能机器自己得到更多的知识。这种“自学习”的性能,很可能随时间呈指数级提升,并将最终导致智能机器的智能水平超越人类。这条路虽然还很漫长,但是一些研究人员已经开始起步。随着神经形态计算、量子计算等前沿技术的发展,AI芯片逐渐发展出类脑芯片、超导芯片(量子芯片)等多样化技术路径的新型芯片,类脑芯片更是开始走向商用化。(1)类脑芯片拥有大规模并行计算、超低功耗和超低延迟等技术潜力,这些优势使其在未来AI应用场景中扮演重要的角色。未来,类脑芯片的一个重要发展方向就是围绕AI算法构建更加高效的存算一体计算系统,如开发更加高效的芯片架构、具备更多神经元的芯片等,以不断迭代升级AI芯片的综合性能。(2)量子芯片是基于量子力学原理构建的芯片,可推动人类计算能力呈指数级增长,形成“量子优越性”。有专家认为,量子芯片有望彻底解决AI算力瓶颈的问题。未来,随着AI的广泛应用,整个社会对于AI算力的需求和耗电量将会大幅增加,而量子芯片是解决上述一系列问题的潜在方案。不过,当前量子计算机的发展还面临着如退相干等问题,导致当前量子芯片仍主要存在于实验室阶段,距离商业化较远。总的来说,类脑芯片和量子芯片作为新型芯片技术,拥有巨大的潜力,将在未来的AI和计算领域发挥重要作用,为我们带来更高效、更强大的计算能力。但在现在这个时间点,AI算法的走向还不是很清晰,未来每个分支的计算需求可能相差很远。在出现一个统一的模型之前,也很难形成一个统一的AI芯片架构。因此一切皆有可能,让我们拭目以待。
