神经网络计算系统和方法技术方案

技术编号:18733042 阅读:28 留言:0更新日期:2018-08-22 03:15
一种神经网络计算系统,包括I/O接口,用于I/O数据;内存,用于暂存多层人工神经网络模型和神经元数据;人工神经网络芯片,用于执行多层人工神经网络运算及其反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算及其反向传播训练算法;中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。以及一种应用上述系统进行人工神经网络压缩编码方法。本披露不仅能有效减小人工神经网络的模型大小,提高人工神经网络的数据处理速度,而且能有效降低功耗,提高资源利用率。

Neural network computing system and method

A neural network computing system consisting of I/O interfaces for I/O data, memory for temporary storage of multi-layer artificial neural network models and neuron data, and artificial neural network chips for performing multi-layer artificial neural network operations and their back-propagation training algorithms, receiving data and programs from the CPU of the central processing unit. The CPU is used to carry out data transfer and start-stop control of ANN chip, as the interface between ANN chip and external control, and receives the results of ANN chip execution. And an artificial neural network compression coding method using the above system. This disclosure can not only effectively reduce the model size of artificial neural network, improve the speed of data processing, but also effectively reduce power consumption and improve resource utilization.

【技术实现步骤摘要】
神经网络计算系统和方法
本披露涉及人工神经网络处理
,更具体地涉及一种神经网络计算系统和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域。特别是近年来由于反向传播训练算法,以及预训练算法的研究不断深入,多层人工神经网络由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。随着人工神经网络计算量和访存量的急剧增大,现有技术中通常采用通用处理器来对多层人工神经网络运算、训练算法及其压缩编码进行处理,通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。采用通用处理器的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通讯又成为了性能瓶颈;此外,通用处理器需要把多层人工神经网络运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种支持多层人工神经网络运算、训练算法及其压缩编码的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
技术实现思路
针对上述现有技术的不足,本披露的目的在于提供一种神经网络计算系统和方法。根据本披露的一方面,提供一种神经网络计算系统,包括I/O接口、内存、人工神经网络芯片和中央处理器CPU:I/O接口,用于I/O数据;内存,用于暂存多层人工神经网络模型和神经元数据;人工神经网络芯片,用于执行多层人工神经网络运算及其反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算及其反向传播训练算法;中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。在进一步的方案中,所述人工神经网络芯片包括:控制器单元,用于读取指令,并将其译码成运算单元的指令;以及运算单元,用于根据所述控制器单元的指令对数据执行相应的运算。在进一步的方案中,所述人工神经网络芯片还包括:内存接口单元,用于输入所述数据和指令;以及指令缓存,用于对指令进行缓存。在进一步的方案中,所述运算单元用于执行以下至少一种运算:将输入的神经元和权值数据相乘;执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;执行激活函数运算,得到最终输出神经元。在进一步的方案中,所述运算单元中对于输入的权值数据表示如下:若是正向运算过程,则所述权值数据W1由k比特数据表示,其中包括1比特符号位、m比特控制位以及n比特数据位,即k=1+m+n;其中k、m、n均为自然数;若是反向运算过程,则所述权值数据W2使用浮点数表示。在进一步的方案中,所述W1是从W2转换而来,其中反向运算过程的权值数据W2具有len位有效数字,正向运算过程的权值数据W1中的n表示W1中的有效数字位数,n≤len;控制位m用于指定W1的有效数字在原权值数据中的起始位置。在进一步的方案中,所述人工神经网络芯片还包括DMA,用于在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。在进一步的方案中,所述人工神经网络芯片还包括:输入神经元缓存,用于缓存输入到所述运算单元的输入神经元数据;权值缓存,用于缓存权值数据;以及所述输入神经元缓存和权值缓存均通过所述DMA输入。在进一步的方案中,所述用于压缩编码的人工神经网络芯片还包括:输出神经元缓存,用于缓存所述运算单元输出的输出神经元。在进一步的方案中,所述运算单元在第三步执行的激活函数为sigmoid函数、tanh函数、relu函数或softmax函数。在进一步的方案中,所述人工神经网络芯片为多个,多个人工神经网络芯片通过PCIE总线互联,以支持更大规模的多层人工神经网络运算。在进一步的方案中,所述中央处理器CPU为一个,作为多个人工神经网络芯片的同一个宿主,或者所述中央处理器CPU的数量与所述人工神经网络芯片数量相同,使每一个人工神经网络芯片分别有自己的宿主;或者中央处理器数量为多个,与所述多个人工神经网络芯片形成互联拓扑连接。在进一步的方案中,所述内存为一个,作为所述多个人工神经网络芯片的共享内存;或者所述内存数量与所述人工神经网络芯片数量相同,使每个人工神经网络芯片有各自的内存;或者内存为多个,与所述多个人工神经网络芯片形成互联拓扑连接。根据本披露的另一方面,提供一种应用以上任一所述神经网络计算系统进行运算的方法,包括:使用I/O接口输入/输出数据;使用内存暂存多层人工神经网络模型和神经元数据;使用人工神经网络芯片执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算和/或反向传播训练算法;使用中央处理器CPU进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。在进一步的方案中,还包括:使用控制器单元读取指令,并将其译码成运算单元的指令;以及使用运算单元根据所述控制器单元的指令对数据执行相应的运算。在进一步的方案中,还包括:使用内存接口单元输入所述数据和指令;以及使用指令缓存对指令进行缓存。在进一步的方案中,还包括使用DMA在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。在进一步的方案中,还包括:使用输入神经元缓存缓存输入到所述运算单元的输入神经元数据;使用权值缓存缓存权值数据;以及输入神经元缓存和权值缓存均通过所述DMA输入。在进一步的方案中,还包括:使用输出神经元缓存来缓存所述运算单元输出的输出神经元。根据本披露的再一方面,提供一种应用神经网络加速器进行人工神经网络计算的方法,人工神经网络芯片包括控制器单元,用于读取指令,并将其译码成运算单元的指令;以及运算单元,用于根据所述控制器单元的指令对数据执行相应的运算包括以下步骤:步骤1:使用将存储的浮点权值W1转换成位数较少的表示权值W2;步骤2:使用权值W2进行正向运算;步骤3:根据正向运算得到的误差结果进行反向运算更新浮点权值W1;迭代执行上述三个步骤,直到得到所需要的模型。在进一步的方案中,所述人工神经网络芯片还包括指令缓存、输入神经元缓存、权值缓存以及输出神经元缓存,指令缓存用于对指令进行缓存,输入神经元缓存用于缓存输入到所述运算单元的输入神经元数据,权值缓存用于缓存权值数据,输出神经元缓存用于缓存所述运算单元输出的输出神经元;步骤2包括以下子步骤;步骤21:控制器单元从指令缓存中读取一条多层人工神经网络运算SIMD指令;步骤22:所述控制器单元将所述指令译码成各个功能部件的微指令,包括输入神经元缓存是否读写以及读写次数、输出神经元缓存是否读写以及读写次数、权值神经元缓存本文档来自技高网...

【技术保护点】
1.一种神经网络计算系统,其特征在于包括I/O接口、内存、人工神经网络芯片和中央处理器CPU,其中:I/O接口,用于I/O数据;内存,用于暂存多层人工神经网络模型和神经元数据;人工神经网络芯片,用于执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算和/或反向传播训练算法;中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。

【技术特征摘要】
1.一种神经网络计算系统,其特征在于包括I/O接口、内存、人工神经网络芯片和中央处理器CPU,其中:I/O接口,用于I/O数据;内存,用于暂存多层人工神经网络模型和神经元数据;人工神经网络芯片,用于执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神经网络运算和/或反向传播训练算法;中央处理器CPU,用于进行数据搬运以及人工神经网络芯片启动停止控制,作为人工神经网络芯片与外部控制的接口,并接收人工神经网络芯片执行后的结果。2.根据权利要求1所述的系统,其特征在于,所述人工神经网络芯片包括:控制器单元,用于读取指令,并将其译码成运算单元的指令;以及运算单元,用于根据所述控制器单元的指令对数据执行相应的运算。3.根据权利要求2所述的系统,其特征在于,所述人工神经网络芯片还包括:内存接口单元,用于输入所述数据和指令;以及指令缓存,用于对指令进行缓存。4.根据权利要求2所述的系统,其特征在于,所述运算单元用于执行以下至少一种运算:将输入的神经元和权值数据相乘;执行加法树运算,用于将第一步处理后的加权输出神经元通过加法树逐级相加,或者将输出神经元通过和偏置相加得到加偏置输出神经元;执行激活函数运算,得到最终输出神经元。5.根据权利要求2所述的系统,其特征在于,所述运算单元中对于输入的权值数据表示如下:若是正向运算过程,则所述权值数据W1由k比特数据表示,其中包括1比特符号位、m比特控制位以及n比特数据位,即k=1+m+n;其中k、m、n均为自然数;若是反向运算过程,则所述权值数据W2使用浮点数表示。6.根据权利要求5所述的系统,其特征在于,所述W1是从W2转换而来,其中反向运算过程的权值数据W2具有len位有效数字,正向运算过程的权值数据W1中的n表示W1中的有效数字位数,n≤len;控制位m用于指定W1的有效数字在原权值数据中的起始位置。7.根据权利要求2所述的系统,其特征在于,所述人工神经网络压缩编码装置还包括DMA,用于在所述内存接口单元与所述指令缓存和/或所述运算单元之间进行数据或者指令读写。8.根据权利要求5所述的系统,其特征在于,所述人工神经网络压缩编码装置还包括:输入神经元缓存,用于缓存输入到所述运算单元的输入神经元数据;权值缓存,用于缓存权值数据;以及所述输入神经元缓存和权值缓存均通过所述DMA输入。9.根据权利要求5所述的系统,其特征在于,所述用于压缩编码的人工神经网络压缩编码装置还包括:输出神经元缓存,用于缓存所述运算单元输出的输出神经元。10.根据权利要求2所述的系统,其特征在于,所述运算单元在第三步执行的激活函数为sigmoid函数、tanh函数、relu函数或softmax函数。11.根据权利要求1所述的系统,其特征在于,所述人工神经网络芯片为多个,多个人工神经网络芯片通过PCIE总线互联,以支持更大规模的多层人工神经网络运算。12.根据权利要求1所述的系统,其特征在于,所述中央处理器CPU为一个,作为多个人工神经网络芯片的同一个宿主,或者所述中央处理器CPU的数量与所述人工神经网络芯片数量相同,使每一个人工神经网络芯片分别有自己的宿主;或者中央处理器数量为多个,与所述多个人工神经网络芯片形成互联拓扑连接。13.如权利要求1所述的系统,其特征在于,所述内存为一个,作为所述多个人工神经网络芯片的共享内存;或者所述内存数量与所述人工神经网络芯片数量相同,使每个人工神经网络芯片有各自的内存;或者内存为多个,与所述多个人工神经网络芯片形成互联拓扑连接。14.一种应用权利要求1-13任一所述神经网络计算系统进行运算的方法,其特征在于包括:使用I/O接口输入/输出数据;使用内存暂存多层人工神经网络模型和神经元数据;使用人工神经网络芯片执行多层人工神经网络运算和/或反向传播训练算法,接受来自中央处理器CPU的数据和程序,执行上述多层人工神...

【专利技术属性】
技术研发人员:陈天石刘少礼郭崎陈云霁
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1