文章整理自:
浅谈AI芯片架构设计 - 知乎 (zhihu.com)
作者:黄玖红
根据华为GIV(Huawei Global Industry Vision)预测,2025年全球新增数据量预计180ZB,将远超人类处理能力,95%的数据将依赖AI处理。数据是企业重要资产,借助人工智能手段进行更高效的数据分析、处理、决策,提升企业生产效率和智能化水平,将成为企业经营的核心任务之一。预计2025年,全球企业对AI的采用率将达86%,AI的崛起将深刻改变企业的业务模式和价值创造模式。
60年来人工智能发展虽几起几落,却始终在新兴ICT信息技术驱动下不断取得新的突破。但近些年,CPU性能未能呈现如摩尔定律预测的定期翻倍,业内普遍观点认为摩尔定律已经失效,能否开发出具有超高运算能力、符合市场需求的芯片,已成为人工智能领域可持续发展的重要因素。
从Alpha Go战胜李世石说起
2016年谷歌Alpha Go与围棋世界冠军李世石上演“世纪人机大战”,将人工智能的关注度推到了前所未有的高度。人工智能机器人阿尔法狗以4比1的总比分战胜职业九段棋手李世石。此次人机大战,谷歌DeepMind公司共消耗了1202颗CPU和176颗GPU的计算资源,阿尔法狗的浮点运算能力是1998年IBM深蓝战胜象棋冠军时的3万倍之多。
但从能效的角度,Alpha Go真的战胜人类了吗?我们从以下方面分析。成年男性每日需要能量大约2550千卡,1千卡(KCAL)=4.184千焦耳(KJ),如果我们把卡路里换算成焦耳大概是1000多万焦耳,下棋1小时,李世石大概消耗0.7兆焦耳。Alpha Go与李世石下棋用了1202颗CPU,176颗GPU,以1颗CPU100W,1颗GPU200W,1小时,阿尔法狗需要,1瓦时=3600焦耳,共消耗559兆焦耳,这相当于李世石用的能耗大约是Alpha Go能耗的八百分之一。
之后,谷歌的DeepMind团队对硬件进行改进,将运算单元从CPU换算成GPU,同样级别比赛,阿尔法狗消耗虽下降了12倍,但仍然是人类能耗的67倍之多。
我们看到,GPU在性能和效率上,虽然相比CPU有很大的提升,但它仍更适合大规模分布式训练场景。随着5G、物联网、云和超宽带信息技术的发展,智能将延伸到每一台智能设备和终端,包括各种形式边缘计算,以及IoT物联网、消费类智能终端,为了实现极致的用户体验,这类设备往往在最靠近用户的地方,需要长时间待机,对功耗和空间的约束要是非常高的,显然GPU无法满足这类场景的需求。
而人工智能的本质是帮助各行各业提高生产效率,产生社会和商业价值。若像Alpha Go一样,依赖庞大且昂贵的计算资源实现一个简单的场景,实则大材小用。从我们对AI需求的理解来看,人工智能芯片的研发,从一开始就要考虑对全场景智能需求的覆盖,无论是云、边缘、还是终端;无论是深度学习训练,还是推理,或者两者兼具,而不是一种芯片包打天下。从人工智能芯片发展历程来看,也是在逐步适应这个过程。
重新定义AI芯片
人工智能芯片经历了从CPU->GPU->FPGA->AI芯片的发展历程。
阿尔法狗的首次战胜人类可谓是费了“洪荒之力”,本质上是基于冯.诺依曼计算架构所决定的。于是具备强大并行计算能力与浮点计算能力GPU一度成为深度学习模型训练和推理的标配。相比CPU,GPU提供更快的处理速度,需要更少的服务器投入和更低的功耗,成为近些年来深度学习训练的主流模式。
但GPU无法满足所有场景深度学习计算任务。除前面所述,再举个例子,比如L4自动驾驶,需要识别道路、行人、红绿灯等状况,如果基于CPU计算,时延无法满足要求,恐怕车翻到河里还没发现前方是河;如果用GPU计算,虽然时延可以满足要求,但是功耗大,汽车电池无法长时间运行。此外,1块GPU卡少则万元多则近10万人民币,无法普及大多数普通消费者。
本质上,GPU不是专门针对AI算法开发的ASIC,人们亟需找到既能解决深度学习训练和推理的运算能力,又能解决功耗和成本问题的芯片,FPGA芯片在这样背景下诞生。
FPGA芯片
FPGA可编程的阵列(Field-Programmable Gate Array),作为ASIC领域中的一种半定制电路而出现,本质上是基于无指令,无需共享内存的体系架构创新,满足了特定场景的需求。
FPGA主要通过以下手段提升性能、降低时延;减少能耗、降低成本:
1、 通过烧入可配置、可反复刷写的FPGA配置文件来定义大量门电路和存储器间的连线。
2、 通过配置文件,将FPGA变成不同的处理器,支持各种不同的深度学习计算任务。
3、 FPGA中的寄存器和片上内存,属于各自的控制逻辑,无需不必要的冲裁和缓存。
根据研究发现,对于大量的矩阵运算GPU计算能力远高于FPGA,但是由于FPGA体系结构特点,非常适用于低时延、流式计算密集型任务处理。在类似海量并发的云端推断,比如语音云识别场景,FPGA相比GPU具备更低计算时延的优势,能够提供更佳的消费者体验。
但是,FPGA芯片本质上是通过预编程的方法来提升性能的,AI需要处理的内容往往是大量非结构化数据,例如视频、图像等,这类数据很难通过预编程的方法得到满意的结果。相反,需要通过人工智能芯片,进行大量样本训练和推理交互,形成算法模型后,集成了AI芯片和算法的智能设备,才能具备智能推理能力。
无论是GPU还是FPGA,虽然都可以运行AI算法,但均美中不足, GPU本质上不是专门针对AI算法开发的ASIC,功耗大、成本高;FPGA虽然架构有一定的创新,但是预编程繁琐。从严格意义上来讲,都不是AI芯片。那么,什么是AI芯片呢?我们知道,人工智能的深度学习算法的数据运算特征,需要芯片具备比传统计算性能高出2-3个数量级。综上分析,我们尝试给出如下定义:
基于ASIC(专用集成电路),可以基于软件灵活定义和高度定制的专用芯片。一方面,能够进行深度学习神经网络运算;另一方面,基于硬件计算架构的创新,提升深度学习运算效率,达到最佳能效(TOPS/W)的芯片,才可以称之为AI芯片。
值得肯定的是,FPGA大胆迈出了人工智能芯片硬件架构创新的第一步,即ASIC专用集成电路模式。
AI芯片依赖架构创新
如上分析,FPGA之所以比CPU,GPU能耗低,本质上是无指令,无需共享内存的体现结构带来的福利。在探讨架构创新之前,我们来分析是什么原因造成了CPU/GPU无法满足人工智能的需求。
目前市面上绝大多数AI芯片采用类CPU架构(冯.诺依曼架构的局部优化),本质上还是“计算优先”模式,比如通过扩展并行计算单元来提升芯片处理性能。但人工智能深度学习神经网络算法训练,多个计算单元往往需要频繁的存储器读写操作,而类CPU架构本质上还是共享存储模式,无法根本解决冯.诺依曼计算架构共享内存模式导致的存储性能瓶颈问题,又称 “内存墙”,类CPU架构示意如下:
深度学习神经网络数据运算特征表现为:高并发、高耦合,以及“高并发+高耦合”的“三高”特征。算法处理需要进行:大量的计算、大量的并行处理、低延迟的操作要求。以训练为例,训练过程涉及大量数据存储,对内存数量、访问内存的带宽和内存管理方法的要求都非常高。要求芯片具备一定精度的浮点数运算能力,且同时支持正向和反向的计算过程和多次迭代。其次,训练过程需要不断调整神经网络中的参数(权重),包括参数的多次输入和多次读取,以及复杂的数据同步要求,整个在线训练过程参数的频繁操作,对存储器带来非常巨大的挑战。
本质上,冯.诺依曼计算架构是摩尔定律在人工智能场景下失效的根因。如何通过硬件体系架构的创新,克服“存储墙”瓶颈,实现人工智能最佳的深度学习算法运算效率,成为人工智能芯片架构创新和发展的方向。
AI芯片架构设计需要符合以下几点要求:
1、符合深度学习神经网络运算的基本需求,无论是训练还是推断,以及两者的协同,在数据精度、可伸缩、可扩展能力以及功耗效率方面要满足实际商用场景要求。
2、支持“近数据计算”,通过硬件架构设计,拉近运算和存储的距离,减少数据搬移次数,降低能耗。比如支持神经网络运算放在片上存储器进行计算。
3、支持灵活伸缩和集群,支持大规模分布式并行AI训练。比如并行运算单元内部通过超带宽网络进行互联。
4、支持软件定义AI芯片,满足绝大多数复杂AI的算法的个性化定制和组合应用,通过广泛的应用达到边际效益,降低AI芯片成本。
AI芯片未来发展的思考
与以往信息化不同,AI带来智能化的目的,是降低企业生产成本,提高效率,这意味着AI应用将超越信息化,深入到企业生产系统,一旦进入生产系统,就必须跟线下、本地各种场景相结合。因此,AI芯片架构设计的开始,就需要考虑AI超动态、超宽范围需求的目的。
但是,业界AI芯片的设计面临巨大的技术难点和待攻克的难题:
1、 虽然芯片制造工艺已处于纳米级,但在类脑、基因、抗癌新药研制等更复杂的人工智能领域,集成密度的进一步提高,将导致原子层电离泄露问题。比如,包括业界巨头纷纷发力量子学,也正因为于此。
2、 虽然缓解冯·诺伊曼“瓶颈”问题成为共识,但与计算核心紧耦合的片上存储器的唯一方案SRAM,其容量仅为兆级。存储器件工艺本身的创新仍需努力。
3、 存储优先模式,需要考虑多个片上存储的封装技术,以及多个片上存储的管理,对软件的复杂性要求进一步提升。
4、 未来,在类脑智能领域(极限情况,Alpha Go消耗的能量与人类相同),能耗要求比最先进CMOS 器件还要低几个数量级。
因此,人工智能芯片技术的发展虽然取得了初步成果,但是AI芯片和架构设计,特别是神经网络芯片所面临的工程领域的挑战远未停止。