人工智能芯片技术
前沿
尽管全球人工智能产业还处于初 期发展阶段,但随着政府和产业界的 积极推动,人工智能技术在大规模产业 化应用方面突飞猛进,在算法和芯片 等人工智能基础技术层面积累了强大 的技术创新,这些成果未必能即时商 业化,但对未来科技的影响深远。
为了更好地厘清当前AI芯片领域 的发展态势,进一步明确AI芯片在新 技术形势下的路线框架、关键环节及 应用前景,北京未来芯片技术高精尖 创新中心根据学术界和工业界的最新 实践,邀请国内外AI芯片领域的顶尖 研究力量,共同开展《人工智能芯片 技术白皮书》的编制工作。
1.2内容与目的
本文主要包括九方面内容:
第1章为发展AI芯片产业的战略意义以及白皮书基本内容概述。
第2章综 述了 AI芯片的技术背景,从多个维度提出了满足不同场景条件下AI芯片和硬件平台的关键特征。
第3章 介绍近几年的AI芯片在云侧、边缘和终端设备等不同场景中的发展状况,总结了云侧和边缘设备需要解决 的不同问题,以及云侧和边缘设备如何协作支撑AI应用。
第4章在CMOS工艺特征尺寸逐渐逼近极限的 大背景下,结合AI芯片面临的架构挑战,分析AI芯片的技术趋势。
第5章讨论了建立在当前CMOS技 术集成上的云端和终端AI芯片架构创新。
第6章主要介绍对AI芯片至关重要的存储技术,包括传统存储 技术的改进和基于新兴非易失存储(NVM )的存储器解决方案。
2.1技术总述
目前,关于AI芯片的定义并没有一个严格和公认的标准。比较宽泛的看法是,面向人工智能应用的芯 片都可以称为AI芯片。时下,一些基于传统计算架构的芯片和各种软硬件加速方案相结合,在一些AI应 用场景下取得了巨大成功。但由于需求的多样性,很难有任何单一的设计和方法能够很好地适用于各类情况。 因此,学界和业界涌现出多种专门针对人工智能应用的新颖设计和方法,覆盖了从半导体材料、器件、电 路到体系结构的各个层次。
本文探讨的AI芯片主要包括三类,一是经过软硬件优化可以高效支持AI应用的通用芯片,例如 GPU ;二是侧重加速机器学习(尤其是神经网络、深度学习)算法的芯片,这也是目前AI芯片中最多的形 式;三是受生物脑启发设计的神经形态计算芯片。
AI技术是多层面的,贯穿了应用、算法机理、芯片、工具链、器件、工艺和材料等技术层级。各个层 级环环紧扣形成AI的技术链,如图表2-1所示。AI芯片本身处于整个链条的中部,向上为应用和算法提 供高效支持,向下对器件和电路、工艺和材料提出需求。一方面,应用和算法的快速发展,尤其是深度学习、 卷积神经网络对AI芯片提出了 2-3个数量级的性能优化需求,引发了近年来AI片研发的热潮。另一方面.
新型材料、工艺和器件的迅速发展,例如 3D 堆叠内存,工艺演进等也为 AI 芯片提供了显著提升性能和降低功耗的可行性,这个推动力来源于基础研究的突破。总体而言,这两类动力共同促进了 AI 芯片技术近年来的快速发展。
2.2新型计算范式
AI计算既不脱离传统计算,也具有新的计算特质,包括:
1. 处理的内容往往是非结构化数据,例如视频、图像及语音等,这类数据很难通过预编程的方法得到 满意的结果。因此,需要通过样本训练、拟合及环境交互等方式,利用大量数据来训练模型,再用训练好 的模型处理数据。
2. 处理的过程通常需要很大的计算量,基本的计算主要是线性代数运算,典型的如张量处理,而控制 流程则相对简单。对于这类运算,大规模并行计算硬件较传统通用处理器更为适合。
3. 处理的过程参数量大,需要巨大的存储容量,高带宽、低延时的访存能力,以及计算单元和存储器 件间丰富且灵活的连接。数据本地化特征较强,适合数据复用和近内存计算。
2.3训练和推断
AI系统通常涉及训练(Training )和推断(Inference)过程。简单来说,训练过程是指在已有数据中 学习,获得某些能力的过程;而推断过程则是指对新的数据,使用这些能力完成特定任务(比如分类、识别等)。
对神经网络而言,训练过程就是通过不断更新网络参数,使推断(或者预测)误差最小化的过程;推断过程 则是直接将数据输入神经网络并评估结果的正向计算过程。虽然训练和推断有很多类似的基本运算,都需要 具有大量的并行处理,高内存带宽和低延迟操作,但是两者在计算和存储资源方面的需求方面存在显著的差 异。
训练:首先,对于训练来说,计算精度非常重要,因为它直接影响推断的准确度。支持训练的硬件必 须支持具有较长字长的浮点数或定点数。其次,训练中通常同时包括正向和反向的计算过程,需要多次迭代, 计算量要求非常高。这就需要支持训练的芯片不仅要具有强大的单芯片计算能力,还要具备很好的扩展性, 可以通过多芯片系统提供更强大的计算能力。再次,训练过程,特别是离线训练,必须处理大量的数据(高 达10侣到1018字节),因此,它对内存数量、访问内存的带宽和内存管理方法的要求都非常高。第四,由 于训练需要更新(写入)和使用(读取)神经网络中的参数(权重),因而需要更复杂的数据同步技术。最后, 重要参数的频繁写入也要求存储器能支持更快速的写入(特别是对于在线训练),这对于一些存储器技术来 说是很大的挑战。
推断:对推断来说,运算和存储的需求都远远低于训练。但由于推断的应用场景多种多样,部署在从 云到端的各种设备,如数据中心、自动驾驶汽车、智慧家庭和IoT设备等,其需求和约束呈现出多样化的特点。 对于多数应用来说,速度、能效、安全和硬件成本等是最重要的考虑因素,而模型的准确度和数据精度则 可以依具体情况适当降低。
虽然目前大部分机器学习方法都可以比较清晰地划分为训练和推断的过程,但还有一些领域,比如增 强学习(Reinforcement Learning)和在线学习(On-line Learning,则处于持续学习和改进模型的进 程中。因此,在未来的AI应用当中,训练(学习)和推断在更多场景下会是交织在一起的。
2.4大数据处理能力
人工智能的发展高度依赖海量的数据。满足高效能机器学习的数据处理要求是AI芯片需要考虑的最重 要因素。一个无法回避的现实是,运算单元与内存之间的性能差距越来越大,内存子系统成为芯片整体处理 能力提高的障碍,也就是通常所说的“内存墙”人工智能工作负载多是数据密集型,需要大量的存储和各 层次存储器间的数据搬移,导致“内存墙”问题更加突出。为了弥补计算单元和存储器之间的差距,学术界 和工业界正在两个方向上进行探索:(1)富内存的处理单元。增加片上存储器的容量并使其更靠近计算单元, 使得数据计算单元和内存之间的数据移动成本(时间和功耗)大大减少。(2)具备计算能力的新型存储器。 直接在存储器内部(或更近)实现计算。这种方法也被称为存内计算(Process-in-Memory PIM,或近 数据计算(Near Data Computing NDC)。
2.5数据精度
低精度设计是AI芯片的一个趋势,在针对推断的芯片中更加明显。对一些应用来说,降低精度的设计 不仅加速了机器学习算法的推断(也可能是训练),甚至可能更符合神经形态计算的特征。近期已经证明, 对于学习算法和神经网络的某些部分,使用尽可能低的精度(例如二进制数据)就足以达到预期效果,同 时可以节省大量内存和降低能量消耗。通过对数据上下文数据精度的分析和对精度的舍入误差敏感性,来 动态地进行精度的设置和调整,将是AI芯片设计优化的必要策略。
2.6可重构能力
人工智能各领域的算法和应用还处在高速发展和快速迭代的阶段,考虑到芯片的研发成本和周期,针 对特定应用、算法或场景的定制化设计很难适应变化。针对特定领域(包括具有类似需求的多种应用)而 不针对特定应用的设计,将是AI芯片设计的一个指导原则,具有可重构能力的AI芯片可以在更多应用中 大显身手,并且可以通过重新配置,适应新的AI算法、架构和任务。
2.7软件工具
就像传统的CPU需要编译工具的支持,AI芯片也需要软件工具链的支持,才能将不同的机器学习任 务和神经网络转换为可以在AI芯片上高效执行的指令代码,如NVIDIA GPU通过CUDA工具获得成功。 基本处理、内存访问及任务的正确分配和调度将是工具链中需要重点考虑的因素。当工具链将神经网络或 其它模型映射到AI芯片上时,也有很多优化代码的机会,比如神经网络剪枝、权重压缩和动态量化等。目 前,AI算法开发框架如TensorFlowsCaffe和PyTorch等,在AI应用研发中已经起到了至关重要的作 用。对AI芯片来说,构建一个集成化的流程,将AI模型的开发和训练,硬件无关和硬件相关的代码优化, 自动化指令翻译等功能无缝的结合在一起,将是成功部署的关键要求。
3AI芯片发展现状
从2015年开始,AI芯片的相关研发逐渐成为学术界和工业界研发的热点。到目前为止,在云端和终 端已经有很多专门为AI应用设计的芯片和硬件系统。同时,针对目标应用是“训练”还是“推断”,我们可 以把AI芯片的目标领域分成4个象限,如图表3-1所示。其中,在边缘/嵌入设备中以推断应用为主,训 练的需求还不是很明确。有些高性能的边缘设备虽然也会进行训练,但从硬件本身来说,它们更类似于云 端设备。未来的边缘和嵌入设备可能都需要具备一定的学习能力,以支持在线学习功能。其他几个象限都 有自身实现的需求和约束,目前也都有针对性的芯片和硬件系统。
3.1云端Al计算
在云端,通用GPU,特别是NVIDIA系列GPU芯片,被广泛应用于深度神经网络训练和推理。与 CPU相比,拥有数干个计算内核的GPU可以实现10-100倍的吞吐量。其最新的Tesla V100除了 GPU核之外,还专门针对深度学习设计了张量核(Tensor Cores),能够提供120 TFLOPS(每秒120 万亿次浮点指令)的处理能力。同时,NVIDIA GPU还有比较完善的软件开发环境,同时,NVIDIA GPU 还有比较完善的软件开发环境,是目前AI训练领域使用最广泛的平台。
面向云端AI应用,很多公司开始尝试设计专用芯片以达到更高的效率,其中最著名的例子是Google TPU,可以支持搜索查询、翻译等应用,也是AlphaG。的幕后英雄。由于使用了专用架构,TPU实现 了比同时期CPU和GPU更高的效率(如图表3-2所示)。第一代的TPU仅能用于推断,面对目前被 NVIDIA GPU赚得盆满钵满的深度学习训练市场,Google随后又发布了第二版TPU (TPU2),除了推 断以外,还能高效支持训练环节的加速。Google最近还通过云服务把TPU开放商用,处理能力达到180 TFLOP,提供64GB的高带宽内存(HBM), 2400GB/s的存储带宽。
针对云端的训练和推断市场,从芯片巨头到初创公司都高度重视。英特尔宣布推出Nervana™神经网 络处理器(NNP),该系列架构还可以优化32GB HBM2、1TB/s带宽和8Tb/s访问速度的神经网络计算。 初创公司,如Graphcore、Cerebras、Wave Computing '寒武纪及比特大陆等也加入了竞争的行列。
此外,FPGA在云端的推断也逐渐在应用中占有一席之地。一方面,FPGA可以支持大规模并行的硬 件设计,和GPU相比可以降低推断的延时和功耗。微软的Brainwave项目和百度XPU都显示,在处理 批量小的情况下,FPGA具有出色的推断性能。另一方面,FPGA可以很好地支持不同的数值精度,非常 适合低精度推断的实现。进一步地,FPGA的可编程能力也使它可以相对更快地支持新的算法和应用。目前, FPGA的主要厂商如Xilinx' Intel都推出了专门针对Al应用的FPGA硬件(支持更高的存储带宽)和软 件工具;主要的云服务厂商,比如亚马逊、微软及阿里云等推出了专门的云端FPGA实例来支持Al应用。 —些初创公司,比如深鉴科技等也在开发专门支持FPGA的AI开发工具。
3.2边缘AI计算
随着人工智能应用生态的爆发,越来越多的AI应用开始在端设备上开发和部署。对于某些应用,由 于各种原因(如延迟,带宽和隐私问题),必须在边缘节点上执行推断。比如,自动驾驶汽车的推断就不能 交由云端完成,否则如果出现网络延时,则会发生灾难性后果。再比如,大型城市动辄百万的高清摄像头, 其人脸识别如果全交由云端完成,高清录像的数据传输会让通信网络不堪重负。
边缘设备实际上覆盖了一个很大的范围,其应用场景也五花八门。比如自动驾驶汽车可能就需要一个 很强的计算设备,而在可穿戴领域,则要在严格的功耗和成本约束下实现一定的智能。在未来相当一部分 人工智能应用场景中,边缘设备主要执行推断计算,这就要求边缘处的终端设备本身具备足够的推断计算 能力。而目前边缘处理器芯片的计算能力并不能满足在本地实现深度神经网络推断的需求。因此,业界需 要专门设计的AI芯片,赋予设备足够的能力去应对越来越多的人工智能应用场景。除了计算性能的要求之外, 功耗和成本也是在边缘节点工作的AI芯片必须面对的重要约束。
智能手机是目前应用最为广泛的边缘计算设备,包括苹果、华为、高通、联发科和三星在内的手机芯 片厂商纷纷推出或者正在研发专门适应AI应用的芯片产品。另外,也有很多初创公司加入这个领域,为边 缘计算设备提供芯片和系统方案,比如地平线机器人、寒武纪、深鉴科技、元鼎音讯等。传统的IP厂商, 包括ARM' Synopsys等公司也都为包括手机、智能摄像头、无人机、工业和服务机器人、智能音箱以及 各种物联网设备等边缘计算设备开发专用IP产品。
自动驾驶是未来边缘AI计算的最重要应用之一,MobileEye SOC和NVIDIA Drive PX系列提供神 经网络的处理能力可以支持半自动驾驶和完全自动驾驶,处理来自多路视频摄像头、雷达、激光雷达以及 超声传感器的输入,并将这些数据相融合以确定汽车所处的精确位置,判断汽车周围的环境,并为安全行 驶计算最佳路径和操作。
3.3云和端的配合
总的来说,云侧AI处理主要强调精度、处理能力、内存容量和带宽,同时追求低延时和低功耗;边缘 设备中的AI处理则主要关注功耗、响应时间、体积、成本和隐私安全等问题。
目前云和边缘设备在各种AI应用中往往是配合工作。最普遍的方式是在云端训练神经网络,然后在云 端(由边缘设备采集数据)或者边缘设备进行推断。随着边缘设备能力的不断增强,越来越多的计算工作 负载将在边缘设备上执行,甚至可能会有训练或者学习的功能在边缘设备上执行。另一方面,云的边界也 逐渐向数据的源头推进,未来很可能在传统的终端设备和云端设备直接出现更多的边缘设备,它们会把AI 处理分布在各种网络设备(比如5G的基站)中,让数据尽量实现本地处理。从这个角度看,未来云和边缘 设备以及连接他们的网络可能会构成一个巨大的AI处理网络,它们之间的协作训练和推断也是一个有待探 索的方向。
4 AI芯片的技术挑战
当我们讨论一个新的技术趋势时,首先需要清楚它背后的成因。很多大的技术创新都是需求驱动和技 术瓶颈同时存在的情况下产生的。AI芯片和它背后的各种技术也不例外。首先是巨大需求,一方面体现在 AI应用的需求,也体现在AI特别是深度学习所要求的新的计算范式(这一点在上文已有介绍)。需求的驱 动要求能够更加高效地处理AI运算的硬件,而在目前的技术框架下我们也遇到一些瓶颈问题,特别是冯•诺 伊曼瓶颈和CMOS工艺和器件瓶颈。在详细介绍各种AI芯片的技术创新和未来的发展趋势之前,本节先 简单介绍讨论一下这两个问题。
如前所述,提高 AI 芯片性能和能效的关键之一在于支持高效的数据访问。如图表 4-1 所示,在传统冯·诺伊曼体系结构中,数据从处理单元外的存储器提取,处理完之后在写回存储器。在 AI 芯片实现中,基于冯·诺伊曼体系结构,提供运算能力相对是比较简单易行的,但由于运算部件和存储部件存在速度差异,当运算能力达到一定程度,由于访问存储器的速度无法跟上运算部件消耗数据的速度,再增加运算部件也无法得到充分利用,即形成所谓的冯·诺伊曼“瓶颈”,或“内存墙”问题,是长期困扰计算机体系结构的难题。目前常见的方法是利用高速缓存(Cache)等层次化存储技术尽量缓解运算和存储的速度差异。
然而,AI芯片中需要存储和处理的数据量远远大于之前常见的应用。图表4-2列出了一些常见的深度 神经网络的主要参数,其中VGG16网络需要138M个权重参数,一次推断过程需要15.5G次乘累加运算。 这都使得冯•诺伊曼“瓶颈”问题在AI应用中愈发严重。可以不夸张地说,大部分针对AI,特别是加速神 经网络处理而提出的硬件架构创新都是在和这个问题做斗争。概括来说,在架构层面解决这一问题的基本 思路有二:1 )减少访问存储器的数量,比如减少神经网络的存储需求(参数数量,数据精度,中间结果)、 数据压缩和以运算换存储等;2)降低访问存储器的代价,尽量拉近存储设备和运算单元的“距离”,甚至 直接在存储设备中进行运算。
4.2 CMOS工艺和器件瓶颈
现今的计算机可以达到每秒干万亿次(1015 FLOPS)的处理速度。这些系统在先进科技的研究;生物学, 气候分析,基因组学,脑基因组学,材料开发等)中扮演着重要角色。在许多方面,计算能力驱动着现代 社会的发展。人工智能,特别是机器学习的发展将需要更加强有力的,超过每秒百亿次(1018)运算能力的 计算系统。
当前,构建这些系统的基础是CMOS技术的芯片,而CMOS工艺能够不断提高系统性能主要得益于 集成尺寸的缩小。过去30年,摩尔定律很好地预测了这种计算进步。2018年,10纳米工艺的芯片已经大 规模量产,7纳米开始量产,5纳米节点的技术定义已经完成。然而,由于基础物理原理限制和经济的原因, 持续提高集成密度将变得越来越困难[Theis16]。目前,CMOS器件的横向尺寸接近几纳米,层厚度只有 几个原子层,这会导致显著的电流泄漏,降低工艺尺寸缩小的效果。此外,这些纳米级晶体管的能量消耗 非常高,很难实现密集封装。
另外,物联网(loT)、社交媒体和安全设备产生了大量的数据,存储、交换和处理这些数据都需要大 量的存储器。目前DRAM技术已经接近极限,DRAM性能和存储器容量的进步主要通过封装技术来实现, 即堆叠多个DRAM芯片并通过硅通孔(TSV )将其连接到存储器控制器芯片上。增加数据带宽则是通过 更宽的数据总线来实现的。非易失存储技术的主力是NAND闪存,最先进的3D NAND具有多达64层和 256 Gb的容量,预计于2018年进入市场。由于DRAM和NAND闪存都是独立于计算核心的,和计算 核心进行数据交换的代价(包括时间和能耗)非常大,而目前能够和计算核心紧耦合的片上存储器的唯一 方案是SRAM,其容量为兆级。即使采用最小的SRAM单元填充1平方厘米芯片面积的一半,也只有约 128兆的片上存储容量。因此,我们有充足的理由开发提供大量存储空间的片上存储器技术,并探索利用 片上存储器去构建未来的智能芯片架构[Aly15]o
在计算架构和器件层面,我们也需要一种新的方法。大脑可以看作一个可以处理大量(通常是模糊 的)信息,且具有超高密度、错误恢复能力和高能效的计算模型。神经元和大脑突触的能量消耗比最先进 的CMOS器件还低几个数量级。另外,大脑可以处理模式识别和特征提取的问题,这对传统架构来说非 常困难,甚至不可能实时实现。理想情况下,我们需要具有生物系统优点而规避速度慢等缺点的器件和材料。 近年来,可以存储模拟数值的非易失性存储器发展迅猛,它可以同时具有存储和处理数据能力,可以破解 传统计算体系结构的一些基本限制,有望实现类脑突触功能。
5 AI芯片架构设计趋势
5.1云端训练和推断:大存储、高性能、可伸缩
之前我们分析了云端训练和推断的基本需求,虽然训练和推断在数据精度、架构灵活和实时性要求上 有一定的差别,但它们在处理能力(吞吐率)、可伸缩可扩展能力以及功耗效率上具有类似的需求。因此, 针对云端的训练和推断而开发的专用芯片和技术创新,基本都是围绕这几个需求。
NVIDIA的V100 GPU和Google包括四颗芯片的Cloud TPU [Google],是目前云端商用AI芯片 的标杆。在深度学习计算的处理能力方面,V100达到120TFLOPS, Cloud TPU则达到180TFLOPS。 值得一提的是,这种处理能力都是由专门针对深度学习需求而设计的运算单元提供。在存储和访存能力上, V100有16 GB HBM2存储器,支持900 GB/s的带宽;而Cloud TPU单颗芯片有16GB HBM存储器, 支持600GB/s的带宽。另外,它们共同的特点是支持多芯片的扩展能力,V100支持NVIDIA的NvLink 互连方式,可以扩展到8芯片的系统;而Cloud TPU也支持高速的芯片间互连接口和板级互连接口,非 常适合在云端和数据中心部署。图表5-1是Cloud TPU的机柜,包括64个TPU2,能够为机器学习的训 练任务提供11.5 PFLOPS的处理能力和4 TB的HBM存储器。同时,这些运算资源还可以灵活地分配和 伸缩,能够有效支持不同的应用需求。
从NVIDIA和Goolge的设计实践我们可以看出云端Al芯片在架构层面,技术发展的几个特点和趋势:
1. 存储的需求(容量和访问速度)越来越高。一方面,由于处理大量数据的要求,需要更大容量的存 储器。另一方面,限制运算能力提高的主要因素是访问存储器的速度,因此,未来云端AI芯片会有越来越 多的片上存储器(比如Graphcore公司就在芯片上实现的300MB的SRAM )和能够提供高带宽的片外 存储器(HBM2和其它新型封装形式)。
2. 处理能力推向每秒干万亿次(PetaFLOPS),并支持灵活伸缩和部署。对云端AI芯片来说,单芯 片的处理能力可能会达到PetaFLOPS的水平。实现这一目标除了要依靠CMOS工艺的进步,也需要靠 架构的创新。比如在G oogle第一代TPU中,使用了脉动阵列(Systolic Array)架构,而在NVIDIA的 V100GPU中,专门增加了张量核来处理矩阵运算。为了将GPU扩展为更大的系统,NVIDIA专门开发了 的NVSwitch交换芯片,可以为多个GPU提供高带宽互连。在最新发布的DGX-2系统中,16颗V100 GPU连接在一起,提供2PFPLOS的处理能力,可以实现大规模神经网络的并行训练。除此之外,我们 还看到一些更为“极端”的架构设计。比如晶圆级集成技术,即用整个晶圆制成一个“超级芯片”;再比如 在运算单元中使用无时钟电路实现更高的速度和更低的功耗。此外,还有一条路径是通过多芯片、多板卡 互连来实现更强的运算和存储能力,而不是单纯追求单芯片的处理能力。未来应该可以看到越来越多的产品, 以系统(或者云服务)而非单芯片的形式,提供可伸缩和配置的处理能力。这种强大处理能力的灵活性还 体现在训练和推断任务的部署上,比如在白天将更多的硬件用于推断任务,满足应用需求,而晚上则把更 多的资源分配给训练任务。
3. 专门针对推断需求的FPGA和ASIC。随着AI应用的爆发,对推断计算的需求会越来越多,一个 训练好的算法会不断复用。推断和训练相比有其特殊性,更强调吞吐率、能效和实时性,未来在云端很可 能会有专门针对推断的ASIC芯片(Google的第一代TPU也是很好的例子),提供更好的能耗效率并实 现更低的延时。另外,FPGA在这个方向也有独特优势,从微软提出的BrainWave架构就可以看出端倪。
5.2边缘设备:把效率推向极致
相对云端应用,边缘设备的应用需求和场景约束要复杂很多,针对不同的情况可能需要专门的架构设计。 抛开需求的复杂性,目前的边缘设备主要是执行“推断”在这个目标下,AI芯片最重要的就是提高“推断” 效率。目前,衡量AI芯片实现效率的一个重要指标是能耗效率一TOPs/W,这也成为很多技术创新竞争 的焦点。在ISSCC2018会议上,就出现了单比特能效达到772 TOPs/W的惊人数据旧ankman18]。
在提高推断效率和推断准确率允许范围内的各种方法中,降低推断的量化比特精度是最有效的方法。 它既可以大大降低运算单元的精度,又可以减少存储容量需求和存储器的读写。但是,降低比特精度也意 味着推断准确度的降低,这在一些应用中是无法接受的。由此,基本运算单元的设计趋势是支持可变比特 精度,比如[Lee18]的BitMAC就能支持从1比特到16比特的权重精度。
除了降低精度以外,提升基本运算单元(MAC )的效率还可以结合一些数据结构转换来减少运算量, 比如通过快速傅里叶变换(FFT )变换来减少矩阵运算中的乘法(参考[Vivienne17]);还可以通过查表的 方法来简化MAC的实现等。
对于使用修正线性单元(ReLU )作为激活函数的神经网络,激活值为零的情况很多;而在对神经网 络进行的剪枝操作后,权重值也会有很多为零。基于这样的稀疏性特征,一方面可以使用专门的硬件架构, 比如[Pa「asha「17]中提出的SCNN加速器,提高MAC的使用效率,另一方面可以对权重和激活值数据 进行压缩(参考[Vivienne17])。
另一个重要的方向是减少对存储器的访问,这也是缓解冯•诺伊曼“瓶颈”问题的基本方法。利用这 样的稀疏性特性,再有就是拉近运算和存储的距离,即“近数据计算”的概念,比如把神经网络运算放在 传感器或者存储器中。对于前者,已经有很多工作试图把计算放在传感器的模拟部分,从而避免模/数转换 (ADC )以及数据搬移的代价。另一个趋势是先对传感器数据进行简单处理,以减少需要存储和移动的数据。 比如,先利用简单神经网络,基于图像传感器得到的数据初步定位目标物体,再把只包括目标物体的部分 存储,并传输给复杂的神经网络进行物体的识别。后者,即存内计算,我们会在后面的新型存储技术中详 细讨论。
此外,在边缘设备的AI芯片中,也可以应用各种低功耗设计方法来进一步降低整体功耗。比如,当权 重或者中间结果的值为零的时候,对MAC进行时钟门控(Clock-gating)。而[Bert17]提出的动态电压 精度频率调整,则是在传统芯片动态功耗调整技术中增加了对于推断精度的考量。再者,目前一些运算单 元采用异步设计(或者无时钟设计)来降低功耗,这也是一个值得探索的方向。
未来,越来越多的边缘设备将需要具备一定的“学习”能力,能够根据收集到的新数据在本地训练、 优化和更新模型。这也会对边缘设备以及整个AI实现系统提出一些新的要求。
最后,在边缘设备中的AI芯片往往是SoC形式的产品,AI部分只是实现功能的一个环节,而最终要 通过完整的芯片功能来体现硬件的效率。这种情况下,需要从整个系统的角度考虑架构的优化。因此,终 端设备AI芯片往往呈现为一个异构系统,专门的AI加速器和CPU,GPU,ISP,DSP等其它部件协同 工作以达到最佳的效率。
5.3软件定义芯片
在AI计算中,芯片是承载计算功能的基础部件,软件是实现AI的核心。这里的软件即是为了实现不 同目标的AI任务,所需要的AI算法。对于复杂的AI任务,甚至需要将多种不同类型的AI算法组合在一起。 即使是同一类型的AI算法,也会因为具体任务的计算精度、性能和能效等需求不同,具有不同计算参数。因此, AI芯片必须具备一个重要特性:能够实时动态改变功能,满足软件不断变化的计算需求,即“软件定义芯片”。
通用处理器如CPUs GPU,缺乏针对AI算法的专用计算、存储单元设计,功耗过大,能效较低;专 用芯片(ASIC )功能单一,难以适应灵活多样的AI任务;现场可编程门阵列(FPGA )尽管可以通过编 程重构为不同电路结构,但是重构的时间开销过大,而且过多的冗余逻辑导致其功耗过高。以上传统芯片 都难以实现AI芯片需要的“软件定义芯片”这一特性。
可重构计算技术允许硬件架构和功能随软件变化而变化,具备处理器的灵活性和专用集成电路的高性 能和低功耗,是实现“软件定义芯片”的核心,被公认为是突破性的下一代集成电路技术。清华大学微电 子所设计的AI芯片(代号Thinker [Shouyi17, Shouyi18]),采用可重构计算架构,能够支持卷积神经网络、 全连接神经网络和递归神经网络等多种AI算法°Thinker芯片通过三个层面的可重构计算技术,来实现“软 件定义芯片”,最高能量效率达到了 5.09TOPS/W :
1. 计算阵列重构:Thinker芯片的计算阵列由多个并行计算单元互连而成。每个计算单元可以根据算 法所需要的基本算子不同而进行功能重构。此外,在复杂AI任务中,多种AI算法的计算资源需求不同,因 此Thinker芯片支持计算阵列的按需资源划分以提高资源利用率和能量效率。
2. 存储带宽重构:Thinker芯片的片上存储带宽能够根据AI算法的不同而进行重构。存储内的数据分 布会随着带宽的改变而调整,以提高数据复用性和计算并行度,提高了计算吞吐和能量效率。
3. 数据位宽重构:16比特数据位宽足以满足绝大多数应用的精度需求,对于一些精度要求不高的场景, 甚至8比特数据位宽就已经足够。为了满足AI算法多样的精度需求,Thinker芯片的计算单元支持高低(16/8 比特)两种数据位宽重构。高比特模式下计算精度提升,低比特模式下计算单元吞吐量提升进而提高性能。
可重构计算技术作为实现“软件定义芯片”的重要技术,非常适合应用于AI芯片设计当中。采用可重构计算技术之后,软件定义的层面不仅仅局限于功能这一层面。算法的计算精度、性能和能效等都可以纳入软件定义的范畴。可重构计算技术借助自身实时动态配置的特点,实现软硬件协同设计,为AI芯片带来 了极高的灵活度和适用范围。
6 AI 芯片中的存储技术
Al芯片由于在广泛的识别和分类任务中显示出其优越的能力,成为物联网(loT )系统和大数据处 理的关键促成因素之一。如前所述,提高AI芯片的性能和能效的关键之一在于数据访问。而在传统的 冯•诺伊曼体系结构中,数据从存储器串行提取并写入到工作内存,导致相当长的延迟和能量开销。从 器件到体系结构的全面创新预计将赋予AI芯片更强的能力。近期,面向数字神经网络的加速器(GPU、 FPGA和ASIC )迫切需要Al友好型存储器;中期,基于存内计算的神经网络可以为规避冯•诺依曼瓶 颈问题提供有效的解决方案;最后,基于忆阻器的神经形态计算可以模拟人类的大脑,是AI芯片远期解 决方案的候选之一。
考虑到并行访问大量数据的需求,人工智能和大数据处理需要高带宽、大存储容量的内存。图表 6-1显示了当前主要存储技术中带宽和容量的快速增长。考虑到在不断尺寸缩放的情况下,传统 NVM 所面临的困难越来越多,新兴的 NVM 由于其相对较大的带宽和迅速增长的容量,可以在 AI 芯片的存储技术中发挥至关重要的作用。
6.2 片外存储器
DRAM 和 NAND 闪存由于高密度的单元结构特点,通常被用作具有相对较大容量的片外存储器。3D集成已经被证明是增加商业存储器的带宽和容量的有效策略,其可以通过使用从底部到顶部的硅通孔(TSV)技术,堆叠多个管芯或者单片制造的方法来完成。DRAM 的代表作品包括 HBM [Lee14] 和混合存储器立方体(HMC)[Jeddeloh12]。图表 6-2 显示了 NVIDIA 的 GPU 产品与 HBM 集成的 AI 应用程序 [NVIDIA]。对于 NAND 闪存,3D NAND 正在深入研究。最近,三星已经开发出 96 层 3D NAND。
6.3片上(嵌入型)存储器
由于能够连接逻辑和存储器电路,并且与逻辑器件完全兼容,SRAM是不可或缺的片上存储器,其性 能和密度不断受益于CMOS的尺寸缩放。然而,其易失性使得芯片上或芯片外的非易失性存储器成为必须o 虽然目前NOR闪存被广泛用作片上NVM,但由于其存取时间较短且写入能量较大,限制了系统的性能。
6.4新兴的存储器
新兴的NVM技术可以显著改善用于商业和嵌入式应用的AI友好型存储器。对于商业存储器,新兴的 NVM因为速度较为匹配,可以用作存储级内存(SCM )来弥补工作内存和存储之间的访问时间差别。因 为可以高密度集成,相变存储器(PCM )和阻变存储器(ReRAM )是SCM的主要候选者。此外,自旋 力矩传输存储器(STT-MRAM )由于其高耐久性和高速度被认为是DRAM的替代品。对于嵌入式应用, 基于新兴NVM的片上存储器也可以提供比传统NVM更好的存取速度和低功耗,可在非常有限的功率下 工作,这对于物联网边缘设备上的AI芯片特别具有吸引力。
7 新兴计算技术
新兴计算技术已经被提出并被研究,以减轻或避免当前计算技术中的冯·诺依曼体系结构的“瓶颈”。主要的新计算技术包括近内存计算、存内计算,以及基于新型存储器的人工神经网络和生物神经网络。 虽然成熟的 CMOS 器件已被用于实现这些新的计算范例,但是新兴器件有望在未来进一步显著提高系统性能并降低电路复杂性。
7.1 近内存计算
存内计算与传统的冯·诺依曼体系结构有着本质不同,该体系结构直接在存储器内执行计算而不需要数据传输。
这个领域的最新进展已经证明了存内计算具有逻辑运算和神经网络处理的能力 [Chen17 & 18]。图表 7-2 的展示了基于冯·诺依曼和存内计算架构的 AI 芯片的概念图。利用存内计算模块后,功耗和延迟可以显着降低。
7.3 基于新型存储器的人工神经网络
基于新兴非易失性存储器件的人工神经网络计算最近引起了人们的极大关注 [Yang13]。这些器件包括铁电存储器(FeRAM)、磁隧道结存储器(MRAM)、相变存储器(PCM)和阻变存储器(RRAM)等,它们可用于构建待机功耗极低的存储器阵列。更重要的是,它们都可能成为模拟存内计算(Analog In-memory Computing)的基础技术,实现数据存储功能的同时参与数据处理。这些器件一般都以交叉阵列(crossbar)的形态实现,其输入 / 输出信号穿过构成行列的节点。图表 7-3 就是一个 RRAM 交叉阵列的例子,其中矩阵权重被表示为电导。交叉阵列非常自然地实现了向量和矩阵乘法,这对于各种基于 AI 的应用具有重要的意义。使用图中集成 1024 单元的阵列进行并行在线训练,清华大学吴华强课题组在国际上首次成功实现了灰度人脸分类。与 Intel 至强处理器(使用片外存储)相比,每次迭代模拟突触内的能量消耗低 1,000 倍,而测试集的准确度与 CPU 计算结果相近 [Yao17]。另外,在 [Li18] 中,基于128×64 的 ReRAM 交叉阵列,输出精度为 5-8 比特的精确模拟信号处理和图像处理也得到了实验演示。和传统的 CMOS 电路相比,模拟存内计算可以用非常低的功耗实现信号的并行处理,从而提供很高的数据吞吐率 [Li18]。由于存储元件的状态可以映射为突触,这种交叉开关阵列实际上实现了一个全连接的硬件神经网络 [Prezioso15] [Hu18] 的物理实例。
7.4生物神经网络
上述人工神经网络本质上是存储和计算并行。另一种更具生物启发性的方法是采用脉冲神经网络等, 更严格地模拟大脑的信息处理机制。旧M TrueNorth和最近宣布的英特尔Loihi展示了使用CMOS器件 的仿生脉冲神经网络硬件实现。前者包括106个神经元和2.56 x 108 SRAM突触[merolla14],后者拥 有1.3x105个神经元和1.3x108突触[intel17 ]。
脉冲神经网络方法需要有与生物神经元的动力学相似 的人工突触和神经元。
然而,由于CMOS器件需要用多个晶体管来模拟一个突触或神经元,我们需要新 的具有生物突触和神经元内在相似性的紧凑型物理结构,用于复制生物神经网络行为。实际上,对模拟突 触功能至关重要的人工突触已经被简单的两终端忆阻器实现[wang17]。最近,带有积分泄漏和发放功能 的人工神经元也被单_的忆阻器器件实现[wang18 ]。第一个基于忆阻器的人工神经元和突触集成的神经 网络示意见图表7-4。图中展示了采用忆阻神经网络进行无监督学习的模式分类[wang18]o实验证明虽 然神经形态计算仍然是其技术成熟度的早期阶段,但是它代表了 AI芯片的一个很有前景的长期方向。
除了两终端器件外,新兴的三端晶体管也可以用来构建神经网络。例如,将铁电电容器集成到晶体管 的栅极所构成的FeFET,铁电电容器的极化程度与通道的跨导相关。FeFET可以提供快速的编程速度, 低功耗和平滑的对称模拟编程。利用上述交叉阵列结构,FeFET也可以自然地实现向量-矩阵乘法(见 图表7-5 )o交叉开关阵列中FeFET的模拟状态能够表示全连接神经网络中突触的权重[Jerry17]o此外, 铁电体层的晶格极化动力学还可以实现脉冲神经网络(SNN)的时间学习规则,如脉冲时序而定的可塑性 (spiking-timing-dependent plasticity, STOP ) [Boyn17].
虽然新兴的计算可以使用当前的CMOS器件实现,但新兴的内存技术仍然是支撑新型计算技术和Al技术 蓬勃发展的重中之重。AI友好型存储器在近期也迫切期望用于解决缓解冯•诺依曼“瓶颈”难题。近内存计算、 存内计算和基于忆阻器的神经形态计算在超越冯•诺依曼计算方面都具重要性,可服务于AI技术的持续快速发展。
7.5对电路设计的影响
模拟存内计算有很大的潜力实现比数字乘累加单元更快的速度和更高的能效。然而,模拟电路操作也 给外围电路的设计带来了新的挑战。
与数字方法不同,由于每个矩阵元素的误差在求和过程中会被累积并影响输出,用模拟量来表示神经 网络的权重要求对存储元件进行高精度编程,另外,对于某些新兴的存储器件来说,模拟编程过程可能是 相对随机的。因此,实现高精度模拟状态编程可能需要多个周期才能完成,对于需要频繁重新编程的应用 而言,这可能非常耗时且能效很低。对于这些应用,编程电路和算法的优化至关重要。
另一方面,在存储器件制造过程中,面积(密度)是第一考量因素。在晶体管尺寸能够保持功能的前 提下,以尺寸更小为优化方向。加上工艺本身的各种偏移,RAM单元在实际制造过程中具有极高的不匹 配性,为了弥补不同RAM单元特性不匹配的短板,在完成多比特计算时往往需要额外的抗失调与失配补 偿电路,或者通过在线学习更新神经网络参数的方法来进行补偿。此外,为了接收来自传统的数字电路的 信号并将结果传回数字系统,系统需要快速和高能效的信号转换电路(包括DAC和ADC)。对于基于欧 姆定律和基尔霍夫定律的矢量矩阵乘法,输入通常采用电压信号形式,而输出结果则是电流信号。在很大 的测量范围内精确测量电流值,也是一个需要解决的问题。
8 神经形态芯片
神经形态芯片(Neuromorphic chip)采用电子技术模拟已经被证明了的生物脑的运作规则, 从而构建类似于生物脑的电子芯片,即“仿生电脑”其与神经形态工程含义类似。神经形态工程 (Neuromorphic Engineering)在1980年代晚期由加州理工学院教授卡弗•米德(Carver Mead) 提出,指利用具有模拟电路(analog circuits)的超大规模集成电路(Very-large-scale integration, VLSI)来模拟生物的神经系统结构。近些年神经形态计算也用来指采用模拟、数字、数模混合VLSI以 及软件系统实现的神经系统模型。受到脑结构研究的成果启发,研制出的神经形态芯片具有低功耗、低 延迟、高速处理、时空联合等特点。
8.1神经形态芯片的算法模型
广义上来讲,神经形态计算的算法模型可以大致分为人工神经网络(Artificial Neural Network, ANN)、脉冲神经网络(Spiking Neural Network, SNN),以及其他延伸出的具有特殊数据处理功能的模型。 其中ANN是目前机器学习特别是深度学习使用的主要模型,是本文其它部分讨论的主要内容。因此,本节 主要讨论SNN算法。这类算法具有几个特征:第一,其神经元的输出是具有时间维度编码的脉冲序列;第 二,通过膜电位表征时间维度,即膜电位代表了历史上收到的脉冲能量,且发放会导致膜电位的变化,有 时序记忆特性。因此,多个神经元可以实现时-空二维空间的表达能力。
神经元动态行为的模拟算法较多,一般采用微分动力方程表述,有较好的仿生能力,但不利于硬件实现。 因此,基于简化算法,尤其是基于泄漏积分发放模型(Leaky Integrate and Fire, LIF)的方法广受关注。 其原理是将连接到本神经元的所有轴突的脉冲,根据突触强度进行加权求和,得到神经元的积分电位,再 与之前的膜电位相加并更新,得到新的膜电位。如果膜电位超过设定阈值则发放脉冲,否则不发放。如图 表8-1所示。可见,LIF算法具有将时间和空间信息联合表达的特点。
SNN最常见的学习基础算法是依赖神经元脉冲时序而定的可塑性(Spike-timing-dependent plasticity STDP)o STDP是已经在生物脑中得到验证、较为有效的训练算法。作为一种局部训练的、非 监督的非反向传播算法,它不能保证一定能够训练出性能优异的网络。另外,由于SNN网络训练比较困难, 因此在实际应用中,也会采用反向传播算法进行训练。SNN的权重精度一般不高,而且涉及大量的乘累加 操作,低精度权重和低精度激活值的ANN网络比较适合于移植到SNN中。一个较为粗糙的对比是,对于 MLP或CNN等前馈型网络拓扑结构,基于LIF模型的SNN网络与采用二值激活神经元和ReLU激活函 数的ANN网络类似。换言之,在没有历史记忆情形下,SNN与ANN具有一定程度的等价性。SNN与 ANN的对比见图表8-2所示。
8.2神经形态芯片的特性
8.2.1可缩放、高并行的神经网络互联
借鉴生物脑的互联结构,神经形态芯片可以实现任意神经元间的互联。即在指定规模的仿生神经网络下, 任意一个神经元都可以把信息传递给指定的另一个或多个神经元。如此强大的细粒度互联能力是其他神经 网络/深度学习芯片目前还无法做到的。
为了实现复杂互联,神经形态芯片通过横纵交叉矩阵(crossbar)、片上网络(NoC)、芯片外部高互 联链路的多层级方案实现。最简单的方案是横纵交叉矩阵,如图表8-1所示,在矩阵上交叉处有连接点代 表有突触连接,连接的强度用多值权重值表示。但其规模受限,为了扩大规模,可以采用高速、共享的物 理链路互联,例如芯片内部的2D Mesh网络和芯片与芯片(外部)互联的SerDes接口 /光纤接口。这 些互联方案是多神经元分时共享的,而不像生物脑那样,传输链路彼此独立,因此就需要传输的数据携带 有目标地址信息,打成数据包在这个共享的链路上传输。神经元级别的传输具有地址的任意性,因此每个 神经元目的地址是不同的,发射的数据包采用神经元级别的小包,一般为几十个比特,因此适合采用存储- 转发方式,如2D-mesh网络和高扇入扇出总线。这样的传输网络没有绝对的位置,目的地址采用相对于 发射端的偏移位置,因此可以传到任意大的网络,如果路径较远可以用中继核转发。值得注意的是,普通 计算机采用内存进行数据交换也可以达到同样的效果,但是需要串行传输,而这种片上网络可以支持成百 上干级别的并行传输。
8.2.2众核结构
由于生物脑中神经元是分簇的,簇内互联较多,簇间较少,因此神经形态芯片中采用分簇结构是可行的, 即簇内包括一组神经元,且采用上文所述的交叉阵列与输入的信号(其他神经元的输出轴突)互联,簇间 采用例如2D Mesh这样的片上网络。簇就成了芯片的功能基础单元,有时也称为核(Core )3这个结构也 称为众核。该单元主要包括了输入输出路由、突触交叉阵列(实际上是存储器实现的)、积分运算部分和发运算部分等。其中输入输出数据可以认为是与外界交互的存储区域,突触存储是簇内私有的,别的簇无 法访问。这些簇在地位上是平等的,没有主从关系,整个系统是去中心化并且可缩放规模的。从整体上看来, 突触存储可能占据了一半甚至更多的内存,且是散状分布在各个簇内的,跟计算单元离得很近,因此这个 结构具有近计算存储或者说近存储计算的特性。其理论源于生物脑的计算-存储一体化,优点是可以解决 传统冯•诺依曼计算机中的“存储墙”问题。
8.2.3事件驱动
神经芯片的事件驱动也是受脑启发的:生物体神经元接收脉冲,自身膜电位相应改变。没有输入的脉冲, 就没有膜电位对应改变的必要(但会有电位的泄漏)。因此电路是否工作取决于是否有包(事件)触发。数 字电路的特点往往是后选式的,像处理器中算术逻辑单元(arithmetic and logic unit,ALU),先把所有 可能的支路都进行运算,然后选择需要的支路。而事件驱动是前驱式的,一个模块具有很多输入,当输入端收到信息(如脉冲数据包)时,模块就启动计算。因此路由是否传输数据,神经元模块是否运算,取决于是否有信息。这在很大程度上降低了大规模芯片的动态功耗。
8.2.4数据流计算
数据流核心观点较多,本文主要参考的观点是将运算和传输用一个有向图(Graph )表示,这个有向 图中节点代表运算,边代表传输关系。数据流图就像一个具有各种分支,合并复杂工序加工流水线,让数 据通过这个系统得到输出。每一个节点是否运算,取决于其前继节点的运算结果是否已经就位,后继节点 的输入线路是否有能力接受新的数据。如果满足,则进行运算。它是无中心、动态众核计算的较快方式, 具有众核计算的友好性。数据流计算的不足是控制逻辑简单,不容易表示循环递归之类的结构,然而在神 经网络这个范畴它反而显得很合适。因此,在Tensorflow等神经网络框架中,默认采用数据流的方式表 达神经网络的连接关系。
8.3机遇与挑战
目前神经形态芯片的设计方法主要分为基于传统CMO S技术的神经形态计算电路和基于新型纳米器 件的神经形态计算电路。传统CMOS技术发展相对比较成熟,如在第7章中提到的旧M TrueNorth芯片 是异步-同步混合(无全局时钟)数字电路的代表作,清华大学的天机系列芯片实现了纯同步数字电路的 神经形态芯片;瑞士苏黎世联邦理工学院的ROLLS芯片和海德堡大学的BrainScaleS则是模拟集成电路 的代表作品。而基于新型纳米器件的神经形态计算电路目前最受关注的方向是利用忆阻器等器件搭建的神 经形态芯片(详见第7章)。
神经形态芯片在智能城市、自动驾驶的实时信息处理、人脸深度识别等领域都有出色的应用。如旧M TrueNorth芯片可以用于检测图像中的行人、车辆等物体,且功耗极低(65mW)。它也可被用于语音、 图像数据集识别等任务,准确性不逊于CNN加速器芯片。此外,在线学习能力也是神经形态芯片的一大亮 点。研究人员已证明,与其他典型的SNN网络相比,在解决MNIST数字体识别问题上,英特尔Loihi芯 片将学习速度提高了 100万倍[Davies18]o
在传统CMOS工艺下,神经形态芯片的物理结构较为成熟,但对于可以仿真大规模神经网络而言(如 大于人脑1%规模的系统而言),仍存在很多挑战,包括;
1散热问题将导致单芯片规模无法继续增长, 片上存储和积分计算单元的密度不够,导致集成的突触和神经元数量无法继续提升,功耗居高不下。
2 由于其阵列众核的特性,在片上、跨芯片、跨板、多机等尺度下的互联和同步问题突出。
3为了提升密度, 大多ASIC芯片可模拟的神经形态算法过于单一或简化,缺乏灵活性和模仿真实生物神经元的能力。
对基于忆阻器交叉阵列的神经形态芯片而言,在很长一段时间内,都需要针对具体的应用需求并结合 能效目标,对交叉阵列的规模、突触的连接方式和漏电流的控制等不断进行优化。
除了上述物理结构问题,神经形态芯片在软件,特别是算法上,同样面临巨大的挑战。几年前,深度学习、 CNN技术未得到有效发展时,ANN也面临类似的问题,但随着基于反向传播算法的深度卷积神经网络的 不断进步,这个问题得到了很大程度的缓解。而目前,SNN相关算法大都处于研究阶段。主要根源在于人 们对生物脑的运作机理挖掘还不充分,受启发有限。值得欣慰的是,近几年脑图谱技术发展迅速,绘制详 细的动物全脑神经元级别静态连接结构已逐渐成为现实。动态运行的脑机制探测,如动物的低级视觉皮层 信息解译也取得了长足的进步。相信这些脑科学的实验证据将大大助力神经形态计算取得突破。
9 AI 芯片基准测试和发展路线图
基于通用芯片设计领域的经验,我们普遍认为不太可能找到普适的“最佳”器件、架构或算法。例如,在冯•诺 依曼架构下,CMOS器件似乎很难被新兴器件击败[Nikonov15, Nikonov13],而一些新兴器件(例如自旋电子器件) 可能在非布尔架构中表现得更好,如用于细胞神经网络[Pan16]。另一个使得设计Al芯片的基准测试更有挑战性的原 因是,除了需要考虑与计算本身相关的能量、性能和准确度之外,还必须考虑其他操作,比如,由于诸如输入、输岀 和存储器访问等而导致的性能和能量开销。这对于非冯•诺依曼硬件来说尤其困难,因为真正的公平对比必须同时考 虑最先进的冯•诺依曼硬件平台(CPU、GPU )和相关的算法。此外,随着工艺进步和创新引入未来的芯片,上述 平台的性能也将发生变化。最后,在AI领域,不论是理论研究还是应用需求,都在不断引入新的算法,如神经网络 的结构和计算模型,对基准测试和路线图的探讨必须考虑到所有这些因素。
目前,我们还没有看到任何公开、全面的针对AI芯片的基准测试工作。业界对于AI芯片的评估主要靠运行一些 常见的神经网络以及其中使用较多的基本运算来进行,比如由百度提岀Deepbench[Baidu]。美国自然科学基金委 (NSF )、美国国防高级研究计划局(DARPA)和半导体研究联盟(SRC)资助的几个研究计划也认识到这项工作的 重要性,EXCEL中心的研究人员(由美国NSF和SRC资助)正在积极研究非冯•诺依曼硬件的基准测试方法学, 比如针对MNIST数据集[EXCEL]的任务。
为了应对面向AI应用的硬件基准测试的相关挑战,我们需要收集一组架构级功能单元,确定定量和定性的优值 (Figures of Merits, FoM )并开发测量FoM的统一方法。
神经形态计算的材料和器件需要具备:1 )多态行为,能够根据过去的历史决定当前状态值;2 )低能耗,能以很 低的能耗从一种状态切换到另一种状态;3 )非易失性:无需刷新就可以保持状态的属性;4 )阈值行为:受到重复激 励后可以剧烈地改变某些属性;5)容错性。
判断一颗基于某种特定器件工艺、电路形式和体系结构而实现的芯片好坏,在很大程度上取决于它针对的具体应 用和算法/模型。为了对各种各样的器件进行基准测试,有必要明确目标应用、适用的算法和模型以及电路设计等信息。只有提供足够详细的信息,才可以既不限制选择范围,又同时明确器件需求°NRI纳电子研究计划(Nanoelectronics Research Initiative )进行的超越CMOS器件的基准测试研究使用反相器、NAND门和加法器作为标准布尔逻辑电 路模块来比较所有器件[Nikonov15, Nikonov13]。AI芯片的基准测试还需要定义具有可量化参数的通用功能单元。 许多神经网络使用的卷积、池化和激活函数等功能,可能是合适的功能单元,随着新的算法和计算模型的岀现,基准 测试中也可能会引入其他的附加功能单元。在架构级别上,操作/秒/瓦特(operations/second/watt)和吞吐量可 以是两个对系统性能互补的测量。如何确定其他神经形态计算模型,如脉冲神经网络,也必须进行研究,因为它们经 常带有与其他标量神经网络不同的计算形式。
目前,有一些神经形态器件的定量参数被提岀和评估,包括调制精确度(如阻抗水平)和范围(如开关率)、线性度、 不对称性及变异性等。它们对于对神经网络性能表征都非常关键。一些通常用于布尔逻辑的器件参数对于神经形态计 算也很重要,包括尺寸、速度、操作电压/电流、功率/能量、可靠性、耐久性和良率等,这些参数之间的权衡需要 仔细评估。算法准确度是人工智能应用的一个关键考虑因素,也应该包含在FoM中。
为AI芯片开发统一的基准测试方法,可以利用NRI赞助研究工作所获得的知识和经验。虽然这项工作主要集中 在布尔逻辑单元(NAN D门和ALU),但它为更高级的架构级基准奠定了基础。例如,在[Perricone17]中,作者扩 展了 [Nikonov15]的工作,针对执行并行工作负载的多核处理器,在架构层面对几种新型器件进行基准测试。他们提 岀的分析框架基于新型设备来预测多核处理器的性能和能耗,扩展这个框架来处理非冯•诺依曼体系结构,将需要新 的、基于适当功能单元的性能和能耗模型。
AI芯片的测试基准和路线图必须超越器件和电路(即加法器,乘积累积单元) 的层次,以量化各种因素同时发挥作用将如何提高计算原操作(例如凸优化),以及应用级任务的能量/性能FoM (例 如图像分析)。这项工作需要算法研究人员、架构师、电路设计人员和器件专家共同努力才能很好地完成。
以上全部内容
如需PDF请按以下步骤提取
关注公众号,转发后---并扫描下图二维码添加微信【免费】获取PDF
往期回顾
【114页/附下载】5G元年,电子行业迎来新时代-5G+AI系列研究