用于执行神经网络运算的方法和装置制造方法及图纸

技术编号:38511385 阅读:24 留言:0更新日期:2023-08-19 16:55
一种用于执行神经网络运算的方法包括接收深度神经网络(DNN)的权重值和偏差值。该DNN的单层的特征值阵列、偏差值和一组权重值耦接到神经网络引擎。在一个或多个乘法累加电路(MAC)处对该单层执行乘法累加运算以获得对应于该单层中的每个神经元的总和。对应于该单层中的每个神经元的层输出值耦接到该MAC的对应输入。重复耦接偏差值和一组权重值、执行乘法累加运算以及耦接层输出值以生成对应于每个输出层神经元的输出层总和,并且对每个输出层总和执行激活函数以生成DNN输出值。总和执行激活函数以生成DNN输出值。总和执行激活函数以生成DNN输出值。

【技术实现步骤摘要】
【国外来华专利技术】用于执行神经网络运算的方法和装置
[0001]相关申请的交叉引用
[0002]本申请要求2020年12月15日提交的美国临时专利申请序列号63/125,966和2021年6月14日提交的美国非临时专利申请序列号17/347,388的优先权,这些专利申请的内容以全文引用的方式并入本文。

技术介绍

[0003]深度神经网络(DNN)是具有多于一个隐藏层的神经网络。设计用于处理DNN的神经网络引擎包括多个并行乘法累加电路(MAC),其中DNN的每层有一个并行MAC。并行MAC是互连的,其中神经元构成每层,并且每个MAC包括针对DNN的隐藏层和输出层中每个神经元的乘法器和加法器。在MAC内并且在相邻隐藏层的MAC之间延伸的是包括多路复用器和对应互连件的扩展互连逻辑。处理DNN所需的晶体管和连接件的数目使得DNN处理不适用于需要单个集成电路器件在严格的功率、热和成本范围内执行特定的一组运算的应用。
[0004]单个集成电路器件在严格的功率、尺寸、热和成本范围内执行特定的一组运算的应用中的一个应用是闪存存储器的控制。更具体地,固态驱动器(SSD)包括连接到闪本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于执行神经网络运算的方法,所述方法包括:在集成电路处接收深度神经网络(DNN)的权重值和偏差值;将特征值阵列耦接到所述集成电路的神经网络引擎;将所述DNN的单层的偏差值和所述DNN的所述单层的一组权重值耦接到所述神经网络引擎;在一个或多个乘法累加电路(MAC)处对所述DNN的所述单层执行乘法累加运算,以获得对应于所述DNN的所述单层中的每个神经元的总和;将对应于所述DNN的所述单层中的每个神经元的层输出值耦接到所述一个或多个MAC的对应输入,每个层输出值包括所述单层中的所述总和中的一个总和或所述单层中的所述总和中的一个总和的函数;重复所述将所述DNN的所述单层的所述偏差值和所述一组权重值耦接到所述神经网络引擎、所述对所述DNN的所述单层执行乘法累加运算以及所述耦接所述层输出值,直到已经对所述DNN的所有层执行乘法累加运算以生成对应于每个输出层神经元的输出层总和;以及对每个输出层总和执行激活函数以生成表示所述DNN的输出层的一个或多个DNN输出值;将所述一个或多个DNN输出值耦接到所述集成电路的在所述神经网络引擎外部的函数电路,所述集成电路的所述函数电路被配置为使用所述一个或多个DNN输出值执行一个或多个函数。2.根据权利要求1所述的方法,所述方法还包括:对所述DNN的所述单层中的所述总和中的每个总和执行激活函数。3.根据权利要求1所述的方法,所述方法还包括:接收指示激活函数形状的文件;以及在所述神经网络引擎处接收指示所述激活函数形状的一部分的坐标,其中所述执行激活函数包括对特定层的所述总和中的每个总和执行对应于所接收的坐标的线性激活函数以生成表示所述相应输出层总和的非线性函数的对应层输出值。4.根据权利要求1所述的方法,所述方法还包括:接收指示激活函数形状的文件;以及在所述神经网络引擎处接收指示所述激活函数形状的一部分的坐标,其中所述对每个输出层总和执行激活函数还包括对每个输出层总和执行对应于所接收的坐标的线性内插运算以生成所述一个或多个DNN输出值。5.根据权利要求1所述的方法,其中所述神经网络引擎包括可编程逻辑电路,所述方法还包括:接收一个或多个配置文件,所述一个或多个配置文件指示输入神经元的数目、输出神经元的数目、隐藏神经元的层的数目、每层隐藏神经元中隐藏神经元的数目以及激活函数模块的类型;以及根据所述配置文件中指示的信息对所述神经网络引擎进行编程。6.根据权利要求5所述的方法,其中所述激活函数模块类型指示选自由以下项组成的组的类型:ReLU激活函数模块、泄漏ReLU激活函数模块、SatLin激活函数模块、对称SatLin
激活函数模块以及线性内插激活函数模块。7.根据权利要求6所述的方法,其中对所述神经网络引擎进行编程还包括将所述神经网络编程为包括所述一个或多个MAC并且编程为包括所指示的类型的一个或多个激活函数模块,所述一个或多个激活函数模块中的每个激活函数模块的输入耦接到所述一个或多个MAC中的一个MAC的对应输出。8.根据权利要求1所述的方法,其中所述DNN的所述单层包括第一隐藏层,所述偏差值包括第一偏差值,所述DNN的所述单层的所述一组权重值包括第一隐藏层权重值,所述对所述DNN的所述单层执行乘法累加运算还包括:在乘法器的第一输入处接收所述第一偏差值和所述特征值阵列中的所述特征值,并且在所述乘法器的第二输入处接收所述第一隐藏层权重值,所述乘法器具有耦接到加法器模块的输出;将所述第一偏差值和所述特征值中的每个特征值与所述第一隐藏层权重值中的对应一个第一隐藏层权重值相乘,并且在所述加法器模块处将所述相乘的结果相加在一起以在加法器模块的输出处获得第一隐藏层总和。9.根据权利要求1所述的方法,所述方法还包括:将对应于所述第一隐藏层中的每个神经元的第一隐藏层输出值耦接到所述一个或多个MAC的对应输入,其中所述重复所述将所述DNN的所述单层的所述偏差值和所述一组权重值耦接到所述神经网络引擎包括将第二偏差值耦接到所述神经网络引擎并且将第二隐藏层权重值耦接到所述神经网络引擎,其中所述对所述DNN的所述单层执行乘法累加运算还包括:在所述乘法器的所述第一输入处接收所述第二偏差值和所述第一隐藏层输出值,并且在所述乘法器的所述第二输入处接收所述第二隐藏层权重值中的一个或多个第二隐藏层权重值;将所述第一偏差值和所述第一隐藏层输出值中的每个第一隐藏层输出值与所述第二隐藏层权重值中的对应一个第二隐藏层权重值相乘,并且在所述加法器模块处将所述第一偏差值相乘的结果相加在一起以在所述加法器模块的输出处获得第二隐藏层总和。10.根据权利要求9所述的方法,其中所述在一个或多个MAC处对所述DNN的所述单层执行乘法累加运算以获得对应于所述DNN的所述单层中的每个神经元的所述总和还包括在单个MAC处对所述DNN的所述单层执行乘法累加运算以获得对应于所述DNN的所述单层中的每个神经元的总和,每个总和对应于存储在所述单个MAC的多个输出寄存器中的对应一个输出寄存器中的所述DNN的所述单层中的所述神经元。11.根据权利要求9所述的方法,其中所述DNN在单独层中的每个单独层中具有最多n个神经元,并且其中所述在一个或多个MAC处对所述DNN的所述单层执行乘法累加运算以获得对应于所述DNN的所述单层中的每个神经元的总和还包括在n个MAC中的每个MAC处对所述DNN的所述单层执行乘法累加运算,n个MAC中的每个MAC能够操作以生成对应于所述DNN的所述单层中的所述神经元中的一个神经元的总和。12.根据权利要求1所述的方法,所述方法还包括:其中将所述特征值阵列耦接到所述神经网络引擎还包括将所述特征值阵列存储在第
一高速缓存存储器中;其中将所述DNN的所述单层的所述偏差值和所述一组权重值耦接到所述神经网络引擎还包括将所述DNN的所述单层的所述偏差值和所述一组权重值存储在第二高速缓存存储器中;其中将所述层输出值耦接到所述一个或多个MAC的所述对应输入还包括将对应于所述DNN的隐藏层的层输出值存储在高速缓存存储器中并且将对应于所述隐藏层的所述层输出值移动到所述一个或多个MAC的所述对应输入,所述移动包括通过重写特征和偏差输入高速缓存中先前存储的值将对应于存储在神经输出高速缓存中的所述DNN的所述隐藏层的所述层输出值的副本存储到所述特征和偏差输入高速缓存中。13.一种集成电路,所述集成电路包括:输入,所述输入被配置为接收...

【专利技术属性】
技术研发人员:L
申请(专利权)人:微芯片技术股份有限公司
类型:发明
国别省市:

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

1