版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在广泛的领域中,机器学习的任务变得越来越广泛,在一个广泛的系统(从嵌入式系统到数据中心)。同时,一系列的机器学习算法(尤其是卷积和的深度神经网络,即,CNN和DNNs)被证明在许多应用中是最先进的。异构多核架构的进化方向组成的混合内核和加速器,机器学习的加速器可以实现效率的罕见的组合(由于目标算法的小数目),应用范围广。到现在为止,大多数机器学习加速器的设计都集中在有效地实现算法的计算部分。然而,最近的国家的最先进的神经网络和DNNs的特点是大尺寸。在这项研究中,我们设计了大型CNN和DNNs加速器,特别强调存储器对加速器设计的影响,性能和能量。我们表明它有可能具有高吞吐量加速器的设计,能够进
2、行452的GPO的(关键网络业务如突触权重乘法和神经元的输出增加)在一个小的3.02平方毫米的足迹和485毫瓦;相比128位2GHz的SIMD处理器,加速器117.87x更快,它可以通过21.08x减少总能量。布局在65nm后获得了加速器的特点。这样的高吞吐量,在一个小的足迹可以打开使用的国家的最先进的机器学习算法,在一组广泛的系统和广泛的应用。1. 随着体系结构的发展对异构多核组成的混合的核心和加速器,设计加速器,实现最佳的灵活性和效率之间的权衡,成为一个突出的问题。第一个问题是哪一类的应用程序的主要设计加速器?随着架构的趋势走向加速器,一秒的同时和显着的趋势,在高性能和嵌入式应用的发展:许
3、多新兴的高性能和嵌入式应用,从图像/视频/音频识别到自动翻译,业务分析,和所有形式的机器人依靠机器学习技术。这种趋势甚至开始渗透在我们的社区里,原来的一半左右的差距 2 基准部分介绍,突出新类型的应用程序的出现一套房,可以使用机器学习算法实现 4 。这种趋势在应用程序中的一个小数量的技术,基于神经网络(特别是卷积神经网络 16 和深神经网络),已经证明了在过去几年中已经证明了一个小数量的技术,在过去的几年中,在机器学习的国家,在广泛的应用 25 ,在机器学习,这是一个同样显着的趋势。因此,有一个独特的机会,设计加速器,可以实现最佳的两个世界:显着的应用范围在一起,高性能和效率,由于数量有限的目
4、标算法。目前,这些工作大多是基于SIMD 41 多核GPU执行, 5 , 3 或FPGA。然而,上述趋势已经被一些人提出了加速器的卷积神经网络和多层感知器 3 38 实施人员确定;加速器专注于其他领域,如图像处理,也提出了一些机器学习算法使用的原语的有效实现,如卷积 33 。其他人提出的ASIC实现的卷积神经网络 13 ,或其他自定义神经网络算法 21 。然而,所有这些作品都第一,成功有效地实施,重点计算原语,但他们要么自愿忽略存储器传送简单的 33,38 的缘故,或者他们直接把计算加速器内存通过或多或少的DMA 3,13,21 。而计算原语的有效实施是一个可喜的成果的重要的第一步,低效的存储
5、转移可能无效的吞吐量,加速器,即能量或成本优势,一个Amdahl定律的影响,因此,他们应该成为一阶的关注,就像在处理器,而不是一个元素的因素在第二步加速器设计。与处理器不同的是,一个可以在目标算法中的内存传输的特定性质的因素,就像它是做加速计算。这是特别重要的,在机器学习领域有一个明确的趋势,扩大规模的神经网络,以达到更好的精度和更多的功能 16,26 。在这项研究中,我们研究了加速器的设计,可容纳最受欢迎的国家的最先进的算法,即,卷积神经网络(CNN)和深层神经网络(DNNs)。我们专注于内存使用的加速器的设计,我们研究了加速器的架构和控制,以尽量减少内存传输,并尽可能有效地执行它们。我们目
6、前在65nm可以并行执行496个1.02ns,即16位定点运算的一个设计,452个共和党的,在3.02mm2,485mw足迹(不包括内存访问)。在最大的10层发现最近CNN和DNNs,这个加速器是117.87x更快、更节能的21.08x(包括内存访问)平均比128位SIMD核心主频为2GHz。总之,我们的主要贡献是以下:合成(布局布线)大型CNN和DNNs加速器的设计,先进的机器学习算法。该加速器在小面积,功率和能量占用方面达到很高的吞吐量。加速器的设计着重于存储器行为,并测量不受计算任务,这些因素在性能和能量存储传输的影响。论文组织如下。在2节中,我们首先提供了一个新的机器学习技术,主要介绍
7、底层组成CNN和DNNs。在3节中,我们分析和优化这些层的记忆行为,在准备的基线和加速器设计。在4节中,我们解释了为什么一个大型CNN或DNNs ASIC实现不能作为小网络简单的ASIC实现相同。我们在5节介绍我们的加速器设计。该方法是在第6节,实验结果在7节,相关的工作在8节。 神经网络的训练依靠反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,继续来一轮回退调整,直到
8、网络输出满意为止。寒武纪1号:DianNao陈天石等人提出的DianNao是寒武纪系列的第一个原型处理器结构13,包含一个处理器核,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算(如加法、乘法等),65nm工艺下功耗为0.485W,面积3.02mm2(如图3所示)。在若干代表性神经网络上的实验结果表明,DianNao的平均性能超过主流CPU核的100倍,面积和功耗仅为CPU核的1/301/5,效能提升达三个数量级;DianNao的平均性能与主流通用图形处理器(NVIDIA K20M)相当,但面积和功耗仅为后者的百分之一量级。DianNao要解决的核心问题是如何使有限的内存带宽
9、满足运算功能部件的需求,使运算和访存之间达到平衡,从而实现高效能比。其难点在于选取运算功能部件的数量、组织策略以及片上随机存储器(RAM)的结构参数。由于整个结构参数空间有上千万种选择,而模拟器运行速度不及真实芯片的十万分之一,我们不可能蛮力尝试各种可能的设计参数。为解决此问题,我们提出了一套基于机器学习的处理器性能建模方法,并基于该模型最终为DianNao选定了各项设计参数,在运算和访存间实现了平衡,显著提升了执行神经网络算法时的效能。即使数据已经从内存移到了片上,搬运的能耗依然非常高。英伟达公司首席科学家史蒂夫·凯科勒(SteveKeckler)曾经指出,在40nm工艺下,将64
10、位数据搬运20毫米的能耗是做64位浮点乘法的数倍。因此,要降低处理器功耗,仅仅降低运算功耗是不够的,必须对片上数据搬运进行优化。我们提出了对神经网络进行分块处理,将不同类型的数据块存放在不同的片上随机存储器中,并建立理论模型来刻画随机存储器与随机存储器、随机存储器与运算部件、随机存储器与内存之间的搬运次数,进而优化神经网络运算所需的数据搬运次数。相对于CPU/GPU上基于缓存层次的数据搬运,DianNao可将数据搬运次数减少至前者的1/301/10。5、大型神经网络加速器在这一节中,我们借鉴了3和4的分析,设计一个大规模的神经网络加速器。加速器的主要部件如下:输入神经元的输入缓冲区(nbin)
11、,输出神经元的输出缓冲器(nbout),和突触权重缓冲(SB),连接到一个计算块(执行突触和神经元计算)我们称之为神经功能单元(NFU),和控制逻辑(CP),见图11。我们首先描述的最下面,然后重点说明对于加速器的存储元件的基本原理。5.1计算:神经功能单元(NFU) NFU主要是反映一层Ti输入/输出神经元突触和TN计算块的分解。这相当于对两个分类层和卷积层进行i和n循环,见图5和图7,和对池化层进行i循环,见图8。算术运算符。每层类型的计算可以被分解为2个或3个阶段。对于分类器层:突触X输入的乘法,所有的乘法加法,sigmoid函数。对于卷积层,阶段是相同的,最后阶段的性质(sigmoid
12、函数或另一个非线性函数)可以改变。池化层,没有乘法(无突触),和合并操作可以平均或最大注意加法器有多个输入,他们实际上是在加法器树,见图11;第二阶段也包含汇集层器和最大的运营商。交错流水线。我们可以流水线所有2个或3个操作,但传输途径必须是交错的:第一或第2阶段(分别为池化层,分类层和卷积层)作为正常的管道阶段,但第三阶段是唯一的积极后,所有的增加已进行(分类和卷积层,对池化层在第三阶段没有操作)。从现在开始,我们把NFU传递的状态N记为nfu-n.nfu-3功能的实现。在文献 23,38 先前提出的,nfu-3中sigmoid函数(分类器和卷积层)可以用分段线性插值的有效实施((f (x)
13、 = ai * x + bi,x G xi; xi+1)可以忽略不计的精度损失(16段是足够的) 24 ,见图9。在计算条件,它对应于两16x1 16位多路复用器(段边界的选择,即,i.e., xi, xi+1),一个16位乘法器(16位输出)和一个16位的加法器进行插值。16节系数(AI,BI)被存储在一个小的RAM;这可以实现任何功能,不只是一个sigmoid函数(例如,双曲正切函数,线性函数,等等)仅仅通过改变内存段系数Ai,Bi;段边界(xi, xi+1)都是。16位定点运算算子。我们使用16位定点算术运算符,而不是字大小(例如,32位)浮点运算。虽然它可能似乎令人惊讶,有充分的证据表
14、明,在文献中,甚至更小的操作(例如,8位甚至更少)的神经网络的精度几乎没有影响 8,17,24 。说明和进一步证实的概念,我们的训练和测试,多层感知器从UC Irvine机器学习库的数据集,如图12所示,并对标准MNIST机器学习基准(手写数字) 27 ,见表1,采用16位定点和32位浮点运算;采用10折交叉验证测试。对于定点运算操作,我们使用6位整数部分,10位的小数部分(我们使用这个固定点的配置文件)。结果如图12所示,并确认了该折衷的非常小的准确度的影响。我们保守地使用16位固定的点,但我们将探索更小,或可变大小,在以后操作中。注意:算术运算符被截断,即,其输出是16位的;我们使用一个标
15、准的n位截断乘法器与修正常数 22 。如表2所示,其面积是6.10x更小,功率7.33x低于65nm的32位浮点乘法器,见6节的CAD工具的方法。5.2贮存:nbin,nbout,SB和nfu-2寄存器加速器的不同存储结构可以解释为修改存储器(scratchpads)缓冲区。当一个缓存是一个通用处理器出色的存储结构,它是一种次优的方式来开发利用由于访问缓存的开销(检查标签,关联性,线的大小,投机读,等)和高速缓存冲突 39 。有效的替代,用于暂存,VLIW处理器的但它是很难编译。然而,在一个专用的加速器存储实现两全其美:高效的存储,以及高效和易开采的地方因为只有一些算法需要手动调整。在这种情况
16、下,我们几乎可以直接把3节中引入的局部变换映射到缓冲区的映射命令中,主要是调节系数。代码映射的例子是5.3.2提供我们解释下面的存储部分的加速器是如何组织的,以及它克服的高速缓存架构的限制。5.2.1分缓冲区。正如前面所说,我们已经分开存储为三个结构:一个输入缓冲区,输出缓冲区(缓冲区nbout)和突触。带宽。分裂结构的第一个好处是定制的SRAM的读/写宽度合适。输入和输出缓冲区的带宽是Tn x 2 bytes, 而突触权值缓冲器的带宽是 Tri x Tri x 2 bytes. 一个单一的读操作的带宽大小,例如,与高速缓存行的大小,将是一个折中。 如果是调节突触,即,如果线径是TN x TN
17、 x 2,然后是阅读TN×2字节的总氮TN X X 2-wide数据银行一个重要的能源刑罚,参见图13说明SRAM的读能为65nm TSMC工艺功能的宽度。如果线的大小调整到神经元,即,如果线径是TN×2,有一个阅读TN X TN×2字节显著时间惩罚了。分存到专用的结构,可以实现最佳的时间和能量为每个读写请求。冲突。分裂存储结构的二次好处是避免冲突,因为在缓存中会发生冲突。这是特别重要的,因为我们要保持体积小的成本和能量(泄漏)原因的存储结构。另一种解决方案是使用一个高度关联的缓存。考虑因素:高速缓存线(或端口数)需要大量的(TN x TN x 2)为了在高率为突
18、触;既然我们想保持高速缓存大小,容忍这么长的高速缓存线的高相关性的唯一选择。然而,在一个多维缓存,快速阅读是阅读所有的方式/银行投机并行执行;作为一个结果,一个关联的缓存增加能源成本迅速。从一个8路联想32KB缓存成本3.15x比直接映射缓存,读取一个32字节的更多的能量在65nm甚至读64字节;测量使用计算机辅助技术插图构制; 40 。甚至有一个64字节的行,第一级32KB数据缓存的Core i7已经8路相联,所以我们需要一个更大的关联性的一个非常大的线(TN = 16,线的大小是512字节长)。换句话说,一个高度关联的高速缓存将是一个高能耗的方案,在我们的情况下。分割存储和精
19、确的局部行为的知识,可以完全消除数据冲突。5.2.2 运用输入和突触的位置DMA。空间位置的利用,我们用3个DMA,为每个缓冲区(两下载DMA,一个存储的DMA输出)。DMA请求是nbin在指令的形式,在5.3.2后来描述。这些请求缓存在每个独立的FIFO缓冲区相关,见图11,它们一旦DMA发送所有的记忆要求先前指令的下达。这些DMA请求FIFO使将发给所有缓冲区和从操作电流缓冲和NFU NFU的请求。作为一个结果,DMA请求可以预装提前忍受长时间的延迟,只要有足够的缓冲能力;这堆载预压和预取,尽管没有投机。由于对nbin的联合作用(与sb)作为存储器重用和预紧力的缓冲区,我们使用一个双端口S
20、RAM;图书馆的阅读率的TSMC 65nm的能源开销的双端口存储器为64项,24%。循环输入神经元的时间复用nbin缓冲。各层输入分割成适合在nbin块,并通过实施nbin为循环缓冲区的使用。在实践中,循环是自然实现了通过改变寄存器索引,就像一个软件实现,没有物理的(昂贵的)缓冲条目运动。局部转置在nbin汇集层。在(输入)神经元的数据结构组织中,卷积和池化层之间存在一种张力。如前所述,KX,ky通常很小(一般小于10),和Ni是一个幅度较大的顺序。所以存储器提取更有效(长STRIDE-1访问)与输入特征映射的三维数据结构里面的指数神经元。然而,这将因为一个输出层计算每个输入特征映射,即不方便
21、,只使用KX×KY数据(而在卷积层,所有KX X KY X NI数据需要计算一个输出数据)。作为一个结果,汇集层,逻辑数据结构组织有KX,KY内心的尺寸,需要计算一个输出所有输入连续存储在nbin缓冲。我们解决这个问题由大连理具有的效果局部换位循环KY引入一个映射函数,KX和回路使数据沿环i,但它是存储在大连理并送到NFU沿环KY,KX第一;这是由交错的数据在加载时大连理完成了,见图14。对于突触和突触权值缓冲器,正如在3节所述,有没有再利用(分类层,与私人的内核和池层的卷积层),或重用共享内核的卷积层。对于输出和nbout,我们需要重用的部分,即,见参考文献和图5 。此复用需要在下
22、一节中解释的其他硬件修改。5.2.3开发产出的地方。在分类器和卷积层,TN输出神经元的输出和一个块的输入神经元计算包含在nbin。然后,输入神经元用于另一块TN输出神经元,这样就产生了两个问题等。专用寄存器。首先,当输入神经元块从nbin加载和用于计算的部分,这会让部分和出口管道,然后加载到较高的管道中的每个条目nbin缓冲效率低下,由于数据传输功耗的 14 的主要来源。所以我们将在nfu-2专用寄存器,存储部分和。循环缓冲。其次,一个更为复杂的问题是做什么用的TN的部分和在nbin输入神经元重复使用一套新的TN输出神经元。而不是把这些TN部分和回记忆(后来重装时输入神经元一块装入nbin),
23、我们暂时转出来nbout。先验的,这是nbout这是一种矛盾的角色也用来存储最终的输出神经元被写回内存(写缓冲)。但在实践中,只要输入神经元没有被集成在部分款项,nbout空闲。所以我们可以使用它作为旋转TN部分临时存储缓冲器进行了nbout,见图11。自然的循环迭代,输出神经元必须平铺,没有更多的输出神经元计算部分和nbout同时比容量,但通过二级瓷砖类似图5和图7环”实施。作为一个结果,nbout连接的不仅是nfu-3记忆,也nfu-2:一项nbout可以装入专用寄存器nfu-2,这些寄存器可以存储在nbout5.3控制和代码5.3.1 CP。在这一节中,我们描述了加速器的控制。控制一个方法是将硬件的三个目标层。虽然这仍然是未来的一个选择,现在,我们已经决定要使用的控制指令,探索不同的实现层(例如,分配和调度),并提供机器学习的研究人员提供了灵活性,尝试不同的层的实现。一层执行被分解成一组指令。大体上,一条指令对应ii的循环,i,N分类器和卷
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计类毕业实习报告范文锦集六篇
- 下学期工作学习计划合集八篇
- DB12T 472-2012 贵金属与珠宝玉石饰品 标识
- 业务员工作心得体会
- 三国演义读书笔记及启发范文
- 个人篮球训练计划书(12篇)
- 课件高血压教学课件
- 探究实验设计之二氧化碳性质的探究
- 慢性持续期哮喘患者的治疗和管理
- 高等数学教程 试卷3-答案
- 《现代农业技术推广》课件-第七组 农民问题专题调研
- 第30课 家居收纳技巧 课件 2023-2024学年苏教版初中劳动技术七年级上册
- 2024中国一汽校园招聘1000+岗位高频考题难、易错点模拟试题(共500题)附带答案详解
- GB/T 19533-2024汽车用压缩天然气钢瓶定期检验与评定
- 妇产科护士晋升述职报告
- 骨髓腔内输液(IOI)技术
- 建筑幕墙工程(铝板、玻璃、石材)监理实施细则(全面版)
- 小学数学与思政融合课教学设计
- 江西省南昌市民德学校2023-2024学年八年级上学期期中数学试题
- 国际金融(英文版)智慧树知到期末考试答案2024年
- 2024年《药物临床试验质量管理规范》(GCP)网络培训题库
评论
0/150
提交评论