一种基于二值化神经网络的阵列计算加速器架构制造技术

技术编号:32127391 阅读:15 留言:0更新日期:2022-01-29 19:19
本发明专利技术属于集成电路技术与神经网络技术领域,具体涉及一种基于二值化神经网络的阵列计算加速器架构。本发明专利技术通过在计算核心内的处理单元采用二选一选择器代替多位乘法器,以加速二值化神经网络FC层计算,大幅减小了芯片存储与计算的面积、运算的延迟与功耗;同时内部集成了可配置神经网络功能模块,极大程度上满足了当前多种神经网络算法模型的计算需求,增强了加速器的通用性。强了加速器的通用性。强了加速器的通用性。

【技术实现步骤摘要】
一种基于二值化神经网络的阵列计算加速器架构


[0001]本专利技术属于集成电路技术与神经网络
,具体涉及一种基于二值化神经网络的阵列计算加速器架构。

技术介绍

[0002]随着集成电路设计方案的优化与集成电路工艺水平的不断提升,当代处理器与存储器的性能得到了质的飞跃,但如今计算机的性能提升却遇到了瓶颈。作为计算机的经典结构,冯
·
诺伊曼架构限制了处理器与存储器的数据交互能力,这一瓶颈显著地体现在了神经网络模型计算上。神经网络模型具有参数量大、乘加操作多等特点,进行神经网络模型计算时,频繁地从存储器中调取参数到处理器中进行计算无疑是增大了计算机的功耗开销。
[0003]作为目前主流的神经网络推理与训练的平台,CPU(Central Processing Unit,中央处理器)与GPU(Graphic Processing Unit,图形处理器)的迅猛发展推动了神经网络算法研究。其中,GPU内部集成了大量并行ALU(Arithmetic Logic Unit,算术逻辑单元)以满足算力需求,但其计算功耗过高一直是其难以解决的问题,这一由架构所带来的瓶颈也成为了人工智能向移动端方向发展的挑战与阻碍。因此,部分研究人员把注意力集中在设计定制化神经网络专用加速芯片上。2016年,Google(谷歌)公司为优化自己的机器学习框架,推出了一款针对神经网络计算的ASIC(Application Specific Integrated Circuit,专用集成电路)芯片,即第一代的TPU(Tensor Processing Unit,张量处理器)。第一代TPU仅支持深度学习的推理,其计算核心采用了脉动阵列架构,这种架构通过将计算模块阵列排布,使其具有重复利用输入数据、具有高并行度的流水线与简单、规律的结构与数据流等优势,实现了核心的大吞吐量。相较于当时的CPU与GPU,这种架构将计算速度提高了约15至30倍,能效比提高了约30至80倍。
[0004]此外,研究人员也开始从神经网络算法入手,选择轻量化神经网络模型以减小硬件开销。例如,现已有将神经网络二值化(即将输入图像或权重参数转化为0或1)的同时实现了高准确率识别的案例,且近年来对以生物神经元为理论基础的SNN(Spiking Neural Network,脉冲神经网络)的研究引起了广泛关注,这些理论发展都为设计高性能专用神经网络加速器奠定了基础。

技术实现思路

[0005]为了解决现有技术问题,本专利技术提供了一种基于二值化神经网络的阵列计算加速器架构,以克服当前神经网络模型计算功耗高、速度慢、可重构性低等问题。
[0006]为实现上述目的,本专利技术的技术方案为:
[0007]一种基于二值化神经网络的阵列计算加速器架构,用于对两个矩阵进行运算,其中一个矩阵为0

1矩阵;其特征在于,包括矩阵运算控制模块、第一发送模块、第二发送模块、选择

累加阵列计算模块、第一接收模块、第二接收模块和神经网络功能模块;
[0008]所述矩阵运算控制模块用于接收外部输入的被计算矩阵的规模,并根据矩阵分块算法记录当前阵列计算的矩阵块的地址,将矩阵规模和当前计算矩阵块地址发送到第一发送模块和第二发送模块和神经网络功能模块并同时发送使能信号到第一发送模块、第二发送模块和神经网络功能模块;矩阵运算控制模块还接收外部输入的神经网络配置信息,并将其发送到神经网络功能模块;
[0009]所述第一发送模块接收并存储外部输入的0

1矩阵的全部元素,相对应的,第一发送模块接收矩阵运算控制模块发送的被运算矩阵中0

1矩阵的规模和矩阵块地址,在使能信号的控制下向选择

累加阵列计算模块发送相应地址的矩阵块的元素,完成一个矩阵块运算后向选择

累加阵列计算模块发送标识符,使其输出计算结果;
[0010]所述第二发送模块接收外部输入实数矩阵,相对应的,第二发送模块接收矩阵运算控制模块发送的被运算矩阵中实数矩阵的规模和矩阵块地址,并存储对应地址中矩阵块内的元素,在使能信号控制下,向选择

累加阵列计算模块发送相应地址的矩阵块元素,完成一个矩阵块运算后向选择

累加阵列计算模块发送0,使选择

累加阵列计算模块中对应的寄存器初始化为0;
[0011]所述选择

累加阵列计算模块采用n行
×
n列个处理单元阵列化排布,每一行和每一列的处理单元依次首尾相连;所述处理单元具有行列两个输入端口和行列两个输出端口,将行输入端口定义为第一输入端口,行输出端口定义为第一输出端口,列输入端口定义为第二输入端口,列输出端端口定义为第二输出端口,处理单元包括第一二选一选择器、第二二选一选择器、加法器器和寄存器,第一二选一选择器首先对第一输入端口的数据进行判断,若数据为标识符,则将寄存器内的累加和从第二输出端口进行输出,并将第二输入端口收到的数据存储至寄存器内,同时第一输出端口输出标识符;若不为标识符,则由第二二选一选择器来判断这个来自0

1矩阵的单比特数据,若为1,则将来自实数矩阵的多比特数据送到加法器,加法器将送来的数据与寄存器内的数据进行加法操作,并将结果重新返回给寄存器,寄存器负责存储累加的部分和,若为0,则跳过计算;
[0012]所述第一接收模块用于接收由阵列计算模块第一输出端口输出的数据,其内部由n个寄存器组成,其中第i个寄存器与阵列中第n列第i行处理单元的第一输出端口相连接。相对应的,每个寄存器在矩阵计算的过程中,负责在一个时钟周期内读取一个由处理单元第一输入、输出端口传递的0

1矩阵的元素;完成一个矩阵块运算后,负责在一个时钟周期内读取一个由处理单元第一输入、输出端口传递的标识符。
[0013]所述第二接收模块用于接收由阵列计算模块第二输出端口输出的数据,其内部由n个寄存器组成,其中第i个寄存器与阵列中第n行第i列处理单元的第二输出端口相连接。相对应的,每个寄存器在矩阵计算的过程中,负责在一个时钟周期内读取一个由处理单元第二输入、输出端口传递的实数矩阵的元素;完成一个矩阵块运算后,负责在一个时钟周期内读取一个由处理单元第二输入、输出端口传递的计算结果,并将结果数据发送至神经网络功能模块进行缓存。
[0014]所述神经网络功能模块根据接收到的矩阵规模和当前计算矩阵块地址,将通过第二接收模块获得的对应计算结果进行存储,待完成所有矩阵块计算后,根据接收到的矩阵运算控制模块发送的配置信息,调用内部的子神经网络模块对计算结果进行数据处理并输出,所述子神经网络模块至少包括批量归一化模块、池化模块、ReLU模块。
[0015]本专利技术的有益效果为:本专利技术通过在计算核心内的处理单元采用二选一选择器代替多位乘法器,以加速二值化神经网络FC层计算,大幅减小了芯片存储与计算的面积、运算的延迟与功耗;同时内部集成了可配置神经网络功能模块本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于二值化神经网络的阵列计算加速器架构,用于对两个矩阵进行运算,其中一个矩阵为0

1矩阵;其特征在于,包括矩阵运算控制模块、第一发送模块、第二发送模块、选择

累加阵列计算模块、第一接收模块、第二接收模块和神经网络功能模块;所述矩阵运算控制模块用于接收外部输入的被计算矩阵的规模,并根据矩阵分块算法记录当前阵列计算的矩阵块的地址,将矩阵规模和当前计算矩阵块地址发送到第一发送模块和第二发送模块和神经网络功能模块并同时发送使能信号到第一发送模块、第二发送模块和神经网络功能模块;矩阵运算控制模块还接收外部输入的神经网络配置信息,并将其发送到神经网络功能模块;所述第一发送模块接收并存储外部输入的0

1矩阵的全部元素,相对应的,第一发送模块接收矩阵运算控制模块发送的被运算矩阵中0

1矩阵的规模和矩阵块地址,在使能信号的控制下向选择

累加阵列计算模块发送相应地址的矩阵块的元素,数据由处理单元的第一输入端口接收。完成一个矩阵块运算后向选择

累加阵列计算模块发送标识符,使其输出计算结果;所述第二发送模块接收外部输入实数矩阵,相对应的,第二发送模块接收矩阵运算控制模块发送的被运算矩阵中实数矩阵的规模和矩阵块地址,并存储对应地址中矩阵块内的元素,在使能信号控制下,向选择

累加阵列计算模块发送相应地址的矩阵块元素,数据由处理单元的第二输入端口接收。完成一个矩阵块运算后向选择

累加阵列计算模块发送0,使选择

累加阵列计算模块中对应的寄存器初始化为0;所述选择

累加阵列计算模块采用n行
×
n列个处理单元阵列化排布,每一行和每一列的处理单元依次首尾相连;所述处理单元具有行列两个输入端口和行列两个输出端口,将行输入端口定义为第一输入...

【专利技术属性】
技术研发人员:胡绍刚李天琛乔冠超于奇刘洋
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1