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只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
技术实现思路
针对上述现有技术的不足,本披露的目的在于提供一种神经网络计算系统和方法。根据本 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。