算力即国力:2024年起,再怎么重视“异构芯片”都不为过
进入大模型时代,全社会算力需求被推高到了前所未有的程度。
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市场的垄断。
本文来源:北电数智,原文标题:《万物生长,异构基础芯片奠定新算力》