当前位置: 首页 > 科技观察

一个时代就有一个时代的计算架构

时间:2023-03-12 10:51:59 科技观察

这是AlanTuring在1950年的论文《计算机器和智能》中提出的经典问题。围绕着Turing的目标,软件和硬件开始分裂。软件以算法为核心,衍生出神经网络,在深度学习的加持下,人工智能的浪潮充分汹涌。硬件,以芯片为载体,从CPU、GPU到各种AI芯片,从执行人的计算程序到像人一样计算。芯片与AI,硬件与软件,两条同源流淌的大河,终于在这一刻汇合。但其背后的驱动力也越来越明显:一个时代有一个时代的结构。现在,面向AI时代的计算架构呼之欲出。让机器进行人的思考和计算:从CPU到GPU,要想知道自己未来要去哪里,首先要知道自己从哪里来。今天,所有的智能机器,无论大小,都离不开CPU。正是这个像“大脑”一样的东西,让大大小小的硬件能够执行人类编写的规则,实现各种功能。世界上第一台CPU诞生于1971年,但其概念可以追溯到EDVAC——世界上第一台具有现代意义的通用计算机。EDVAC是ENIAC(世界上第一台电子计算机)的小弟,由冯诺依曼设计。EDVAC最大的变化之一是将计算机分为五个部分:运算器、控制器、存储器、输入和输出。这就是著名的冯·诺依曼架构。从这个架构中,我们可以看到CPU的雏形。——从那时到现在,无论CPU的具体实现方式如何变化,晶体管数量成倍增加,其组成始终由运算器、控制器和寄存器三大部分组成。其中,算术单元又称为算术逻辑单元(ALU),负责算术运算和逻辑运算。寄存器又分为指令寄存器和数据寄存器等,负责暂存指令、ALU需要的操作数和ALU计算出的结果。控制器负责整体的调度工作,包括解码要执行的指令,从内存中取出数据到寄存器,向运算器和寄存器下发具体的操作指令等。从上面的分工来看,我们可以另见CPU的一般工作流程。简单的说就是这四个步骤:1.从内存中提取指令;2.解码;3.执行;4.回信。写回寄存器的结果可供后续指令快速访问。整个过程好像没有什么bug。但是仔细回顾一下CPU的三大组成部分的分工,可以发现控制器和寄存器是负责东西最多、存储东西最多的两部分。从下面的CPU简化架构图中也可以看出,运算单元“占了一个角落”,几乎80%的空间都被控制单元和存储单元占据了。这样的设计导致CPU最擅长逻辑控制而不是计算。同时,根据冯·诺依曼架构的“顺序执行”原理,“老式”CPU只能执行一条指令再进行下一条指令,进一步限制了其计算能力。当然你说CPU的灵活性和通用性高,我们可以同构并行化。但是别忘了,单个CPU的性能极限那么高,能够容纳的核心数量也是有限的。这种方法所能挖掘的潜力确实有限。因此,如果用CPU来完成数亿次计算的AI任务,那真是“无能为力”。比如在自动驾驶领域,系统需要同时检测人行道、红绿灯等路况。如果交给CPU计算,不可能所有的车都撞上了才算出结果。因此,对于CPU的算力“拉低”,GPU站在了浪潮的顶端。正如它的全称“GraphicsComputingUnit”,GPU的初衷主要是接替CPU进行图形渲染的工作。由于图像中的每个像素都需要处理,因此这项任务的计算量非常大。尤其是遇到复杂的3D场景,需要在一秒内处理数千万个三角形顶点,光栅化数十亿像素。但是,由于处理每个像素的过程和方法几乎相同,因此可以通过并行计算来解决这一艰巨的任务。而这恰好是GPU最独特的优势,尤其是在处理这种逻辑简单、类型统一的琐碎计算任务时。GPU之所以擅长并行计算,是从它的架构上决定的。GPU几乎主要由计算单元ALU组成,只有少量的控制单元和存储单元。这也意味着GPU可以有数百个、数千个甚至数万个核心同时处理计算任务,从而使计算的并行度提高数万倍,多么可怕的数字。再举一个简单的例子,直观感受一下。例如,现在让我们计算相加的5000个数字的总和。如果我们用CPU来计算,即使是8核CPU,每个核也需要计算625个数;假设每次计算耗时1s,即使8核并行计算,一共需要625s。(支持向量指令的CPU这里暂且不考虑)反观GPU有几万个核心,计算5000个数只需要每次计算1个数,1s就可以搞定。625sVS1s,差距多大。除了并行计算能力,GPU的显存带宽也是CPU的数十倍,这决定了它可以更快地将数据从显存移动到计算核心,整体计算性能更是目前同类产品无法比拟的。中央处理器。由于GPU的设计没有专门绑定图形的逻辑,属于通用的并行计算架构,所以除了图像处理之外,它也非常适合科学计算,甚至是复杂的AI任务。于是在2012年,当Hinton和他的弟子AlexKrizhevsky将其作为深度学习模型AlexNet的计算芯片,一举夺得ImageNet图像识别大赛冠军时,GPU在AI领域的名声一炮而红。早就推出基于自家GPU的CUDA系统的英伟达,通过三年内将GPU性能提升65倍,提供后端模型训练和前端深度学习全套解决方案,在该领域站稳了脚跟。结束推理应用程序。王权。时至今日,GPU依然是AI时代的算力核心,是人工智能硬件领域的霸主。但是,GPU是一种通用的计算芯片和架构,并不是专门为AI打造的,无法做到性能和功耗的统一。它的计算能力越强,核心越多,功耗也越大。比如RTX4090,450W;比如今年9月刚上市的H100,直接空前绝后,700W。这种情况也在逐年增加。仍以自动驾驶为例。在有轨电车基本成为主流的当下,如此高的耗电量势必会给续航里程带来困扰。更不用说越来越多的终端也具备了AI能力(比如手机、智能音箱)。它们不仅需要计算能力,而且对功耗也有更严格的要求。再强大的GPU,在这里也显得十分薄弱。此外,一些更复杂的AI场景(如云推理、模型训练等)往往需要数百个GPU协同工作,这使得整个计算平台的功耗控制相当困难。许多组织不得不考虑能源和环境问题。这不,今年7月诞生的最大多语言开源模型BLOOM,用了384块A100来制作,释放的热量最终被用来为学校供暖。所以,综上所述,虽然CPU和GPU的出现让机器具备了进行人类思维和计算的能力,尤其是后者大大加速了AI计算任务,但仍然存在一些不足,阻碍了它们大显身手。.因此,要让机器像人一样思考和计算,通用计算芯片的架构不会是最好的解决方案。让机器像人一样思考和计算:AI芯片爆炸数据驱动的方法让机器像人一样思考和计算成为可能。但背后的计算需求也让过去的计算架构越来越吃不消。据统计,仅从2012年到2018年的6年间,人们对算力的需求就增长了超过30万倍。换句话说,人工智能计算能力大约每3.5个月翻一番。这个数字今天继续攀升。所谓“常识不如精通”,以CPU、GPU为代表的通用计算芯片架构已经不能很好地匹配和满足这种需求。在过去的几年里,也出现了前所未有的爆发。因此,近年来我们看到了很多CPU和GPU之外的“xPU”,比如GoogleTPU、GraphcoreIPU、TeslaNPU、NvidiaDPU……虽然它们的分类不一样,但有的是半定制的,有的是全定制的FPGA定制的ASIC,有的用在终端,有的用在云端……但作为专为AI任务和需求而设计的新芯片,它们的功耗和计算能力都比CPU/GPU低。高性能和低成本的优势,无论在哪里实施,都带来了翻天覆地的变化,例如近年来的智能手机、自动驾驶、机器人、VR等领域。根据能力和用途,这些AI芯片在这个过程中经历了两个阶段:首先,它们只是作为加速器,辅助CPU完成HPC、模型训练/推理等AI任务。(几乎所有的AI芯片都不是图灵完备的,所以必须和CPU一起使用,这也是所谓的“异构融合”趋势。)它们的结构类似于串联,可以由诸如“CPU+xPU”之类的公式。表达。这种组合最经典的其实就是CPU+GPU,时至今日依然流行。不过,如前所述,GPU并不是专门为AI设计的芯片,无法在该领域发挥极致性能,所以这里的xPU更多指的是TPU、IPU、DPU等AI加速芯片。(当然,GPU还是有自己的用处的,所以有时会加入,形成“CPU+GPU+xPU”的结构。)这种模式最大的特点是CPU只负责少量的任务计算,一般是针对那些情况比较复杂的部分,计算难度不确定,需要很高的灵活性;大部分“脏活”都由超强算力、低能耗的xPU完成。如下图所示,在实际情况下,他们的分工很可能遵循“28定律”——xPU负责整个系统80%的计算任务,剩下的20%由xPU分担CPU+GPU,GPU占比高达16%,CPU仅剩4%。如果进一步优化软硬件整合,三者的比例可能会变为90%、9%和1%。这样各司其职、各取所长的安排,才能保证极致的性能和性价比,在CPU和GPU榜单上达到了此前难以企及的高度。其次,作为专用芯片,AI芯片是针对特定领域推出的,负责特定AI任务的计算。(简单来说,某种专用芯片可以用在自动驾驶领域,但不能用在机器人领域)。在这种模式下,每一个xPU都成为了每一个系统的主角,决定了系统的整体性能和效果。这导致一些自动驾驶公司,在宣传自己的技术时,只拉出xPU来炒作,基本不提CPU和GPU。那么CPU在做什么呢?当然,用你擅长的逻辑控制来控制整个过程。因此,此时CPU和AI芯片的关系更像是一种并行结构,我们可以用“CPU,xPU”的公式来表达(当然GPU可能还是有参与的在里面)。前面说了,由于CPU基本不能决定计算性能,所以我们也不需要再寄希望于CPU有多强大了。更进一步,我们可以认为这种模式实际上降低了通用计算芯片的核心地位——CPU的地位又发生了变化。那么,成为“中流砥柱”的AI芯片到底有多厉害?我们来看3个案例。首先是云。在这个领域,互联网巨头拥有“本土作战”的优势,因此大多无法依靠英伟达等传统巨头。比如谷歌在2015年推出了自己的云加速AI芯片TPU,它的中文名字叫TensorProcessor,是一种ASIC芯片,专门为深度学习框架TensorFlow加速。得益于8位整数运算、脉动数组、基于复杂指令集(CISC)的设计采用量化技术,可提供约15-30倍的性能提升。如下图所示,当延迟全部控制在7毫秒以内时,TPU每秒最多可以运行225,000次MLP0预测。同等情况下,CPU才5000多,GPU才13000+。效率(性能/瓦特)的提升也高达30-80倍:(谷歌第一代TPU功耗约40W,性能最强的第四代也只有175W,而同期的A100有达到了400W。)这一成就意味着它可以在最先进的神经网络上大规模运行,同时可以将成本控制在可接受的水平。△TPU在上述6个神经网络中在CNN1上表现最好,性能是GPU的26倍。它的出现不仅打破了深度学习硬件执行的瓶颈,也在一定程度上动摇了英伟达等传统巨头的地位。谷歌也重用了它,搜索、街景、照片、翻译等服务,以及AlphaGo背后的神经网络计算,都由它来完成。TPU的出现成为AI时代云计算需求的代表性解决方案。在终端方面,最具代表性的场景是AI驾驶员转型下的汽车领域,即自动驾驶。目前,自动驾驶芯片的技术路线主要有两条:一是NvidiaOrin通过“魔改”GPU走的通用架构路线;另一种是特斯拉、高通、Mobileye等青睐的专用芯片技术路线,即CPU+(GPU)+xPU形式。例如,特斯拉FSD芯片主要由CPU、GPU和NPU组成。△图源wikichip,TeslaFSD芯片dieshot图片其中,NPU是其中占比最大的处理器,是整个架构的重点。它是特斯拉硬件团队研发的一款ASIC芯片,主要用于有效加速视觉算法中的卷积运算和矩阵乘法运算。具体来说,每个NPU的工作频率为2GHz,峰值性能可达每秒36.86万亿次运算(TOPs),总功耗仅为7.5W。因此,正是从特斯拉开始,专门为自动驾驶所需的神经网络打造的NPU开始成为汽车芯片的主要组成部分,传统的通用芯片CPU和GPU开始退居次要位置。在国内,地平线是唯一一家实现车载智能芯片规模化前装和量产的企业。代表芯片征途系列,同样采用“CPU+ASIC”技术路线。ASIC部分采用自主研发的BPU。它的使用使得最新的征途5芯片算力达到了128TOPS,而功耗仅为30W。至此,征途5以4.3TOPS/W的能耗比超越特斯拉FSD(2TOPS/W)和NVIDIAOrin(3.9TOPS/W),成为2022年高端智能电动汽车的标配。这种性能和功耗的对比甚至是标志性的。其背后是AI时代芯片架构的变化趋势:CPU在其中的作用和地位一直在变化,而这其实反映了AI时代对计算架构客观要求的演进时代——一开始完全是规则驱动的,只有CPU\GPU等通用计算芯片在努力,但由于架构的规则是硬编码的,无法适应越来越快的算力需求;至此,半正规驱动启动,CPU\GPU等通用计算芯片的核心能力继续发挥,但专用芯片开始介入,让AI计算架构不再依赖在完全硬编码的规则上,可以发挥相对灵活的作用;AI芯片占据核心位置,CPU/GPU仅作辅助用途,AI计算架构具有最大的自由度。而我们的机器也终于能够像人一样思考和计算,越来越接近像人一样思考和计算。但这还没有结束。终极计算架构:神经计算的终结是什么?不同的角度会有不同的答案。最近被更多人认可的是:NeuralComputing,神经网络架构,或者神经网络统一架构。即一个统一的神经网络计算架构,一套架构驱动所有的场景、领域或任务,比如图像处理、视频编解码、图像生成、渲染,只需要一点点修改或算法调优,就可以解决各种问题。其特点是以技术驱动的方式集成少量的规则,让硬件由软件构建,软件天生就是实现算法的。这更符合AI算法模型和任务的特点,能够真正让模型变迁带动性能变迁。它不再是硬件问题的传统迭代解决方案。而且这个方法论不仅仅是一个简单的前景,因为它正在被实践。例如,智能汽车芯片不仅可以利用神经网络进行分割、检测、识别等语义层面的信息,还可以清晰地看到一个趋势,包括ISP(ImageSignalProcessing)等图像处理任务,也可以使用神经网络来实现。向上。业界在视频编解码相关的方法中,神经网络优于传统方法,信噪比也更好。近两年流行的NeRF涉及到用于测试硬件能力的图像渲染,光线追踪等需要基于图形理论建立复杂规则的算法也被证明神经网络可以做得更好。它甚至采用非常简单的神经网络计算方式,通过学习和推理重构整个过程,更直接高效地解决以往费力解决的3D点云恢复重建等问题。实力和潜力不言而喻。.更重要的是,这种做法被置于一个更加变化的时代趋势上:计算架构领域已经到了分分合合的时代,传统的冯诺依曼架构亟待突破。这是两个时代的划分,背后是人机关系的两种范式。1.0时代,依靠经验和规则,将人类的理性分析转化为计算机可以具体执行的规则代码,不仅定义了目标,还定义了整个执行过程。这个时代有很多经典的算法排序,会告诉机器每一步要做什么,怎么做。CPU和GPU都是这个时代的高手。2.0时代,靠的是神经网络的学习和迭代。人类设定了目标和要求,有时目标甚至可能是一个大概的方向和框架,但机器会在神经网络的驱动下,围绕目标想出如何执行,如何解决最困难的问题。优秀的解决方案-机器具有自主权。因此,从算法、架构到芯片,都需要保证机器的自主性。1.0时代,可以通过很多精细的规则、后处理、后融合,把人类对特定场景任务的所有知识,都变成计算机可以严格执行的代码,再配合“摩尔定律”,硬件创新,实现极致效率。.然而,AI模型范式下对数据的需求,以及先进制造工艺逼近极限,已经让摩尔定律的失效变得显而易见。因此,计算架构和范式必将进入2.0时代。人类建立神经网络模型,模型自己解决目标和结果。整个过程不再依赖于硬编码的规则和经验。这将是从软件和硬件到认知方法的所有方面的根本性变化——传统的计算架构将不再适用。这种对自主机器到来的判断,其实可以理解很多新现象。比如,为什么马斯克把特斯拉的下一步定为机器人形式。百度创始人李彦宏从“汽车机器人”的维度思考和谈论自动驾驶和智能汽车。而目前以智能汽车芯片着称的地平线,为什么全称是“机器人科技”。因为随着AI的落地进行思考和推演,只有机器人,或者自主机器人,才能最终展现出AI作为一个独立的范畴和物种的核心变革力量。可以是在家扫地的那种,可以是提供自驾游的那种,也可以是模仿人体的那种——从感知到控制都具有自主性,会在边缘而不是云端。它将去中心化而不是中心化。由于自主机器人是人工智能的终极附属品,因此更重要的产品是驱动这个自主机器人的大脑,也就是处理器,或者更重要的是计算架构。弄清这个本质问题,也能理解整个芯片半导体和信息计算产业兴衰的规律。从经济角度看,需求决定供给,经济基础决定上层建筑。这就是为什么一个时代有一个时代的芯片,因为一个时代有一个时代的计算架构。既然神经网络已经开始向“机器像人一样思考和计算”转型,固化人类思维和计算过程执行的架构注定要放弃中心地位,通用计算芯片将逐渐失去其核心地位。统治地位。Onemorething的无情历史变迁,也让另一个众所周知的比喻更加符合现实。在汹涌的AI浪潮中,CPU一次次受到质疑和挑战。后来Intel的高管给了一个很中国的比喻——“CPU是所有XPU平台的中枢神经,有点像米饭,中国人的主食,其他的XPU都是菜,不同地方的人喜欢不同的菜,但都需要搭配米饭。”这个比喻,在当时不得不承认是生动而巧妙的,只是这个比喻后来和现在一样准确:在追求低碳水的新时代,谁也没有想到大米不再有必要。