人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计_第1页
人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计_第2页
人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计_第3页
人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计_第4页
人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章:人工智能与深度学习人工智能芯片设计ArtificialIntelligenceChipDesign2人工智能2ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning人工智能人工智能(ArtificialIntelligence,简称AI)是一门研究如何使机器能够模拟和扩展人类思维方式与智能行为的科学。涵盖了机器学习、深度学习、知识表示与推理、自然语言处理、计算机视觉、专家系统等众多领域的研究。33ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning发展历程44ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning到了20世纪90年代,研究者提出了一系列机器学习算法。21世纪初,GeoffreyHinto等人正式提出了深度学习这一概念。55ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning人工智能演化的其他方向强化学习联邦学习可解释人工智能多模态人工智能可持续和伦理人工智能6深度学习6ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning深度学习深度学习是机器学习中的一个重要分支。深度学习主要使用神经网络解决问题,由于其表现相比于传统算法有很大的提升,深度学习逐渐成为主流。77ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning深度学习的发展历程深度学习起源于1943年。在1949年,赫布在他的论文中提出了赫布学习规则。1958年,在前面的算法基础之上,美国一名科学家提出了感知器学习。20世界90年代,其发展进入了瓶颈期。2006年,Hinton提出了解决方案。2012年,在AlexNet使用ReLU作为激活函数,解决了神经网络训练过程中梯度消失的问题。8卷积神经网络8ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning

MP神经元结构模型 99ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning算法特征局部特征连接相比于全连接网络,局部连接网络权重数量和计算量也获得了成倍的降低全连接局部连接1010ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning二维图像中的卷积神经网络局部连接1111ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning权值共享下图为3×3的卷积核在5×5的输入特征图上滑动进行卷积运算。当卷积核滑动到输入特征图的其他位置时,连接权重保持不变,这种特性被称为权值共享。二维卷积运算过程1212ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning降采样(池化)降采样(池化)极大值池化(Maxpooling)平均值池化(Averagepooling)等等1313ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning降采样(池化)图中池化窗尺寸为2×2,步长为2,通过池化操作,将左图转化为右图表示。极大值池化(Maxpooling)过程1414ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络的层级结构卷积层激活函数层池化层dropout层分类器1515ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络的层级结构1616ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络的加速运算卷积神经网络的加速算法(1)网络稀疏化网络稀疏化处理可以显著降低参数规模,下图为一种典型的深度压缩方法。1717ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning1818ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning

1919ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning

2020ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning

2121ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning(3)轻量级神经网络模型典型代表:MobileNet,ShuffleNet,ShuffleNetV2等2222ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络硬件加速器Google公司针对神经网络设计的高性能加速运算处理器TPU的体系结构如图所示:TPU体系结构2323ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络硬件加速器TPU的运算核心是矩阵乘法单元。控制线路部分…………++++结束数据部分和矩阵乘法单元工作原理2424ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning卷积神经网络硬件加速器核心问题是如何匹配计算吞吐量和FPGA平台提供的内存带宽。加速器主要包括处理单元(Processingelement,PE)、片上缓存、片外存储以及片上/片外交互单元组成。计算资源……处理单元处理单元-1处理单元处理单元-2处理单元处理单元-n互联片上缓存缓冲区1缓冲区2片外存储片上/片外交互单元2525ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning运算引擎卷积神经网络硬件加速器基于数据间的关系可以确定出PE与缓存区的组织关系,如图所示:2626ArtificialIntelligenceChipDesign,

Lecture

04:ArtificialIntelligenceAndDeepLearning提升卷积神经网络加速器的灵活性,通过提出三种指令(Ins):加载(LOAD)、存储(SAVE)和计算(CALC)来指导加速器工作。加速器的系统架构如图所示:控制器片上输入缓存片上输出缓存处理单元

0处理单元1……加载计算存储片外存储片外存储指令Angel-Eye加速器系统架构27谢谢第五章:人工智能芯片简介人工智能芯片设计ArtificialIntelligenceChipDesign29引言29ArtificialIntelligenceChipDesign,

Lecture

05:

IntroductionOfArtificialIntelligenceChips人工智能芯片的定义通常意义上的人工智能芯片指的是针对人工智能算法做了特殊加速设计的芯片。人工智能芯片的发展历史3030ArtificialIntelligenceChipDesign,

Lecture

05:

IntroductionOfArtificialIntelligenceChips基于应用领域的分类语音识别图像识别自然语言处理推荐系统智能驾驶医疗健康。人工智能芯片的分类3131ArtificialIntelligenceChipDesign,

Lecture

05:

IntroductionOfArtificialIntelligenceChips基于计算架构的分类AI芯片CPUGPUFPGAASIC芯片类型3232ArtificialIntelligenceChipDesign,

Lecture

05:

IntroductionOfArtificialIntelligenceChips计算机视觉方面的应用人脸识别,图像分类,视频监控,智能驾驶等。自然语言处理方面的应用自然语言理解,自然语言生成,情感分析等。语音识别方面的应用嵌入式系统方面的应用医疗健康方面的应用人工智能芯片的应用3333ArtificialIntelligenceChipDesign,

Lecture

05:

IntroductionOfArtificialIntelligenceChips人工智能芯片的发展和应用前景发展人工智能芯片的挑战与机遇总结34谢谢第六章:人工智能芯片的数据流设计人工智能芯片设计ArtificialIntelligenceChipDesign6.1卷积神经网络模型分析36ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis近十余年间,卷积神经网络飞速发展,尤其是在计算机视觉领域,涌现出了一大批性能卓越的网络模型,如AlexNet、VGGNet、GoogLeNet、ResNet等。在图像分类识别这一基本任务中取得了远超传统算法的准确率。从表中可以看出,卷积神经网络的主要发展趋势是深度上的增加,随着网络层数的增加,模型提取特征的能力增强,最终表现为分类准确率的大幅提升。6.1卷积神经网络模型分析37AlexNet是首次在大规模图像数据集上进行训练和测试的卷积神经网络,于2012年ImageNet大赛上获得了图像分类项目的冠军,其结构如图6-1所示。与LeNet非常相似,但网络更深,有5个卷积层和3个全连接层,有11×11、5×5、3×3三种尺寸的卷积核在每个卷积层和全连接层后都使用ReLU

函数进行激活处理训练过程中引入dropout来缓解过拟合,采取数据扩充、SGD等方法提高学习的有效性图6-1AlexNet模型结构示意图

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.1卷积神经网络模型分析38VGGNet由牛津大学的VisualGeometryGroup于2014年提出,为适应不同场景,VGGNet包含6个不同的网络,深度从11到19不等,其中最常用的VGGNet-16,结构如图6-2所示。图6-2VGGNet-16网络结构小尺寸的卷积核是VGGNet的一个重要特征,VGGNet没有采用AlexNet中的大尺寸卷积核,如7×7、5×5的卷积核,而是通过采取小尺寸的卷积核、堆叠卷积子层来提升特征提取能力。卷积神经网络各层的时间复杂度(Time),即模型运算次数可用式(6-1)表示:ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.1卷积神经网络模型分析39

(6-1)ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.1卷积神经网络模型分析40

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis问题总结部署卷积神经网络的瓶颈主要由两方面:庞大的参数规模需要大量的存储空间,在运算过程中需要将参数搬运到处理器片上缓存,这对硬件平台的传输带宽要求极大;浮点运算的复杂度要远高于定点运算,反映在实际应用中就是浮点运算任务在处理器上运行时的能量消耗和资源占用量要远超定点运算。例如,通过实验发现,在FPGA中,1个16位的4阶浮点乘法器要消耗2个DSP(数字信号处理器)、51个LUT(查找表)和95个FF(触发器),最大工作频率约为219MHz;而一个16位的定点乘法器仅需要1个DSP,且可以轻松达到300MHz的工作频率。解决办法使用基于块浮点数的数据量化算法在基于块浮点数的卷积神经网络中,复杂的浮点乘加运算可用定点数运算代替6.1卷积神经网络模型分析41ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.2块浮点数设计42

图6-3单精度浮点数结构Exponent全零Exponent全1Mantissa全零0无穷大的数据Mantissa非零(NAN)ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

6.2块浮点数设计43ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

446.2块浮点数设计图6-4半精度浮点数结构ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.2块浮点数设计456.2.2块浮点数结构设计基于块浮点数(Block-Floating-Point,BFP)的卷积神经网络部署方案中,块浮点数可看作是一种特殊的浮点数表示形式,基本结构如图6-5所示:块浮点数让一批数据共享同一个指数块浮点数内部保留有指数部分,所以拥有较高的数据表示动态范围,两个BFP数据块的计算复杂度降低到了定点数程度图6-5块浮点数结构ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.2块浮点数设计46

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.2块浮点数设计47

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.2.3无偏差溢出数据处理块浮点算法中的精度损失主要来自于浮点数与块浮点数间的转换,在尾数部分的移位操作过程中,即式(6-7),不可避免的会有一部分比特位无法完整保留下来,这部分比特数据称为溢出数据。处理溢出数据的两种常用方法:截断操作,直接舍弃掉溢出数据,但会引入较大的向下偏差且会在卷积层间累积,最终产生明显偏差舍入操作,只会引入高斯白噪声,不存在明显的偏差由于尾数位宽有限,所以浮点数能精确表达的数值也有限,在两个相邻的浮点数之间,一定有无数个不能用浮点数精确表达的实数,IEEE754标准中,对于这些不能被精确表达的数字,用最接近它们取值的浮点数近似表示,即舍入。6.2块浮点数设计48ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis一共有以下四种常见的舍入模式:表6-3以实例的形式展示了四种舍入方式的计算规则(仅保留整数部分),可以发现后三种模式都保持有向上或向下的偏差,容易在卷积神经网络中逐层累积,造成层间累积误差,而RN模式则不会,是一种无偏差的舍入模式。在RN模式下,会根据需要保留的最后一位的奇偶情况决定是进位或是舍弃,以保证舍入后的数据为偶数。从统计意义上考虑,须保留的最后一位为奇数或偶数的概率相当,向下和向上的偏差相互抵消。6.2块浮点数设计49RN:舍入到最近的可表示的值,当有两个最接近的可表示的值时首选偶数值RZ:向零的方向舍入RU:向正无穷大方向舍入RD:向负无穷大方向舍入ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis50ArtificialIntelligenceChipDesign,

Lecture

01:

Introduction6.3卷积神经网络数据量化算法6.3.1轻量级块划分模式块浮点通过共享块指数和压缩尾数位宽量化浮点数,以降低卷积神经网络的参数规模和计算复杂度。尾数向右移位导致部分数据丢失,尤其对绝对值较小的数据,这被称为BFP量化误差。量化误差取决于数据块大小、块内数据分布和尾数位宽。较小数据块、均匀分布和更大尾数位宽能减少误差,但会增加参数规模和计算复杂度,需平衡权衡。卷积矩阵化运算

51ArtificialIntelligenceChipDesign,

Lecture

01:

Introduction表6-4显示,等式(6-10)和(6-12)的BFP块划分方案涉及超过50176次块格式化,且块指数的存储成本是等式(6-9)和(6-11)方案的数百倍。这种高成本在卷积神经网络的各隐藏层中普遍存在,因此代价过高,不符合减少参数规模和计算复杂度的目标。为了评估这两种块格式化方案的精确度,基于ImageNet图像分类数据集在VGGNet-16上进行了测试。实验结果显示,等式(6-11)的块格式化方案相比等式(6-9),Top-1和Top-5准确率分别高出1.59%和0.68%,因此最终选择等式(6-11)方案。

6.3.2低比特块浮点数设计文献表明,定点运算相比浮点运算在能量和资源占用上更少,尤其是加操作,且降低数据位宽可减少硬件资源消耗。分析表明,5-bit的块指数位宽与半精度浮点数一致,足够满足卷积网络需求,而尾数位宽对参数规模、计算复杂度和表示精度影响更大。为选择最短尾数位宽的块浮点格式,基于Caffe平台进行了一系列实验,测试VGGNet-16、GoogLeNet和ResNet-50三种经典网络,使用ImageNet数据集对9组不同尾数位宽组合进行评估。实验将输入特征图和权值进行块格式化,进行矩阵乘法后输出特征图再转化为浮点数。结果表明,当尾数位宽为8时,分类准确率下降不超过0.12%,模型精度几乎无损,特别是GoogLeNet在未重新训练下损失最小。6.3.3面向硬件加速器的块浮点数据流结构基于FPGA的加速器设计考虑并行计算,提出了简化计算、节省片上存储和带宽的块浮点数据流结构。卷积运算数据包括输入特征图、权重和偏置项。权重可提前转化为块浮点格式存储,减少计算和存储需求。偏置项根据输入特征图动态转化。6.3.4四阶误差分析模型第一阶段

第二阶段

第三阶段

第四阶段

6.4卷积神经网络稀疏化算法58卷积神经网络的计算量和参数量主要来自卷积层和全连接层。鉴于卷积层和全连接层在结构上区别,导致卷积层和全连接层的稀疏化工作上存在较大区别。因此,本节将对卷积神经网络的卷积层和全连接层分别进行分析,并设计相应的稀疏化方案,最终综合卷积层和全连接层的稀疏化方案,实现对卷积神经网络的整体的参数压缩和计算量削减工作。6.4.1卷积层稀疏化算法引入的掩码层(MarkLayer):掩码层其结构如图6-7所示,掩码层在网络结构中首先是通过层参数大小起到筛选卷积层的卷积核的作用,在掩码层完成筛选卷积核之后,卷积层就产生了稀疏化的效果。图6-7掩码层在卷积神经网络中作用ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

6.4卷积神经网络稀疏化算法59ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法60

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

6.4卷积神经网络稀疏化算法61ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法62

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法63

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法64

图6-8掩码层参数筛选卷积核示意图ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis3.参数微调在完成整个网络卷积层的卷积核筛选之后,掩码层的参数分布如图6-9所示。由于掩码层的参数只是接近于0,这些卷积核的被剔除之后依然会对网络的预测精度产生一定的影响。在大多数情况下,一般会在完成卷积核的稀疏化之后对网络进行甚于参数进行微调。注:在大多数情况下,一般会在完成卷积核的稀疏化之后对网络进行参数微调。由于在稀疏化工作中使用稀疏化正则项进行约束,使得参数产生约束效果,但参数微调的过程中,不需要剩余卷积核参数产生稀疏化效果。因此,在此处本章遵循原始网络训练效果,使用原始网络训练的正则化约束项。6.4卷积神经网络稀疏化算法65图6-9掩码层参数分布情况ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法66

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法67然而,一般情况下在卷积层提取的高层此特征图像的数量较多和图像尺寸较大,因此这样导致最终的全连接层的参数比较多。全连接层部分参数占整体参数量的85%以上对于全连接层,其参数庞大的主要来源就是卷积层输入输出完全互连的情况下,参数就会出现较多参数量。但是对于所有的每一个输出神经元,不是每一个输入高层的特征存在较多信息。降低全连接层之间的互连数量就成为降低全连接层参数量的一种重要的方法。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法68

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法69计算相关系数过程中,采用的50000个样本作为样本数据。采样后计算的全连接层的相关系数分布在-1和1之间,其中-1表示负相关,1表示。相关,0表示不相关。图6-10表示全连接层fc7的相关系数分布情况。图6-10全连接层fc7的相关系数分布图从图中可以明显发现,全连接层的输入输出之间的相关系数大多集中的0附近,这就表明全连接层之间的输入输出数据大多数是一种弱相关的关系。本章将对于全连接层中的fc6和fc7进行稀疏化操作注:最后一层fc8由于直接输出分类结果,如果对其进行稀疏化工作的话,将会严重影响最终的识别准确率。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法70对于稀疏化后全连接层,其结构由原来的输入输出全部连接变成选择性连接,结构如图6-11所示。图6-11全连接层稀疏化前后网络结构ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法716.4.3卷积神经网络整体稀疏化算法在前两个小节中,已经针对卷积神经网络的卷积层和全连接层分别进行了稀疏化算法的研究及其单独的性能分析。大多数网络的稀疏化工作则是对整个卷积神经网络模型而言的,因此本章需要将上述两种方法同时应用在卷积神经网络模型上,并且测试其效果,本章选取VGGNet16-D作为测试网络。图6-12网络整体稀疏化后的网络参数微调的损失和识别准确率实验方案:在卷积层,本章设置了2组实验用于验证的卷积层的算法的有效性,采用80%计算量削减的FLOPs组配置。此外,本节将稀疏化卷积层和稀疏化的全连接层进行了融合,得到新的稀疏化网络模型。同时对参数进行了微调,其微调过程中的损失和识别准确率如图6-12所示。实验结果:在稀疏化网络模型识别精度基本不变的情况下,实现整个网络参数削减达到18.39%和计算量削减到不足原始网络的20%。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法72

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.4卷积神经网络稀疏化算法73算法总结表6-9是本章算法、DeepCompression方法和Sensitivity-Oriented方法在VGGNet16-D上的参数压缩率和计算加速比实验结果。在整体网络参数方面,本节实现的算法达到18%的参数压缩率在网络的计算加速方面,本节将计算量单独分析,在全连接层实施了基于数据训练的掩码层进行卷积层稀疏化,最终实现整体网络5.02倍理论计算加速效果,相比于参数压缩率较高的Sensitivity-Oriented方法,本节的计算加速效果是其1.98倍。在算法效率方面,本章采取直接参数训练方式对卷积层进行稀疏化,这种方式首先特点是根据数据集动态调整用于评价卷积核的掩码层参数,在稀疏化正则项和稀疏化网络损失的共同约束下,实现最小的网络损失得到需要稀疏化比例的网络模型。同时在全连接层中,本章采取基于数据分析的相关系数方法,充分考虑到了数据在网络模型适应性问题。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速74从前述分析可以看出,具有高准确率的卷积神经网络的参数规模一般很大(百兆级别)、涉及的计算量通常也是在GFLOP的数量级上。这种巨大的存储和计算量需求非常不利于移动嵌入式设备的部署。但是网络参数存在很大的冗余性,通过合理的网络结构转换和参数表示,原始网络参数的10%就能完成同样的分类任务。本节从另外一个角度提出了基于网络Low-Rank特性的加速方案6.5.1卷积神经网络的Low-Rank特性卷积神经网络中卷积层的卷积核在网络设计时希望不同卷积核能提取到图像的不同特征,但实验表明,各卷积层部分卷积核提取的图像特征相似,即存在相关性。如图6-13所示(输入图像在第一层卷积层提取的特征图)图6-13卷积层输出特征图之间相关性ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速75

图6-14输出特征图相关性定量衡量ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速76

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速77例如:对一个有个通道的的输入特征图,对应的卷积核通道数也是个,卷积核大小是,这里处于简单考虑,设定输出卷积核的为个,卷积计算的示意图如图6-15所示。图6-15卷积计算示意图

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

6.5基于Low-Rank的算法加速78图6-16全连接计算示意图ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速79

conv1_2的卷积核重要性分布(b)fc6的卷积核重要性分布图6-17VGGNet-16卷积层的卷积核和全连接层的神经元的重要性分布ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速80

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速81

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速82

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速83

图6-18(a)卷积层结构分解ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速84

图6-18(b)卷积层结构分解ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速85

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速86基于Low-Rank的卷积加速在有效压缩参数、降低计算量的过程中,又保留了卷积操作的高度并行性。同时变换后的网络结构很好解决了Low-Rank分解后网络无法微调的问题,如果对原始网络进行微调,由于网络结构不具有Low-Rank特性,因此在微调的过程中,SVD分解后的参数可能会朝着原始参数集的方向进行更新,使网络参数丧失Low-Rank特性,如图6-19所示。图6-19(a)表示VGGNet-16中FC6层基于分解之后的网络进行微调后,权值矩阵的特征值分布,图6-19(b)表示利用原始的网络结构对权值矩阵进行微调后的奇异值分布。可以看到在原始网络上微调,经过SVD分解后去除的奇异值有恢复到原始值的倾向。图6-19微调奇异值分布ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速87

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速88

图6-20全连接层结构分解ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速89

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速90由此可以看出,基于SVD分解相比其他方法的优点:参数压缩比等效于计算加速比。这在基于剪枝的算法中是无法达到的。剪枝算法可以实现更大的压缩比,但是剪枝算法无法在参数压缩后维持网络并行计算的特性,只是起到参数压缩的作用,而在基于SVD分解的算法中,网络的并行计算适应性并没有改变,不必像剪枝算法中设计专有的稀疏计算方法就能取得加速效果。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速91

固定其他层不变,更改当前层基的数量统计top-1分类准确率随的变化曲线,得到不同层中基的数量对top-1分类准确率的影响程度。如图6-21所示,表示的是VGGNet-16中conv2_2和conv4_1卷积层的误差随基卷积核数量变化曲线,可以看出每层的分类准确率曲线有很大差别。图6-21VGGNet-16conv2_2和conv4_1误差随基卷积核的数量变化曲线ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis

6.5基于Low-Rank的算法加速92ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速93

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速94

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速956.5.5实验结果与分析本实验中,选择VGGNet-16和VGGNet-19作为目标网络对加速算法进行验证。实验采用的软件平台是Caffe和Torch深度学习工具包,硬件平台采用8核i7-3770KCPU,NVIDIAGTX1080GPU,另外还使用到CUDA8.0通用并行计算平台,cuDNN5深度学习加速工具包。网络训练和验证数据集均采用ImageNet比赛官方数据集。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速96

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速97如图6-22表示的是VGGNet-16和VGGNet-19卷积神经网络各层在理想加速比分别为2,3,4的情况下,微调前后的最终分类准确率变化。图6-22VGGNet-16和VGGNet-19各层微调前后准确率变化(线条:Loss;条形图:Top5准确率;AF:微调前;BF:微调后)

ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速98

图6-23VGGNet-16各层理想的和实际加速比对比ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速99全连接层:对于基于SVD分解的全连接层参数压缩,一方面要尽可能压缩参数,另一方面,全连接层参数的压缩也要适应于前面卷积层的加速,即在尽可能加速卷积计算的同时,为了保证网络的分类准确率,应尽可能多保留全连接层的参数。在本节,首先会验证每层全连接层保留的神经元个数对最终分类准确率的影响,依此来衡量每层全连接层的冗余度,然后根据最终压缩和分类准确率的要求对全连接层进行必要的压缩。关于全局优化和局部优化的比较,从直观上来说,全局优化在参数更新的过程中,考虑到当前层和其他网络层的协调作用,所以优化最终寻找的最优解比局部优化更好。本节从定量的角度比较了全局优化相对于局部优化的优势。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速100图6-24是VGGNet-16FC6层在全局微调和局部微调前后的权值分布变化图。图6-24(a)是权值分布图,图6-24(b)是全局和局部的权值分布和原始权值分布的差值。其中红色代表是全局微调后的权值分布和原始的差,蓝色代表的是局部微调。可以看出,全局微调相比于该层原始的权值变化更小。在做网络的裁剪的时候,假定原始的权值是网络的最优解,所以离最优解越近,说明网络参数分布越健康。因此从这可以看出,全局微调可以使网络更靠近于最优解。因此在后续的网络压缩的过程中,都会采用全局优化的方式对网络进行微调。图6-24VGGNet-16FC6层全局微调和局部微调权值的比较ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速101整体网络本节分别在VGGNet-16和VGGNet-19下做整体网络加速算法验证和分析。首先计算出每层卷积层的敏感度ς

,如图6-25所示;VGGNet-16VGGNet-19图6-25VGGNet-16和VGGNet-19卷积层敏感度计算结果ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速102然后计算得出VGGNet-16和VGGNet-19每层卷积网络在特定的加速比的要求下应该保留的基卷积核的个数,这个设定理想加速比η

分别为2,2.5和3,通过式(6-58),得出VGGNet-16和VGGNet-19在η

为2,2.5和3的情况下,每层应保留的卷积核个数如表6-10和表6-11所示。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速103首先,本文对比基于敏感度的基卷积核数量的选择方案和直接的、不考虑各层之间差异的粗选方案,在其他微调参数和微调顺序都相同的情况下,对比结果如图6-26所示,可以观察到,不管是VGGNet-16还是VGGNet-19,基于敏感度的基数量选择方案对验证数据集的分类准确率优于粗选方案。图6-26VGGNet-16网络压缩以及优化结果(实线:粗选;虚线:基于敏感度选择)ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis6.5基于Low-Rank的算法加速104 还可以看到,网络在参数压缩3倍、加速3倍的情况下,网络的分类性能还是能保持在和原始网络差不多的水平。由于是采用了卷积核数量计算方法和全局微调策略,使得网络在第2、3、4层卷积层微调的时候基本没有性能损失。这里由于全连接层冗余性很大,对于FC6和FC7每层只是保留256个输出神经元就已经能足够保持网络的分类性能,同时又大大压缩了网络的权值参数。ArtificialIntelligenceChipDesign,

Lecture

06:

Convolutionalneuralnetworkmodelanalysis谢谢第七章:人工智能芯片架构设计人工智能芯片设计ArtificialIntelligenceChipDesign7.1卷积神经网络加速器整体设计107ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign内容介绍

本章中的卷积神经网络硬件加速器针对卷积神经网络的应用——推理过程进行硬件加速实现,对于给定的输入图像信息,加速器利用已训练好的网络模型对其进行处理。即本章的硬件加速器仅涉及卷积神经网络的前向传播过程,而不包含反向传播过程。鉴于VGGNet系列网络模型在实际工程中应用较为广泛,且本身结构统一具有代表性,本章主要针对VGGNet设计硬件加速架构。7.1.1加速器设计分析108ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign为什么需要硬件加速器?

卷积神经网络(CNN)是计算密集型模型,需要高效的计算支持。传统CPU和GPU在能耗和并行计算能力上存在局限。硬件加速器通过优化存储管理和运算单元,实现超高效能和计算速度。CPU与GPU在CNN计算上的局限性CPU适用于串行任务处理,不足以支撑大规模并行卷积计算。GPU虽然并行度高,但功耗大,不适合移动设备等低功耗环境。7.1.1加速器设计分析109ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

为何选择FPGA?FPGA具有高能量效率和可重配置的优点。适合于能耗敏感和成本控制严格的应用场景。灵活性高,适合快速开发和市场适应。FPGA部署CNN的挑战复杂的浮点运算需求。高数据传输量对带宽的挑战。7.1.1加速器设计分析110ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积神经网络加速器的设计优化并行计算:提升输入通道间、输出通道间和像素间的并行度。数据交互:设计高效的存储管理单元,减少数据读写次数,提高数据利用效率。运算与存储协同:优化数据传输与计算的协同效率,减少等待时间。7.1.1加速器设计分析111ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

使用Roofline模型分析性能Roofline模型建立了系统性能与片外存储流量以及硬件平台所能提供的带宽和计算峰值间的联系,如图7-1所示。图7-1Roofline模型通过提高数据利用率和优化计算与传输比率能够显著提升系统吞吐量。7.1.1加速器设计分析112ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

VGGNet16-D网络模型介绍

由多个卷积层和宽卷积层组成,优于特征提取。应用于图像识别和其他视觉任务。层名特征图尺寸卷积核尺寸输入通道输出通道稀疏化比例参数量Conv1_1224336411728Conv1_2224364647.694905Conv2_11123641284.3516974Conv2_211231281285.2627612Conv33568004Conv3_25632562567.1484933Conv3_35632562566.2595319Conv4_12832565124.35273051Conv4_22835125126.25388242Conv4_32835125125.26456363Conv5_11435125122.38989901Conv5_21435125122.171095804Conv5_31435125122.44967671Fc6--2508840968.3312241300Fc7--409640964.543605500Fc8--4096100014096000表7-1VGGNet16-D稀疏化后各层特征参数表7.1.1加速器设计分析113ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

存储挑战分析与策略

存储挑战:Conv1_2层:数据量最大的卷积层,大多数硬件平台无法满足其高存储需求。优化策略:图7-2表示输出特征图上一点像素的计算,计算数据仅与周围像素点数据相关,因此可将特征图划分为独立的图像块,每块包括边缘像素,减少对周围数据的依赖。实际应用:所有特征图划分为统一尺寸的像素块,适应不同卷积层的特征图尺寸。减少了复杂的控制过程,满足大多数硬件设备的处理能力。图7-2卷积窗在特征图上卷积7.1.1加速器设计分析114ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

计算流水线设计优化计算流程的挑战:卷积层与全连接层不能并行计算,需顺序执行;复杂的依赖关系增加了计算逻辑时间,影响整体效率。流水线的优势:流水线可以提升卷积和全连接计算单元的效率;同时处理相关计算任务,减少空闲时间。图7-3系统级流水示意图

如图7-3为本文设计的两级计算流水结构。这种方式下,首先有利于提高卷积的计算单元和全连接的计算单元的计算效率;并且在卷积运算进行计算时,全连接的计算单元也在进行相关的计算任务。7.1.2加速器系统架构115ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

加速器系统架构如图7-4所示,图中红色线条代表控制信号通路,黑色线条代表数据信号通路,整个系统从功能上主要分为系统控制、卷积和全连接计算、和存储管理三大模块。图7-4加速器系统架构7.1.2加速器系统架构116ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

计算模块

卷积引擎(CE):处理卷积层,包含多个并行的处理单元阵列(PEA)。

全连接引擎(FCE):处理全连接层,配置一个PEA。

存储管理模块

PCIe接口:连接计算机主机与加速器,负责数据交互。直接与PCIe交互的是片外存储DDR。

片上缓存单元:暂存所需特征图和权值数据。包括输入缓存(CIB)、输出缓存(COB)、权值

缓存和全连接缓存(FCB)。

系统控制模块

CNN控制器:调度计算单元和存储管理单元工作;控制系统流水和并行处理的时序。7.1.3硬件架构运行机理117ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

系统初始化与数据传输

主机端以Batch方式向FPGA传输图像和VGGNet-16权值。图像和权值数据存储在DDR3中。

计算控制启动加速器启动后,CNN控制单元接管操作。数据交互单元(DEU)从DDR3载入输入图像和参数到内存阵列MMA。

卷积计算过程卷积计算引擎(CE)启动,处理输入数据。输出数据存储在MMA,进行ReLU操作后写回DDR3。118ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

流水线操作与全连接计算

卷积结果形成读取-卷积-写出的流水线操作。

全连接计算完全在片上RAM进行,减少数据交互。

四级流水线结构

整体结构包括读取数据、卷积计算、写出数据和

全连接计算的四级流水。

广义流水架构提高时序协调性和计算效率。

图7-5顶层流水线示意图7.1.3硬件架构运行机理7.2

加速器系统控制策略119ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign7.2.1基于循环分块的卷积运算策略120ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign卷积层占据了整个卷积神经网络99%以上的计算量,因此针对卷积层运算的系统控制设计是CNN加速器设计的重点内容,本章针对卷积层提出一种基于循环分块的并行和流水运行策略,其伪代码如算法7-1所示。

循环分块机制由于FPGA片上存储限制,特征图被分割为多个小区域(tiles)。Tiles基于VGGNet特征图尺寸设计,以实现高效的并行处理。

并行与流水线操作使用双端口RAM设计的输入缓存单元(CIB)。并行处理64个PEA进行卷积运算,提高数据预读取效率。7.2.1基于循环分块的卷积运算策略121ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign输入与输出特征图优先模式

输出特征图优先模式:多个输入特征图并行处理,以快速生成输出特征图。输入特征图优先模式:优化带宽需求,减少数据读取次数,提高计算效率。

优化结果与成本

输入特征图优先模式在带宽和功耗上表现优异。需要更多片上缓存资源来存储中间计算结果图7-6输入、输出特征图优先卷积计算7.2.2存算并行与流水控制122ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign并行计算概述卷积神经网络中的三种并行运算方式:输出通道间并行、输入通道间并行和卷积核内部并行。并行计算挑战:FPGA的带宽和存储器空间限制是实现并行计算的主要障碍;高效的硬件加速器设计需要平衡带宽和计算并行度。优化策略:

数据预读取:通过预读取数据到片上缓存,减少运行时的带宽需求。

数据重复利用:有效管理数据流,减少对外部存储的频繁访问。7.2.2存算并行与流水控制123ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign并行计算实现与流水线控制实现的并行计算卷积核内部并行:在处理元素阵列(PEA)内部实现,加速单个特征图的处理。输入通道间并行:多个输入通道的数据同时处理,提高整体计算效率。流水线操作主要流程:数据读取、卷积运算、写出输出特征图。存算并行控制:优化数据流,实现数据预读取与卷积运算的并行执行。图7-7卷积层存算并行与流水控制7.2.2存算并行与流水控制124ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign全连接层流水结构三级流水结构:读取数据、计算、写出数据。构造卷积-全连接四级流水结构:读取数据、卷积运算、写出数据、全连接运算。

流水线效率优化时序协调:优化各模块的工作协同,减少处理延迟。效率提升:通过精确控制数据流向和处理时间,提高整体系统性能图7-8

卷积-全连接流水结构7.3卷积层加速器设计125ArtificialIntelligenceChipDesign,

Lecture

07:Artificiali

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论