当前位置: 首页 > 专利查询>清华大学专利>正文

硬件神经网络转换方法、计算装置、软硬件协作系统制造方法及图纸

技术编号:15330592 阅读:116 留言:0更新日期:2017-05-16 14:01
将神经网络应用转换为满足硬件约束条件的硬件神经网络的硬件神经网络转换方法、计算装置、编译方法、神经网络软硬件协作系统,该方法包括:获得神经网络应用对应的神经网络连接图;将神经网络连接图拆分为神经网络基本单元;将每个神经网络基本单元转换为与之功能等效的由神经网络硬件的基本模块虚拟体连接成的网络;将得到的基本单元硬件网络按照拆分的顺序连接起来,生成硬件神经网络的参数文件。本发明专利技术提出了一种全新的神经网络和类脑计算的软硬件体系,在神经网络应用和神经网络芯片之间加上了一个中间编译层,解决了神经网络应用与神经网络应用芯片之间的适配问题,同时解耦合了应用和芯片的开发。

Hardware neural network conversion method, calculation device, compilation method and neural network hardware and software cooperation system

Convert the application of neural network neural network hardware into hardware neural network hardware meet the constraint method, calculation device, compilation method, neural network software and hardware collaborative system, the method comprises: a neural network neural network is applied to connect the corresponding map; neural network connection graph as the basic unit of the basic unit of neural network; each neural network with the function of equivalent conversion from the basic module of virtual body neural network hardware connected to the network; the basic unit of the network in accordance with the resolution of the hardware are sequentially connected, the parameter file to generate hardware neural network. The invention provides a software and hardware system of a new class of brain neural network and computing, between the application of neural network and neural network chip with a middle layer to solve the compiler, the application of neural network and the application of neural network chip adaptation problem, development and application of the chip and the coupling solution.

【技术实现步骤摘要】
硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统
本专利技术总体地涉及神经网络
,更具体地涉及由神经网络芯片来实现软件神经网络的技术。
技术介绍
最近几年,深度学习技术取得了突破性进展,在图像识别、语言识别、自然语言处理等诸多领域均取得了很高的准确率,但深度学习需要海量计算资源,传统的通用处理器已经很难满足深度学习的计算需求,将深度学习硬件化,为其设计专用芯片已经成为了一个重要的发展方向。与此同时,随着脑科学的发展,由于大脑相比传统的冯诺依曼计算机,具有超低功耗,高容错性等特点,且在处理非结构化信息和智能任务方面具有显著优势,借鉴大脑的计算模式构建新型的类脑计算系统和类脑计算芯片已经成为一个新兴的发展方向。无论是深度学习还是类脑计算,其底层的计算模型均是神经网络(NeuralNetwork,NN),主要区别在于,深度学习使用的主要是人工神经网络(ArtificialNeuralNetwork,ANN),而类脑计算主要使用的是脉冲神经网络(SpikingNeuralNetwork,SNN),两者基本组成单元均为神经元,由大量神经元相互连接成网络。神经元之间的连接可以看作带权重的有向边,神经元的输出会被神经元之间的连接所加权,然后传递给所连到的神经元,而每个神经元接收到的所有输入会被累加起来进行进一步处理,产生神经元的输出。ANN和SNN的主要区别在于,ANN的神经元输出的是数值,与边权相乘进行加权;而SNN的神经元输出的是一个个电脉冲信号,电脉冲信号经过加权成为不同强度的电流信号;ANN的神经元对于其他神经元的输入,会经过一个激活函数直接算出神经元的输出值;而SNN的神经元接收到其他神经元输入的电流信号,会根据其神经元模型更新其状态,当达到特定状态便会发放一个电脉冲,并重置状态。神经网络的建模通常以若干神经元为一层,层与层之间相互连接来构建,图10所示的是一种链状的神经网络,图中每一个圆表示一个神经元,每一个箭头表示神经元之间的连接,每个连接均有权重,实际神经网络的结构不限于链状的网络结构。神经网络的核心计算是矩阵向量乘操作,包含n个神经元的层Ln产生的输出可以用长度为n的向量Vn表示,与包含m个神经元的层Lm全相联,连接权重可以表示成矩阵Mn×m,矩阵大小为n行m列,每个矩阵元素表示一个连接的权重。则加权之后输入到Lm的向量为Mn×mVn,这样的矩阵向量乘法运算是神经网络最核心的计算。由于矩阵向量乘计算量非常大,在传统的通用处理器上进行大量的矩阵乘运算需要耗费大量的时间,因此神经网络加速芯片和类脑芯片也都是以加速矩阵乘法运算为主要的设计目标,在具体实现上,通常是用硬件实现一定规模的矩阵向量乘法模块(例如实现大小为256×256的矩阵与长度为256的向量相乘的基本模块),然后用片上网络(NetworkonChip,NoC)等技术将基本模块连接起来。通过将矩阵向量乘法硬件化,运算速度可以大大提高。然而硬件化也约束了其所能支持的神经网络应用的自由度,这也带来一个重要的问题:很难使用这样的芯片来运行实际的神经网络应用。虽然神经网络芯片可以高效地进行矩阵向量乘法运算,但神经网络应用与底层芯片之间仍然存在很大的不同,例如:(1)神经网络硬件的基本模块通常是固定规模的矩阵向量乘,而实际神经网络应用中矩阵运算的规模是任意的。(2)神经网络应用通常使用32位浮点数进行计算,而硬件有时会设计成较低的精度,甚至整数来进行计算以提高效率。(3)神经网络硬件的激活函数(对ANN而言)或神经元模型(对于SNN而言)通常是固定的,而神经网络应用的激活函数或神经元模型通常非常灵活,且不断会有新的激活函数和神经元模型被引入到神经网络应用中。下面概况一下现有技术的硬件芯片系列。1、现有技术之一:寒武纪芯片系列1(1)现有技术一的技术方案寒武纪芯片的计算核心通过高速的三级流水线实现了16×16规模的矩阵向量乘法运算和非线性激活函数,芯片上还配置了3块专用的存储模块,分别用于存放输入数据、输出数据和权重数据,通过控制器从片上存储模块中调取数据送入计算核心进行计算。对于更大规模的矩阵运算,例如32×32的矩阵,该技术方案会将其拆分成4个16×16的矩阵,通过控制器依次载入到计算核心中完成计算,最后再将计算结果累加合并起来。通过对计算核心的时分复用,完成对任意规模神经网络的支持。另一方面,在寒武纪芯片计算核心的第三级流水步中,提供了多种常见激活函数,以支持绝大多数神经网络应用。1(2)现有技术一的缺点寒武纪芯片的做法将神经网络的权重同计算核心分离开,通过软件来控制计算资源的时分复用和存储器的访问,由于该方法还是将计算和存储分离,本质上还是冯诺依曼架构下的一种定制方案,仍然需要在计算单元和存储单元之间来回传输权重数据,仍然会受制于冯诺依曼瓶颈。虽然寒武纪芯片在提高计算核心与存储单元之间的带宽上做了很大的努力,但随着神经网络应用规模的增加,权重数据的访问终将成为系统瓶颈。且由于计算逻辑和片上存储开销较大,芯片集成度无法做到很高,每块芯片上集成的计算核心数量非常有限。2、与本专利技术相关的现有技术二:TrueNorth芯片2(1)、现有技术二的技术方案TrueNorth是IBM公司的神经形态芯片,每块芯片上集成了4096个神经突触核,每个神经突触核可以处理256×256的神经突触计算(即矩阵向量乘法运算)。为了提高集成度,TrueNorth的神经突触核进行了极大的精简,采用了非常简单的LeakyIntegrateandFire(LIF)神经元模型(一种常用的SNN神经元模型),对权重也进行了极大的压缩,每个神经元至多只能拥有256个输入突触,且这256个输入突触的权重也只有3个可选的值。为了运用TrueNorth运行实际的神经网络,IBM设计了一套Corelet语言来对TrueNorth进行编程,将大的任务逐步分解成小的任务之间的连接,使得最小的任务刚好能在神经突触核上。Corelet将硬件的种种约束暴露给应用层,在设计神经网络的时候需要考虑TrueNorth硬件本身的约束。2(2)现有技术二的缺点在TrueNorth的芯片设计中,为了提高芯片的集成度,在有限的面积内放置更多的神经突触核,TrueNorth芯片的神经突触核对神经网络有很强的约束。因此很难将现有的神经网络应用放到TrueNorth芯片上运行,对于各种智能任务,需要重新设计、训练一个专门针对TrueNorth芯片的神经网络,且由于硬件对应用层约束,针对TrueNorth重新设计、训练的神经网络目前很难在图像识别等领域达到与目前最先进的神经网络相当的准确率。3、与本专利技术相关的现有技术三:新型器件——忆阻器3(1)、现有技术三的技术方案忆阻器是一种新型的半导体器件,其电阻阻值可以在特定的输入电流下改变。忆阻器的阻值可以用来存储数据,相比传统的DRAM(动态随机存储器)和SRAM(静态随机存储器)具有存储密度高的特点,且由于其数据是通过阻值来存储的,在失去供电的情况下也不会丢失数据。此外,忆阻器也可以进行计算,是一种计算与存储融合的理想器件。图11示出了基于忆阻器的交叉开关(Crossbar)结构的示意图。如图11所示,通过将线路排布成交叉开关(Crossbar本文档来自技高网...

【技术保护点】
一种将神经网络应用转换为满足硬件约束条件的硬件神经网络的硬件神经网络转换方法,包括:神经网络连接图获得步骤,获得神经网络应用对应的神经网络连接图,神经网络连接图是一个有向图,图中的每个节点表示一层神经元,每条边表示层间的连接关系;神经网络连接图拆分步骤,将神经网络连接图拆分为神经网络基本单元,每个神经网络基本单元中,只有入节点和出节点,不存在中间层节点,入节点和出节点之间全相联,,而且入节点中的神经元的所有出度在该基本单元内,出节点中的每个神经元的所有入度在该基本单元内;神经网络基本单元转换步骤,将每个神经网络基本单元转换为与之功能等效的由神经网络硬件的基本模块虚拟体连接成的网络,称之为基本单元硬件网络,一个神经网络基本单元对应于一个或多个神经网络硬件的基本模块虚拟体,每个神经网络硬件的基本模块虚拟体均满足神经网络硬件的基本模块的连接度约束条件,且能够直接映射到神经网络硬件的基本模块;基本单元硬件网络连接步骤,将得到的基本单元硬件网络按照拆分的顺序连接起来,生成硬件神经网络的参数文件。

【技术特征摘要】
1.一种将神经网络应用转换为满足硬件约束条件的硬件神经网络的硬件神经网络转换方法,包括:神经网络连接图获得步骤,获得神经网络应用对应的神经网络连接图,神经网络连接图是一个有向图,图中的每个节点表示一层神经元,每条边表示层间的连接关系;神经网络连接图拆分步骤,将神经网络连接图拆分为神经网络基本单元,每个神经网络基本单元中,只有入节点和出节点,不存在中间层节点,入节点和出节点之间全相联,,而且入节点中的神经元的所有出度在该基本单元内,出节点中的每个神经元的所有入度在该基本单元内;神经网络基本单元转换步骤,将每个神经网络基本单元转换为与之功能等效的由神经网络硬件的基本模块虚拟体连接成的网络,称之为基本单元硬件网络,一个神经网络基本单元对应于一个或多个神经网络硬件的基本模块虚拟体,每个神经网络硬件的基本模块虚拟体均满足神经网络硬件的基本模块的连接度约束条件,且能够直接映射到神经网络硬件的基本模块;基本单元硬件网络连接步骤,将得到的基本单元硬件网络按照拆分的顺序连接起来,生成硬件神经网络的参数文件。2.根据权利要求1的硬件神经网络转换方法,还包括,在神经网络应用具有卷积层的情况下,在神经网络连接图拆分步骤之前,对于神经网络应用的卷积层进行网络压缩,包括:获得每一卷积层的多个特征图;利用DPP提取多样性子集的方法,将这些特征图在所有样本上产生的输出之间的相似性作为%11算法相关联的矩阵元,利用DPP得到多样性最高的子集,保留该子集,丢弃掉其他特征图节点,将丢弃的特征图所对应的向量投影到保留的特征图所张成的线性空间中,用丢弃的特征图的投影长度与其原向量长度的比值作为加权系数,将丢弃的特征图与下一层神经元的连接权重加权累加到保留的特征图与下一层神经元的连接权重上。3.根据权利要求1的硬件神经网络转换方法,所述神经网络基本单元转换步骤包括:对每个神经网络基本单元重建网络拓扑;以及针对重建的网络拓扑,进行权重参数确定。4.根据权利要求3的硬件神经网络转换方法,重建网络拓扑包括完全展开操作,经过完全展开,神经网络基本单元被分解为了基本模块虚拟体之间的相互连接,所述完全展开操作包括:在神经网络基本单元相关联的第一规模的矩阵乘法和/或卷积的大矩阵操作超过了神经网络硬件的基本模块支持的第二规模的小矩阵操作的情况下,执行下述操作:将第一规模的大矩阵操作拆分为第三数目个第二规模的小矩阵操作,每个小矩阵操作由一个基本模块虚拟体完成;将针对第一规模的大矩阵操作的输入数据分解为第三数目份,并传送给该第三数目个第二规模的小矩阵操作,此为多播操作;将来自第三数目个第二规模的小矩阵操作的运算结果汇总为等价于第一规模的大矩阵操作的运算结果,此为归约操作,在神经网络硬件芯片具有支持多播操作的第一额外模块的情况下,将多播操作分配为由所述第一额外模块虚拟体来执行,否则由多播操作由第一组基本模块虚拟体来完成;在神经网络硬件芯片具有支持归约操作的第二额外模块的情况下,将归约操作分配为由所述第二额外模块虚拟体来执行,否则由多播操作由第二组基本模块虚拟体来完成。5.根据权利要求4的硬件神经网络转换方法,在...

【专利技术属性】
技术研发人员:张悠慧季宇
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1