中国科学院半导体研究所

面向高能效人工智能计算的可重构芯片技术专刊

以深度神经网络(DNN)为代表的人工智能(AI)处理大多都是计算密集型和存储密集型的计算任务。然而,传统CPU计算平台在处理这类工作任务时正面临越来越多的困难。可重构计算(RC)可以在硬件中执行计算以提高处理能力,同时还可以保留软件解决方案中的大部分灵活性。基于可重构计算模型和原理的集成电路芯片设计已经成为满足人工智能应用中计算的加速性能、吞吐量目标以及功耗、能效要求的有效手段。

我们衷心希望本专刊能为该领域的研究提供有价值的参考和研究视角,激励更多的研究者探索这一新兴领域。

欢迎阅读!引用!

.Semicond.Volume41,Number2,February2020

1.动态可重构计算的体系结构、挑战与应用

图1.时域与空域结合的计算架构

动态可重构计算技术虽然尚不成熟,但其已经在许多计算密集和数据密集的应用中体现出了兼具高能效和灵活性的明显优势。相信随着技术的不断成熟,动态可重构计算必将得到更广泛地应用,并在主流计算架构中发挥重要作用。

Architecture,challengesandapplicationsofdynamicreconfigurablecomputing

YananLu,LeiboLiu,JianfengZhu,ShouyiYin,ShaojunWei

J.Semicond.2020,41(2):021401

doi:10.1088/1674-4926/41/2/021401

2.AI时代的FPGA芯片设计调查

自2012年AlexNet赢得ImageNet比赛以来,人工智能,更具体地说是DNN(DeepNeuralNetwork),在计算机视觉、语音识别、语言翻译、计算机游戏等领域取得了许多突破。许多高科技公司,如亚马逊、百度、Facebook、谷歌等,都声称自己是“人工智能公司”。我们可以相信未来是一个人工智能时代。

复旦大学微电子学院集成电路与系统国家重点实验室来金梅教授等调查了一系列用于人工智能的FPGA芯片设计。但CNN加速器的性能受FPGA的计算和存储资源的限制。虽然在目前的FPGA上可以运用各种提桥来提高推理加速器的性能,但最直接最有效的方法是重新设计FPGA芯片。为了满足不断发展的DNN需求,学术界和FPGA厂商对FPGA芯片的模块或体系结构进行了大量的更新和重新设计。

对于DSP模块,一种设计是支持低精度运算,如9位或4位乘法。DSP的另一种设计是支持浮点乘法累加(MACs),保证了DNN的高精度需求。对于ALM(AdaptiveLogicModule)模块,一种设计是支持低精度MAC,ALM的三个修改包括额外的进位链、增加片上MAC操作密度的4位加法器和影子乘法器。ALM或CLB(可配置逻辑块)的另一个设计是支持BNN(二值化神经网络),BNN是DNN的超低精度版本。对于能够存储DNN的权值和激活的存储模块,FPGA厂商提出了三种类型的存储器:嵌入式存储器、封装内的高带宽存储器(HBM)和片外存储器接口(DDR4/5)。

其他的设计改进包括新的架构和专门的人工智能引擎。Xilinx7nm的ACAP是第一个自适应计算加速平台,见图1(a)。它的人工智能引擎可以提供高达8倍的计算密度。2019年6月18日,Xilinx宣布,已供货ACAP平台的VersalAICore系列和VersalPrime系列芯片。在2019年8月29日,英特尔已经开始出货首款10nmAgilexFPGAs,见图1(b)。10nm的IntelAgileX与Intel自己的CPU协同工作,提高了计算性能,减少延迟,提高了从边缘设备到网络到云端设备的数据处理能力。

图1:Xilinx和Intel公司最新的FPGA架构

随着人工智能的不断发展,学术界和FPGA厂商将不断地更新FPGA的模块和架构,提高FPGA计算、存储和通信的性能,以满足AI不断变化的新要求。

AsurveyofFPGAdesignforAIera

ZhengjieLi,YufanZhang,JianWang,JinmeiLai

J.Semicond.2020,41(2):021402

doi:10.1088/1674-4926/41/2/021402

3.软件发展环境下神经网络加速器的调研

近年来,随着人工智能应用的爆发增长,神经网络算法作为其中的核心算法,已经广泛部署在云端服务器与终端设备。神经网络加速器已经成为学术界、工业界的研究热点。而神经网络的模型结构与算法的多样化发展,以及神经网络加速器硬件架构的各异性,对神经网络的软件编程也提出了一系列的挑战。

中国科学院计算技术研究所支天博士等从神经网络算法的发展与演变开始,介绍了一些经典的网络模型结构;从协同算法设计硬件,引出神经网络加速器的硬件架构设计,包括有使用低位宽计算、稀疏、压缩、流水线结构等;之后又介绍了神经网络的软件编程系统,从领域特定语言到神经网络框架,以及软件栈的编译优化方面做了回顾。最后阐述了未来神经网络加速器的发展趋势,需要软硬件的协同配合,共同迭代前进。

图1.神经网络编程系统的层次示意图

Asurveyofneuralnetworkacceleratorwithsoftwaredevelopmentenvironments

JinSong,XuemengWang,ZhipengZhao,WeiLi,TianZhi

J.Semicond.2020,41(2):021403

doi:10.1088/1674-4926/41/2/021403

4.面向混合型紧凑神经网络的粗粒度数据流重构技术及处理器实现

现主流神经网络处理器架构主要针对卷积神经网络进行运算加速,其在数据流处理过程中运用细粒度数据复用技术降低数据存取功耗,该类技术如权重稳定(weightstationary),输出稳定(outputstationary)等。然而,随着人工智能应用的发展,近年来神经网络结构快速演进,出现了一系列重要的基本算子,例如紧凑型卷积网络中的点卷积(point-wiseconvolution)和深度卷积(depth-wiseconvolution)、残差(shortcut)、长短期记忆层(LSTM)、深度强化学习网络中的状态动作层(state-action)等。多样化网络算子为加速器体系结构设计提出了更高的要求,而传统的细粒度数据复用技术本身并未考虑多样化算子在数据流动性方面的差异。

人工神经网络不同基本算子从数据流动特性上均具备各自特有机制,可重构架构根据各层算子计算特性动态重构数据流动方案、计算节点功能与存储功能。通过对神经网络中各基本算子的定性分析,并展示于表1中。不同算子在数据流,运算,存储,激活函数等方面均有较大差别。

表1神经网络中基本算子数据、计算、存储特性

图1所示处理器在卷积、池化、全连接、残差、记忆网络、强化学习网络层间进行功能动态改变的实例图。本设计通过指令集复用同一组硬件模块,实现不同核心算子的功能,达到降低额外面积开销,提高资源利用率的目标。

图1粗粒度神经网络数据流重构方案

图265nm数字可重构人工智能处理器架构,电路实现与物理指标

基于该流片芯片的设计思路,团队将可重构处理器在XilinxKintex-7FPGA模组上进行部署,其支持256个计算节点部署,达到60MHz主频,可动态重构传统卷积、点卷积、深度卷积、池化、LSTM、状态动作、全连接等网络层。为下一步大规模架构的ASIC设计与流片打下坚实基础。

现有智能处理器功耗在100mW到10W区域,其在对能量要求苛刻的场景中使用受限。而MCU等低功耗处理器在解决人工智能运算中无法达到所需的计算能力。本文所设计处理器通过粗粒度资源复用技术,实现7.51mW的低功耗智能处理器,其达到426GOPS/W的能效比,并具备较强的端到端神经网络编程能力。低功耗智能芯片可以广泛应用于物联网、可穿戴、海洋、航空等领域的智能应用,具备广泛的应用前景。

团队在后续研究中着力挖掘神经网络应用中数据特征,进行数据特征驱动的处理器设计方法,从而从源头上降低所需计算量,以便进一步提高能效比。在智能芯片设计方法方面,团队着力探索计算与存储的配合方案,大幅度利用DRAM有效带宽,引入智能化数据缓冲机制,实现计算与存储的高度协同化。

Acceleratinghybridandcompactneuralnetworkstargetingperceptionandcontroldomainswithcoarse-graineddataflowreconfiguration

ZhengWang,LibingZhou,WentingXie,WeiguangChen,JinyuanSu,WenxuanChen,AnhuaDu,ShanliaoLi,MinglanLiang,YuejinLin,WeiZhao,YanzeWu,TianfuSun,WenqiFang,ZhibinYu

J.Semicond.2020,41(2):022401

doi:10.1088/1674-4926/41/2/022401

5.基于H树的可重构同质PE阵列重构机制

为了适应特定应用中各种算法对不同性能和能效的需求,可重构体系结构已成为学术界和工业界的一种有效方法。但是,由于配置信息更新缓慢和灵活性不足,现有的体系结构存在性能瓶颈。

西安科技大学通信与信息工程学院蒋林教授等提出了一种基于H树的重构机制(HRM),其在PE阵列中采用类霍夫曼编码和掩码的寻址方法,寻找目的PE并完成配置信息的下发。提出的HRM可以在一个时钟周期内以单播,组播和广播模式将配置信息传输到特定的PE,并根据当前配置关闭不必要的PE。该配置网络可实现配置信息实时下发,完成阵列快速重构,对可重构芯片的发展具有一定的参考意义。

图1

HRM:H-treebasedreconfigurationmechanisminreconfigurablehomogeneousPEarray

JunyongDeng,LinJiang,YunZhu,XiaoyanXie,XinchuangLiu,FeilongHe,ShuangSong,L.K.John

J.Semicond.2020,41(2):022402

doi:10.1088/1674-4926/41/2/022402

6.基于FPGA的批处理级并行性实现高效的深度神经网络训练

近年来,深度神经网络(DNN)在图像分类,对象检测和语义分割等多种苛刻应用中取得了令人瞩目的成就。但是,在片上资源有限的嵌入式系统当中,实现深度神经网络应用尤其需要开发实时和低功耗硬件加速器。为此,因此各种硬件设备(包括FPGA和ASIC)被用于实现嵌入式深度神经网络应用。其中FPGA由于其具高可重构性,出色的能源效率和低延迟处理能力,使得其在加速快速发展的深层神经网络硬件加速中受到越来越多的欢迎。

但是,目前大多数FPGA硬件加速器是被应用在加速深度神经网络的推理,他们采用低精度神经网络模型来加速推理过程,而这些模型则是用高精度浮点数格式训练在GPU或CPU上。这样一来,由于深度神经网络使用不同的精度格式进行训练和推理,由此带来的精度损失需要进一步的微调才能弥补。这样分离的训练/推理过程使现有的FPGA加速器难以被广泛运用在同时需要训练/推理的应用中,例如,需要在线学习或持续学习的系统。

为了解决这些问题,复旦大学专用集成电路与系统国家重点实验室罗成博士等通过引入面向批处理的数据模式(我们称为通道高度-宽度-批处理(CHWB)模式),为深度神经网络训练提出了一种新颖的FPGA架构。CHWB模式在相邻的存储器地址处分配不同批次的训练样本,这使并行数据传输和处理可以在一个周期内完成。我们的架构可以在单个FPGA中支持整个训练过程,并通过批处理级并行性对其进行加速。

总而言之,本文探索了使用CPU,GPU和FPGA平台进行低精度培训的利弊。开发了一种新颖的FPGA框架,以在具有8位整数的低精度格式的单个FPGA上支持DNN训练。目标是确定在速度和功耗方面,低精度培训中是否可以利用FPGA提供的细粒度可定制性和灵活性来胜过尖端GPU。

TowardsefficientdeepneuralnetworktrainingbyFPGA-basedbatch-levelparallelism

ChengLuo,Man-KitSit,HongxiangFan,ShuanglongLiu,WayneLuk,CeGuo

J.Semicond.2020,41(2):022403

doi:10.1088/1674-4926/41/2/022403

7.面向深层神经网络的高性能低比特宽训练

深度卷积神经网络(DCNN)被公认为传统计算机视觉(CV)任务(尤其是图像分类)的成功解决方案。但是,这种令人满意的性能通常是以消耗大量计算资源为代价的,这主要是由于昂贵的浮点运算。尽管已经有大量工作致力于面向推理阶段的高效能低位宽CNN加速器,但很少有将CNN训练也纳入硬件加速器的研究,而这却是必要的,因为预训练的参数并不总是可获得的。

在这项工作中,香港科技大学电子与计算机工程系张薇副教授等首先实现了一个完全量化的CNN框架,该框架可以在有限的位宽下执行训练和推理。本文提到,即使使用8位动态定点数(DFP)数据格式,也可以保留CNN浮点数模型的高性能。文中进一步通过HLS实现了一个简单的FPGA原型。结果表明,该设计有助于显著减少硬件资源的使用。

可以预见,在不久的将来,深度学习技术将在许多方面改变我们的日常生活。为了促进其普及,将需要大量的嵌入式系统解决方案,因为它们具有高能效并且可以部署在边缘设备上。我们期望这项工作可以为在这种物联网设备中部署CNN奠定基础。

Towardshighperformancelowbitwidthtrainingfordeepneuralnetworks

ChunyouSu,ShengZhou,LiangFeng,WeiZhang

J.Semicond.2020,41(2):022404

doi:10.1088/1674-4926/41/2/022404

AroutingalgorithmforFPGAswithtime-multiplexedinterconnects

RuiqiLuo,XiaoleiChen,YajunHa

J.Semicond.2020,41(2):022405

doi:10.1088/1674-4926/41/2/022405

9.动态电压和频率标度CNN目标检测的能效优化

上海科技大学信息科学与技术学院哈亚军教授等优化了基于FPGA平台实现目标探测的能效。图片最上方是一台无人机,下方是一个自动驾驶场景。这两个应用场景都会用到目标探测技术,同时对计算平台的能效有较高要求。

一方面,在FPGA上加速卷积神经网络(CNN)要求在边缘计算场景中不断提高能效。另一方面,与其他常见的数字算法不同,CNN即使在有限的定时误差下也能保持其高鲁棒性。通过利用这一独特功能,我们提出使用动态电压和频率调整(DVFS)进一步优化CNN的能效。首先,我们在FPGA上开发了DVFS框架。其次,我们将DVFS应用于SkyNet,这是一个针对对象检测的先进神经网络。第三,我们从性能,功率,能效和准确性方面分析了DVFS对CNN的影响。与最新技术相比,实验结果表明,我们的能效提高了38%,而准确性没有任何损失。结果还表明,如果允许精度降低0.11%,我们的能效可提高47%。我们的工作将为近似计算和能源优化等方向提供思路。

OptimizingenergyefficiencyofCNN-basedobjectdetectionwithdynamicvoltageandfrequencyscaling

WeixiongJiang,HengYu,JialeZhang,JiaxuanWu,ShaoboLuo,YajunHa

J.Semicond.2020,41(2):022406

doi:10.1088/1674-4926/41/2/022406

北京市海淀区清华东路甲35号(林大北路中段)北京912信箱(100083)

THE END
1.深层神经网络与浅层神经网络的区别深层神经网络与浅层神经网络的区别 熟悉神经网络的可能知道,Hornik在1989年,就证明了一个定理: 只需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂的连续函数 那大家可能就会有疑问:既然一个隐层就够了,我们为什么还需要多层神经网络呢?https://blog.csdn.net/ybdesire/article/details/78837688
2.神经网络详解,正向传播和反向传播注意,在深层神经网络中,我们在中间层使用了 “ReLU”激活函数,而不是sigmoid函数了,只有在***的输出层才使用了sigmoid函数,这是因为 ReLU函数在求梯度的时候更快,还可以一定程度上防止梯度消失现象,因此在深层的网络中常常采用。关于激活函数的问题,可以参阅:【DL碎片3】神经网络中的激活函数及其对比 https://www.51cto.com/article/582406.html
3.汽车SoC功能安全最佳实践与挑战深层神经网络的安全性 随着计算机视觉中深度学习应用的最新突破,DNNs在从ADAS到自动驾驶的道路上越来越有吸引力。在探索和部署用于感知任务(如行人检测、车辆跟踪、路标分类和距离检测)的DNN方面,已经付出了巨大的研究和开发努力。一些人甚至尝试使用DNN进行端到端的自动驾驶。已经开发了专用加速器,以支持为实时应用部署https://www.dongchedi.com/article/7130817191016120865
4.壹沓AI观察:Google加入文档智能化战局,DocumentAI离企业还有在具有深层神经网络的AI领域,这些方法中的大多数都面临局限性: 高精度的模型往往依赖于大量人工标记的训练样本,而目前利用大规模的无标签样本训练后得到的预训练模型,在特定领域落地还需要较高水平的AI专家帮助进行场景数据的微调(Fine tuning),无论在数据收集、数据标注、还是模型训练的过程中还大量存在不确定性和不https://www.digitaling.com/articles/382277.html
5.热点文献带您关注电子皮肤的最新进展——图书馆前沿文献专题推荐服务(72本期我们为您选取了4篇文献介绍电子皮肤的最新发展前沿,包括利用纤维Bragg光栅和深层神经网络的大面积触觉敏感皮肤,可用于无线健康监测设备的基于表面声波传感器的无芯片无线电子皮肤,基于印刷突触晶体管的可感受“疼痛”的电子皮肤,一种由水凝胶和硅胶弹性体组成的具有触觉感应能力的仿生弹性机器人皮肤,推送给相关领域的https://lib.bupt.edu.cn/a/zuixingonggao/2022/1028/4284.html
6.深度神经网络优化策略之——残差学习深度学习普遍认为发端于2006年,根据Bengio的定义,深层网络由多层自适应非线性单元组成——即多层非线性模块的级联,所有层次上都包含可训练的参数,在工程实际操作中,深层神经网络通常是五层及以上,包含数百万个可学习的自由参数的庞然大物。理论上,网络模型无论深浅与否,都能通过函数逼近数据的内在关系和本质特征,但在解https://www.jianshu.com/p/c33acc52b4bc
7.夷所思的真相:人类大脑或是高度并行的计算系统,与人工神经网络最近在同行评议期刊《神经元》(Neuron)上发表的一篇论文挑战了对人类大脑的传统认知。这篇题为《直接适应自然: 生物和人工神经网络的进化》的论文指出了一个相反的观点,即人类大脑是一个强大的大数据处理器,它的参数与跟人的经验相匹配,而这种描述通常用于深层神经网络。 https://tech.sina.com.cn/csj/2020-06-25/doc-iirczymk8902736.shtml
8.深度学习全教程吴恩达3.第三周 浅层神经网络 3.1 神经网络概览 3.2 神经网络表示 3.3 计算神经网络的输出 3.4 多个例子中的向量化 3.5 向量化实现的解释 3.6 激活函数 3.7 为什么需要非线性激活函数? 3.8 激活函数的导数 3.9 神经网络的梯度下降法 3.11 随机初始化 4.第四周 深层神经网络 https://www.flyai.com/article/801
9.聊聊从脑神经到神经网络神经网络能解决非线性的复杂的模型问题深度学习之所以有这么大的性能提升,是因为它类似人脑一样的深层神经网络,它更好地模拟了人脑的工作。 卷积神经网络 卷积神经网络的发展主要是为了解决人类视觉问题,不过现在其它方向也都会使用。发展历程主要从Lenet5->Alexnet->VGG->GooLenet->ResNet等。 https://juejin.cn/post/6844903726835056647
10.深度卷积神经网络课件.ppt目录神经网络简要介绍冫经典深度神经网络模型·LeNetAlexNet·VGGNetNetworkinNetwork(MIN)GoogLeNet·ResNet深度学习框架及实例深度学习在计算机视觉中的应用目录1目录神经网络简要介绍产经典深度神经网络模型AlexNetVGGNetNetworkinNetwork(MINResNet深度学习框架简介在计算机视觉中的应用目录2神经网络简要介绍多层神经网路第一次https://www.renrendoc.com/paper/229713973.html
11.深度学习与神经网络有什么区别?深度学习通常采用深层的神经网络结构,如卷积神经网络、循环神经网络等,其中每一层都包含若干个神经元节点,并且每一层的输出作为下一层的输入,经过多层非线性变换后得到最终的输出结果。 而神经网络则可以是浅层或者深层的结构,其中每一层都包含若干个神经元节点,同样通过前向传播和反向传播算法实现模型的训练和优化。https://www.cda.cn/bigdata/201326.html
12.爆肝万字,终于搞定这篇?神经网络搭建全全全流程!学不会你来找深度学习是机器学习的一类算法,它应用各种结构的神经网络解决问题(深度学习中的『深度』指的是我们会通过深层次的神经网络构建强大的学习器),模仿人类获得某些类型知识的方式,与传统机器学习模型相比,神经网络有更灵活的结构设计,更强的学习能力,能支撑更大量级的数据学习,因此广泛引用于各种业务中。 https://cloud.tencent.com/developer/article/2069094