进入大模型时代,全社会算力需求被推高到了前所未有的程度。2024年1月,微软联合创始人比尔·盖茨与OpenAI首席执行官山姆·奥特曼进行了一次对话,奥特曼在对话中表示人工智能将引发人类历史上“最快”的一次技术革命,人类可能还没有准备好以多快的速度适应这种变革。奥特曼预计,这项技术将迅速发展,使系统的计算能力达到GPT-4的10万倍或100万倍。
简单来说,用于人工智能计算的英伟达GPU芯片远远不够用了。2024年1月,Meta公司CEO扎克伯格宣布到今年年底将需要大约35万块英伟达H100,将其他GPU包括在内的话,算力总水平相当于近60万块H100,而60万块H100的采购费用保守估计约90亿美元。在中国市场,不仅阿里、腾讯等互联网和云公司纷纷囤积GPU,甚至像莲花味精这样的上市公司也斥资6.93亿采购了330台英伟达H800 GPU,更不用说各种在建智算中心。
而为应对GPU全球供应短缺问题,以及美国对GPU的出口限制问题,当然更重要的是在AI场景下降低成本,于是市场上涌现了各类异构AI芯片。由于大模型AI对于全社会的重要性,以及各行各业加快建设智算中心,也引发了全社会学习异构AI芯片的热潮,即使是企业领导干部也需要了解一些异构AI芯片的知识。
01
从基本的计算机原理讲起
在了解相关CPU、GPU等异构AI芯片的知识之前,让我们先来了解一下基本的计算机原理。
现代计算机由处理器、内存、I/O(输入/输出)设备三大部分构成。在处理器方面,一直以来都遵循冯·诺依曼架构,即处理器也是一个系统。处理器又叫中央处理单元(Central Processing Unit),即CPU。程序员通过输入设备发出指令,经过CPU和内存的处理,再将处理结果发送到输出设备。
ISA指令集体系结构是处理器与程序员进行交互的方式,指令集是处理器指令的完整集合,体系结构是处理器系统的构建方式,特定的处理器需要配备相应的指令集,才能与程序员交互。32位处理器是指能够处理32位指令和数据的CPU和计算机架构;64位处理器是指能够处理64位指令和数据的CPU和计算机架构。
RISC即精简指令集计算机架构,CISC即复杂指令集计算机架构,英特尔X86是典型的CISC架构,而MIPS(适用于嵌入式和消费级设备)和ARMv8架构(适用于移动设备、服务器、网络设备、物联网设备等)都是典型的RISC架构。RISC-V是一个基于RISC原则的开源指令集架构,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。
CISC架构适用于通用计算任务的计算机。既然要完成各种通用计算任务,势必带来指令集的冗余,因此CISC指令集中只有约20%的指令会经常被用到,其余80%的指令则不经常被用到,这些不经常被用到的特殊指令让CPU的设计变得非常复杂,也导致CPU的面积越来越大。而RISC架构只包含处理器常用的指令,对于不常用的操作,通过执行多条常用指令的方式来达到同样的效果。
02
基础芯片,从CPU到ASIC
CPU
理解了这些最基本的概念,让我们来看一看CPU、GPU、FPGA、ASIC这几种最基础的异构芯片。CPU通常指英特尔X86,AMD公司也生产X86架构CPU。X86架构最早出现在上世纪70年代末的Intel 8086处理器上,后发展为80286、80386、80486等,逐步演化为现代的X86架构。
X86架构的特点包括属于CISC架构,X86架构在个人计算机、服务器和工作站市场占主流地位,具有很高的兼容性,能够运行大量软件和操作系统,无需重新编写或修改就可以移植软件,X86架构引入了64位处理器,能够处理更大的内容和数据,而由于X86架构支持多核心处理等,适合运行虚拟机,因而也在虚拟化和云计算中得到了广泛应用。
当然,在英特尔和AMD之前是大型主机和小型机的年代。整个现代PC产业主要指X86架构的个人计算机、服务器和工作站以及基于这些硬件的软硬件生态。而整个现代PC产业和之前的小型机产业都是IBM大型主机技术降维应用的红利。在1960年代初,IBM投入了50亿美元开发大型主机,这相当于今天接近400亿美元的投资。1969年,人类*位宇航员登陆月球,而在阿波罗登月项目中,IBM大型主机System360做出了重要贡献。IBM大型主机技术孵化了后来的小型机以及整个现代PC与PC服务器产业。
与PC和PC服务器不同,大型主机和小型机都是高度集成的系统,而不像X86那样易用化、模块化、工业标准化,从而支撑起庞大的软件产业和用户群。今天,大型主机和小型机仍然在进化和使用中,但其用户群主要集中在*金融机构或对性能和安全性要求超高的企业或政府机构。大型主机和小型机的CPU处理器与X86架构CPU处理器不同,目前主要由IBM维护和推出新的大型主机与小型机CPU。
在冯·诺依曼架构下,CPU也是一个系统,今天已经发展成为超大规模集成电路。X86 CPU从单核到双核以及包含更多核心的CPU,越来越复杂、性能也越来越高。最新的第五代英特尔至强服务器CPU最高支持64个核心,AMD已经发布的第四代EPYC霄龙服务器CPU最高支持96个核心;而根据有关披露,即将发布的第六代至强服务器CPU最高将支持288个核心(能效核)。当然,仅从核心数量并不能判定CPU性能的高低,英特尔与AMD对于核心的定义也各不相同。但一个CPU处理器内将容纳更多的核心,甚至是异构芯片,将是CPU的发展趋势。
PCIe是一种高速串行计算机扩展总线标准,是当前主流的片间互连高速总线,为主板上的各类外设以及扩展卡等提供与CPU之间的高速连接。PCIe由PCI发展而来,PCI外设组件互连总线由英特尔公司在1991年推出,允许在当时的计算机内安装多达10个遵从PCI标准的扩展卡。PCIe扩展了PCI的性能,支持逻辑隔离的多个虚拟设备。
ASIC
再回到指令集和指令集架构。在现代计算机产业中,根据指令的复杂度,处理器分为CPU、Coprocessor协处理器、GPU(图形处理器)、FPGA(现场可编程门阵列)、DSA(特定领域加速器)和ASIC(专用集成电路)等,按从CPU到ASIC的顺序,通用性、灵活性和成本不断降低,面积也越来越小,但在应对特定计算场景的性能不断提升,其中CPU是能够独立运行的处理器,其它处理器则需要在CPU的协助下运行。
接下来先看一下ASIC专用集成电路。ASIC与CPU可以说是天平的两端,CPU是一个硬件与软件解耦的架构,而ASIC是硬件与软件高度集成的架构。ASIC为特定应用而设计,可以通过定制化设计,以满足特定应用的需求。与通用芯片相比,ASIC具有更高的效率和更低的功耗。
由于ASIC是完全不可编程的定制处理引擎,因此理论上也具有最复杂的“指令”以及最高的性能效率。因为每种ASIC可覆盖的场景非常小,因此需要数量众多的ASIC处理引擎,才能覆盖各类场景。例如,在网络交换机中常采用ASIC芯片,用于交换机所有端口之间直接并行转发数据,以提高交换机高速转发数据性能;ASIC也被用于各种汽车系统,包括ADAS高级驾驶员辅助系统、发动机控制单元和信息娱乐系统等;在消费电子设备、医疗设备和工业控制系统中,也大量应用了ASIC芯片。
进入人工智能时代,ASIC芯片还被用于NPU、TPU等人工智能算法专用芯片。由于ASIC厂商众多,不同的ASIC厂商推出各种的编程语言,可谓五花八门、各不相同,因此ASIC芯片很难培养起庞大的生态。
FPGA理解了ASIC,那么FPGA就是处于CPU与ASIC之间的一种集成电路。FPGA又称现场可编程门阵列,是ASIC专用集成电路领域中的一种半定制电路,是可重复编程的设备。
一般来说,FPGA比ASIC的速度慢,实现同样功能要比ASIC电路面积大,功耗、成本等都高于ASIC,但是可以快速成品,可以被修改。由于可重复编程的特点,FPGA的通用性要比ASIC更好。FPGA无需像ASIC设计那样要经过数百万美元的流片阶段,也不用承担流片失败的风险。因此,FPGA通常用于ASIC芯片的验证。
FPGA本质上是并行计算,这种并行处理能力使得 FPGA在高速数据处理的应用中表现出色,例如数字信号处理、图像处理和加密等。同样,在人工智能时代,FPGA也被用于人工智能算法处理。特别是AI算法推陈出新,对硬件的算力及灵活度都有较高要求,而FPGA正好符合了这样的需求。
DSA
接下来看DSA特定领域加速器。DSA是一种针对特定领域定制的可编程处理器,能够用于加速某些应用程序,实现更好的性能和性价比。DSA介于FPGA与ASIC之间,ASIC是完全不能编程的软硬件高度集成的定制芯片,FPGA是面向不同领域的可编程处理器,而DSA则是专门面向特定领域的可编程处理器。由此可见,DSA的灵活性在FPGA与ASIC之间,成本、功耗等也在二者之间。
DSA的好处就是能够面向特定领域,形成自己的生态,只要该领域的市场足够大,比如人工智能计算加速、图形渲染加速等。某种程度上,GPU就是基于DSA思路而设计开发的产品。随着摩尔定律的失效,现代计算机专家们认为DSA能够提高CPU处理器的效率和速度。2017年,图灵奖获得者John Hennessy与David Patterson联合发表了“计算机体系架构的黄金年代”文章,指出由于目前通用计算的性能瓶颈,需要面向不同应用场景开发针对性优化的架构,他们给出的解决方案就是DSA。
DSA既是一种架构,也是一种设计理念。狭义的DSA基于ASIC实现,广义的DSA基于FPGA实现,或者基于颗粒度更小的Chiplet小芯片集成起来实现。所谓Chiplet,即将一个大芯片裸片(Die)切成小芯片,切下来的小芯片是已经完成了设计、制造、测试流程的成品小裸片,只需要一次封装加工就可以使用,既可以复用给其他芯片,也可以将众多Chiplet集成起来实现新的功能。DNN深度神经网络是DSA应用的一个重要领域。
GPU
那么接下来让我们了解一下当下最火爆的GPU。GPU又称图形处理器,目前分为消费级GPU和数据中心级GPU。消费级GPU主要用于游戏电脑、设计、3D显示等场景,而数据中心级GPU主要用于人工智能场景。CPU与GPU*的区别之一是CPU是基于串行计算,而GPU是基于并行计算,这让GPU天然就适合基于并行计算的人工智能算法。GPU作为一种DSA,在设计上就是专门为了需要大规模并行计算的图形处理而生,因此GPU的核心数通常远超CPU,可达512核甚至更多,但GPU也没有CPU上那么 多适用通用计算的组件。典型的GPU厂商有NVIDIA英伟达、AMD、英特尔等。
*现代通用GPU架构(即GPGPU)由英伟达在2006年推出,这就是Tesla。Tesla采用全新的CUDA架构,支持C语言对GPU编程,可用于通用数据的并行计算,标志着GPU开始从专用图形处理器转变为通用数据并行处理器。随着英伟达公司发布NVIDIA GPU专用编程库CUDA,AMD和Apple等公司推出开源的OpenCL(Open Computing Language, 开放设计语言,是一个为异构平台CPU/GPU/DSP/FPGA等等进行编程设计的框架),GPU开始在通用计算领域得到广泛应用,如数值分析、海量数据处理、金融分析等等。
近年来,随着人工智能的大火,GPGPU也在深度学习算法等人工智能计算中广泛应用。数据中心级GPU就是为了人工智能的智算需求而生,英伟达A100、H100被认为是功能最强大的数据中心级GPU,也是各大人工智能公司、云厂商、互联网公司等竞相争夺的资源。
Co-processor协处理器
所谓协处理器,顾名思义即协助CPU中央处理器完成各种计算任务的处理器,特别是协助中央处理器完成无法执行或执行效率、效果低下的处理任务而开发和应用的处理器,例如数学协处理器、图形协处理器、音频协处理器、网络协处理器或手机上的运行协处理器等。协处理器通常被集成在计算机的主板或者CPU内部,也可以作为外部设备连接到主板上。例如,早期的图形协处理器Intel 82786,而今天的英特尔GPU也开始具备更强的能力,以应对英伟达对于GPU市场的垄断。(作者:北电数智(公众号同名)))