()
绝大多数AI芯片设计团队正在利用传统的数字电路设计技术,寻求提供硬件加速,以实现高能效、高吞吐量和低时延的DNN计算,同时避免牺牲神经网络精度。不管在系统级还是在芯片级,他们都大量采用异质架构,如CPU加GPU、CPU加FPGA,或在FPGA里再增加「AI引擎」(赛灵思公司)等。对AI芯片研发人员而言,了解并考虑这些数字加速器不断取得的进展至关重要。
DNN将神经元排列成一层,这样排列后的网络层多达数十层、几百层甚至更多,逐层推理输入数据的更抽象的表示,最终达成其结果,如实现翻译文本或识别图像。每层都被设计用于检测不同级别的特征,将一个级别的表示(可能是图像、文本或声音的输入数据)转换为一个更抽象级别的表示。例如,在图像识别中,输入最初以像素的形式出现;第一层检测低级特征,如边缘和曲线;第一层的输出变为第二层的输入,产生更高级别的特征,如半圆形和正方形;后一层将前一层的输出组合为一部分熟悉的对象,后续层检测对象。随着经过更多的网络层,网络会生成一个代表越来越复杂特征的激活映射。网络越深,卷积核所能响应的像素空间中的区域就越大。
在各种神经网络类型中,卷积神经网络(CNN)被认为是计算机视觉领域最具潜力的创新之一,在分类和各种计算机视觉任务方面准确性更高。因此,现在的主流深度学习都以CNN作为最主要的部分,这也是现在很大一部分深度学习应用在图像识别、图像分类等领域的原因。包含CNN在内,目前比较流行的DNN及其主要特征如下。
(1)卷积神经网络(CNN):前馈型,权重共享,稀疏连接;
(2)全连接(FullyConnected,FC)神经网络:前馈型,又称多层感知器(MLP);
(3)循环神经网络(RNN):反馈型;
(4)长短期记忆网络(LSTM):反馈型,具备存储功能。
目前大部分DNN的基本组成,主要是CNN卷积层(CONV层)加上少量全连接层(FC层)及池化层等,如图3.1所示。
图3.1目前大部分DNN的基本组成
在卷积层和卷积层之间,或卷积层和全连接层之间,往往还加有起到降低特征维度等作用的池化层和归一化层。卷积层一般多达几十层,也有的达到了上千层。由于卷积层占了计算量的90%以上,时延和功耗都是在卷积层的计算上产生的,后面介绍的很多新的DNN算法和架构,都是针对卷积层进行各种优化和改进。
如前文所述,DNN的一个主要特点是很高的并行性,需要充分加以利用。例如在某个网络中,一个全连接层就有1600万个互相独立的乘法运算,在训练的时候,可以并行训练多个样例,可以把模型分到多个处理器来处理。
典型的CNN是具有管道状结构的多层前馈神经网络。具体而言,每一层对前一层的输出执行计算,以生成下一层的输入。一般来说,CNN有两种类型的输入:要测试或分类的数据(又称特征图)和权重。一方面,图像、音频文件和录制的视频都可以是使用CNN分类的输入数据;另一方面,网络权重通过在包含与被测试输入相似的输入的数据集上训练CNN而生成。
网络层的数量、层内和层之间的特定互连、权重的精确值及阈值行为相结合,给出了整个网络对输入的响应,通常需要多达数千万的权重来指定神经元之间的广泛互连。在实践中,人们会使用反向传播过程离线训练CNN。然后,离线训练出的CNN用于前馈过程执行识别任务。前馈过程的速度是很重要的。当网络最终用于推理时,权重在系统中作为新输入时通常保持不变。层中的每个神经元执行独立计算(将每个输入乘以相关权重,再把这些乘积加起来,进行非线性计算来确定输出)。大部分计算都可以使用矩阵乘法处理,从而让许多步骤并行完成。
AI芯片的设计流程
研发人员一直在不断改进现有的DNN模型和算法,使用越来越多样化的网络进行训练和测试,以实现更好的分类或更高的识别准确度,在某些情况下已经能够达到或超出人类的识别准确度。虽然神经网络的规模正在增加,变得更强大并且能提供更高的分类准确度,但是其需要的存储容量和计算成本正在呈指数增长。另外,这些具有大量网络参数的神经网络的大规模实现,并不适用于低功率应用,如智能手机、物联网设备、无人机、各种医疗设备等。
很多硬件平台及其使用的神经网络对于「永远开启」、低时延处理而言不够节能。因此需要有创新的想法,对模型和算法作新的改进,协同设计芯片和算法,以使能耗达到最小,并在芯片的架构级和电路级都有新的实现方法。图3.2为AI芯片的设计流程。
图3.2AI芯片的设计流程
(1)基本思路。AI技术的基本思路大致有两种,一种是基于西方哲学的逻辑思考,使用符号规则来进行符号表征,起到推理的作用;另一种是基于生物中神经网络的连接现象,找出学习的规则。从人工智能的发展历史来看,一开始都是基于符号规则来进行推理,但后来发展到以连接为主导的神经网络架构和算法。近年来,有人提出了把这两种类型结合在一起进行推理的新想法。
(2)数据集。对监督学习来说,训练数据就是「输入」和「标记」的组合,而「标记」代表了正确答案。数据的数量取决于所需的精度,也与网络架构和算法有关。无监督学习则只有训练数据的输入,没有「标记」。
(3)神经网络架构算法。根据准备好的数据集,确定合适的网络架构和算法,并确立一组训练参数,称为超参数(详见第9章)。可尽量采用近年来优化的方法,如二值网络、三值网络、降低数值精度(量化)、稀疏性(ReLU、网络剪枝)、可重用性、近似计算、专用DNN架构、张量分解(可分离卷积核)、循环穿孔等。
(4)芯片架构。主要把网络架构和算法映射到硬件架构,包括乘积累加器处理单元的优化、处理单元阵列及网络拓扑的优化、充分利用稀疏性及数据可重用性、高效存储器分层、权重固定(WeightStationary)及行固定(RowStationary)数据流等。
(5)电路实现。如近阈值电路、异步电路、基于查找表(Look-Up-Table,LUT)的乘法运算、定制片上SRAM单元电路等。长远来看,用NVM(非易失性存储器)来取代SRAM将可以大大提高能效。
计算引擎和存储系统
计算引擎
深度学习AI芯片是基于DNN实现的,而DNN里最主要的组成部分就是卷积层。
卷积层里的计算包含对3D卷积核(权重)、输入特征图(激活)、输出特征图(激活)、这些特征图的数量[称为批量(batch)]等的计算,达到7个维度的计算空间?[7]?(见图3.3)。在图3.3中,R和S是一个卷积核的高和宽;C是一个卷积核的通道数或输入特征图的通道数;X和Y、X′和Y′分别是输入及输出特征图的宽和高;K为卷积核数量或输出特征图的通道数;N表示批量的大小,用作训练的神经网络的N很大,而用作推理的N相对较小。
图3.3卷积层计算
卷积可以看作是矩阵乘法的扩展版,它增加了局部连接性和平移不变性(即图像经过了平移,图像样本的标记仍然保持不变)。与矩阵乘法相比,每个输入单元被替换成一个2D特征图,而每个权重单元被替换成一个卷积核,然后用滑动窗来计算。例如,从输入特征图的左上角开始,卷积核向右滑动,到
()
了最右端后又移回最左端并下移一行。
由于卷积层需要进行7个维度的计算,再加上为提供平移不变性而需要的卷积核数据重用等,卷积层的计算比一般矩阵乘法复杂很多。
在CPU和GPU中,计算引擎通常是算术逻辑单元(ArithmeticandLogicUnit,ALU);而在FPGA和ASIC中,计算引擎则是复杂的处理单元(PE),它可支持多种数据流模式。PE通过片上网络(NetworkonChip,NoC)互连,以实现所需的数据移动方案。
卷积计算需要PE阵列来完成。这些PE是DNN的关键组件,也就是MAC,如图3.4所示。图3.4a中,MAC接收3个数据,即输入数据X?i?、权重数据W?i?j?和到此为止得到的部分和Y?j?-?1,并输出新的部分和Y?j?。MAC中的乘法器大部分都是用数字电路实现的,但也有用模拟电路实现的(见图3.4b、c)。
请勿开启浏览器阅读模式,否则将导致章节内容缺失及无法阅读下一章。
相邻推荐:未来旅行家:跨越时空的科幻故事集 九秘神针:君临天下 杀死女神 邂逅「诗和远方」:打开浪漫诗人的诗词世界 2021 智能手机选购指南:看懂市场,做聪明的购机人 怪谈文学奖:现代都市恐怖病系列 古风甜饼,一生一世的赏味期限 仙君他貌美如花 全世界都在砸钱养我 有仙气:听说有神动凡心 二级建造师考试全攻略:从行业政策、备考规划到注册执业 就怕小偷有文化:金融诈骗、空中抢劫与艺术品犯罪 2021 平板电脑推荐与选购:高效选品方法论 忘记我姓名 我家院子可以去大明 大话西方艺术史:艺术原来这么有趣 白色球鞋:他爱你的一百件小事 论文查重降重攻略:学术论文重复问题剖析 繁华之间:名利场上的一夜沉浮 霍总,夫人的十个哥哥又来催离婚了