面向精简卷积神经网络的低代价加速器架构及其处理方法技术

技术编号:24252322 阅读:102 留言:0更新日期:2020-05-22 23:58
本发明专利技术公开了一种面向精简卷积神经网络的低代价加速器架构及其处理方法,所述加速器架构包括:数据和权值张量存储单元、数据读取单元、数据向量存储单元、数据向量读取单元、数据向量寄存单元、权值读取单元、m组权值向量存储单元、m组权值向量读取单元、m组权值向量寄存单元以及m组向量运算单元,通过本发明专利技术,可解决现有神经网络加速器在处理精简卷积神经网络时效率过低或功耗过大的问题。

Low cost accelerator architecture and processing method for reduced convolutional neural network

【技术实现步骤摘要】
面向精简卷积神经网络的低代价加速器架构及其处理方法
本专利技术涉及计算与人工智能
,特别是涉及一种面向精简卷积神经网络的低代价加速器架构及其处理方法。
技术介绍
近几年来,图像目标识别、语音识别和自然语言处理等很多问题都取得了极大的进展,这些进展得益于深度学习技术的发展。作为深度学习基础的神经网络结构在不断演进,这其中作为图像识别领域最重要的卷积神经网络也在不断的演进。起初卷积神经网络演进的主要动力是提升性能,也因此出现了一系列“通用卷积神经网络”,例如:AlexNet、ZFNet、VGGNet,GoogleNet和ResNet等。这类网络对性能的提升主要是通过层数的增加,而核心计算结构变化不大,对硬件加速器的设计来说相对友好,现有的卷积神经网络加速器主要参照这类网络结构进行设计,通常以3×3×N的3D卷积作为基础运算单元。然而,对于一些资源受限的终端设备,上述通用卷积神经网络的规模过于庞大,难以部署,网络轻量化成了另外一个演进方向,出现了又一系列“精简卷积神经网络”,例如:SqueezeNet、MobileNet、shuffleNet、DenseNet、MobileNetV2、MnasNet等。相比于通用卷积神经网络,精简网络结构呈现“异构化”与“碎片化”特点,网络与网络的结构性差异变大,出现了较多的轻量化组件,组件间的计算方式差异性较大,例如MobileNetV2,主要结构为1x1xN卷积(占比达到97%以上)和深度可分离卷积,然而,这些精简卷积神经网络采用现有的神经网络加速器处理往往效率低下或功耗过大。
技术实现思路
为克服上述现有技术存在的不足,本专利技术之目的在于提供一种面向精简卷积神经网络的低代价加速器架构及其处理方法,以解决现有神经网络加速器在处理精简卷积神经网络时效率过低或功耗过大的问题。为达上述目的,本专利技术提出一种面向精简卷积神经网络的低代价加速器架构,包括:数据和权值张量存储单元,用于存储输入数据张量、输入权值张量以及输出数据张量;数据读取单元,用于从所述数据和权值张量存储单元读取数据张量,并按照预设规则对所读取的张量进行切分及向量化后存储到数据向量存储单元;数据向量存储单元,用于存储一批数据向量;数据向量读取单元,用于按预设规则从所述数据向量存储单元读取数据向量并写入到所述数据向量寄存单元;数据向量寄存单元,用于寄存1个或几个数据向量;权值读取单元,用于从所述数据和权值张量存储单元读取权值张量,并按照预设规则对所读取的张量进行切分与向量化后存储到对应的权值向量存储单元;m组权值向量存储单元,每组权值单元分别存储一批权值向量;m组权值向量读取单元,每组权值向量读取单元按预设规则从相应的权值向量存储单元读取参数向量,并将所读取的权值向量写入到对应权值向量寄存单元;m组权值向量寄存单元,每组权值向量寄存单元用于寄存1个或几个权值向量;m组向量运算单元,用于从数据向量寄存单元以及各权值向量寄存单元获取相应的数据和权值向量进行处理,并将处理结果存入数据和权值张量存储单元,每组向量运算单元每时钟周期处理一对数据和权值向量。m组向量运算单元共享数据向量而独享权值向量优选地,所述数据向量读取单元与向量运算单元采用握手同步机制协调数据向量的读取与运算处理。优选地,所述m组向量运算单元共享数据向量而独享权值向量。优选地,所述权值读取单元与向量运算单元采用握手同步机制协调权值向量的读取与运算处理。优选地,所述向量运算单元包括:向量乘累加运算单元,用于每周期读取一对数据向量和权值向量,并对其进行乘累加运算,获得乘累加运算结果序列Rv;分组累加运算单元,用于接收所述向量乘累加处理单元的输出结果序列Rv,将所接收的乘累加结果序列按预设规则进行分组并累加到一起,获得累加结果Rg;激活池化运算单元,用于对所述分组累加运算单元的输出序列Rg进行激活池化处理,处理后的输出结果记为Ra;分组累加存储单元,用于存储所述分组累加运算单元的运算结果。优选地,所述分组累加运算单元包括:数据接收单元,用于接收向量乘累加运算单元的结果Rv;历史累加结果判断处理单元,用于判断所接收到的当前Rv所属分组是否有历史累加结果,若有则读取对应的历史累加结果,将历史累加结果与当前Rv累加,将累加后结果记为Rg,并启动累加完成判断处理单元;若当前Rv所属分组还没有历史累加结果,则直接将当前Rv作为累加结果,将累加后结果记为Rg,并启动累加完成判断处理单元;所属分组累加完成判断处理单元,用于判断当前Rv是否为所属分组的最后成员,若为最后成员,则表示所属分组最终累加完成,将累加值Rg输出给激活池化运算单元做后续处理,然后进入全部分组累加判断处理单元,若当前Rv不是所属分组的最后成员,则表示所属分组最终累加尚未完成,将当前累加结果Rg存储到分组累加存储单元作为所属分组的历史累加结果,然后进入全部分组累加判断处理单元;全部分组累加判断处理单元,用于判断全部分组累加处理是否都结束,若是,结束当前流程,否则返回所述数据接收单元继续分组累加处理。优选地,所述激活池化运算单元包括:批标准化与激活处理单元,用于对分组累加结果进行批标准化与激活处理;判断单元,用于判断是进行池化处理还是深度可分离卷积处理,若为深度分离卷积处理,则启动深度分离卷积处理单元,若为池化处理,则启动池化处理单元;深度分离卷积处理单元,用于对批标准化与激活处理后的数据进行深度分离卷积处理,并对深度分离卷积后的数据再次进行批标准化与激活处理;池化处理单元,用于对批标准化与激活处理后的数据进行池化处理;张量处理单元,用于选择所述深度分离卷积处理单元或所述池化处理单元的处理的结果与已存储的指定张量进行张量累加处理。优选地,所述向量乘累加运算单元与分组累加运算单元为一对一或多对一关系。优选地,所述分组累加运算单元和激活池化运算单元为一对一或多对一关系。为达到上述目的,本专利技术还提供一种面向精简卷积神经网络的低代价加速器架构的处理方法,包括如下步骤:步骤S1,利用数据读取单元从数据和权值张量存储单元读取数据张量,并按照预设规则对所读取的张量进行切分及向量化后存储到数据向量存储单元;步骤S2,利用数据向量读取单元按一定的规则从数据向量存储单元读取数据向量并写入到数据向量寄存单元;步骤S3,利用权值读取单元从数据和权值张量存储单元读取权值张量,并按照预设规则对所读取的张量进行切分与向量化后存储到m组权值向量存储单元;步骤S4,利用m组权值向量读取单元按预设规则从相应的权值向量存储单元读取参数向量,并将所读取的权值向量写入到对应权值向量寄存单元;步骤S5,利用m组向量运算单元从数据向量寄存单元以及权值向量寄存单元获取相应的数据和权值向量进行处理,并将处理结果存入数据和权值张量存储单元,每组向量运算单元每时钟周期处理一对数据和权值向本文档来自技高网
...

【技术保护点】
1.一种面向精简卷积神经网络的低代价加速器架构,包括:/n数据和权值张量存储单元,用于存储输入数据张量、输入权值张量以及输出数据张量;/n数据读取单元,用于从所述数据和权值张量存储单元读取数据张量,并按照预设规则对所读取的张量进行切分及向量化后存储到数据向量存储单元;/n数据向量存储单元,用于存储一批数据向量;/n数据向量读取单元,用于按预设规则从所述数据向量存储单元读取数据向量并写入到所述数据向量寄存单元;/n数据向量寄存单元,用于寄存1个或几个数据向量;/n权值读取单元,用于从所述数据和权值张量存储单元读取权值张量,并按照预设规则对所读取的张量进行切分与向量化后存储到对应的权值向量存储单元;/nm组权值向量存储单元,每组权值单元分别存储一批权值向量;/nm组权值向量读取单元,每组权值向量读取单元按预设规则从相应的权值向量存储单元读取参数向量,并将所读取的权值向量写入到对应权值向量寄存单元;/nm组权值向量寄存单元,每组权值向量寄存单元用于寄存1个或几个权值向量;/nm组向量运算单元,用于从数据向量寄存单元以及各权值向量寄存单元获取相应的数据和权值向量进行处理,并将处理结果存入数据和权值张量存储单元,每组向量运算单元每时钟周期处理一对数据和权值向量。/n...

【技术特征摘要】
1.一种面向精简卷积神经网络的低代价加速器架构,包括:
数据和权值张量存储单元,用于存储输入数据张量、输入权值张量以及输出数据张量;
数据读取单元,用于从所述数据和权值张量存储单元读取数据张量,并按照预设规则对所读取的张量进行切分及向量化后存储到数据向量存储单元;
数据向量存储单元,用于存储一批数据向量;
数据向量读取单元,用于按预设规则从所述数据向量存储单元读取数据向量并写入到所述数据向量寄存单元;
数据向量寄存单元,用于寄存1个或几个数据向量;
权值读取单元,用于从所述数据和权值张量存储单元读取权值张量,并按照预设规则对所读取的张量进行切分与向量化后存储到对应的权值向量存储单元;
m组权值向量存储单元,每组权值单元分别存储一批权值向量;
m组权值向量读取单元,每组权值向量读取单元按预设规则从相应的权值向量存储单元读取参数向量,并将所读取的权值向量写入到对应权值向量寄存单元;
m组权值向量寄存单元,每组权值向量寄存单元用于寄存1个或几个权值向量;
m组向量运算单元,用于从数据向量寄存单元以及各权值向量寄存单元获取相应的数据和权值向量进行处理,并将处理结果存入数据和权值张量存储单元,每组向量运算单元每时钟周期处理一对数据和权值向量。


2.如权利要求1所述的一种面向精简卷积神经网络的低代价加速器架构,其特征在于:所述数据向量读取单元与向量运算单元采用握手同步机制协调数据向量的读取与运算处理。


3.如权利要求1所述的一种面向精简卷积神经网络的低代价加速器架构,其特征在于:所述m组向量运算单元共享数据向量而独享权值向量。


4.如权利要求1所述的一种面向精简卷积神经网络的低代价加速器架构,其特征在于:所述权值读取单元与向量运算单元采用握手同步机制协调权值向量的读取与运算处理。


5.如权利要求1所述的一种面向精简卷积神经网络的低代价加速器架构,其特征在于,所述向量运算单元包括:
向量乘累加运算单元,用于每周期读取一对数据向量和权值向量,并对其进行乘累加运算,获得乘累加运算结果序列Rv;
分组累加运算单元,用于接收所述向量乘累加处理单元的输出结果序列Rv,将所接收的乘累加结果序列按预设规则进行分组并累加到一起,获得累加结果Rg;
激活池化运算单元,用于对所述分组累加运算单元的输出序列Rg进行激活池化处理,处理后的输出结果记为Ra;
分组累加存储单元,用于存储所述分组累加运算单元的运算结果。


6.如权利要求5所述的一种面向精简卷积神经网络的低代价加速器架构,其特征在于,所述分组累加运算单元包括:
数据接收单元,用于接收向量乘累加运算单元的结果Rv;
历史累加结果判断处理单元,用于判断所接收到的当前Rv所属分组是否有历史累加结果,若有则读取对应的历史累加结果,将历史累加结果与当前Rv累加,将累加后结果记为Rg,并启动累加完成判断处理单元;若当前Rv所属分组还没有历史累加结果,则直接将当前Rv作为累加结果,将累加后结果记为Rg,并启动累加完成判断处理单元;
所属分组累加完成判断处理...

【专利技术属性】
技术研发人员:党韩兵刘文庭刘学彦尹东詹进
申请(专利权)人:上海富瀚微电子股份有限公司
类型:发明
国别省市:上海;31

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

1