一种深度卷积加速器及其实现加速深度卷积的方法技术

技术编号:35123997 阅读:27 留言:0更新日期:2022-10-05 09:54
本申请公开了一种深度卷积加速器及其实现加速深度卷积的方法,通过根据深度卷积运算的输入信息计算出了当前参与深度卷积的深度卷积节点的数量,实现了深度卷积加速器的卷积节点数目的动态配置,从而增强了深度卷积加速器的卷积节点数目的可配置性,解决了相关技术中深度卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了深度卷积加速器对各种不同应用场景的适应性,提升了深度卷积加速器的灵活性和广泛性,适应了复杂多变的AI使用场景。使用场景。使用场景。

【技术实现步骤摘要】
一种深度卷积加速器及其实现加速深度卷积的方法


[0001]本申请涉及但不限于人工智能(AI,Artificial Intelligence)技术,尤指一种深度卷积加速器及其实现加速深度卷积的方法。

技术介绍

[0002]随着AI技术的发展与广泛应用,对不同场景下的AI计算提出了越来越大的挑战。AI计算的应用从一开始的云端逐渐扩展到边缘端。在边缘端的应用,根据使用场景不同,对AI的需求也是千变万化。
[0003]为了适应不同的应用需求,深度卷积加速器的应用灵活性和广泛性亟需提升,以更好的适应复杂多变的AI使用场景。

技术实现思路

[0004]本申请提供一种深度卷积加速器及其实现加速深度卷积的方法,能够提升深度卷积加速器的应用灵活性和广泛性,适应复杂多变的AI使用场景。
[0005]本专利技术实施例提供了一种深度卷积加速器,包括:深度卷积计算模块、地址发生器、深度卷积器,其中,
[0006]深度卷积计算模块,设置为根据深度卷积运算的输入信息,计算深度卷积节点的数量n和偏置数据;
[0007]地址发生器,包括n个,设置为产生输入数据的地址、深度卷积核数据的地址以及输出数据的地址;
[0008]深度卷积器,包括n个,设置为根据偏置数据、输入数据的地址和深度卷积核数据的地址分别读取的输入数据和深度卷积核数据,实现深度卷积运算并将运算结果输出至输出数据的地址;
[0009]其中,一个地址发生器和一个深度卷积器构成一个深度卷积节点,n个深度卷积节点并行处理。
[0010]在一种示例性实例中,还包括:第一缓存器、第二缓存器、第三缓存器,其中,
[0011]第一缓存器,设置为存储所述深度卷积运算的输入信息;
[0012]第二缓存器,设置为存储深度卷积运算值的所述偏置数据;
[0013]第三缓存器,设置为存储深度卷积核数据。
[0014]在一种示例性实例中,还包括:地址选择器、第四缓存器,其中,
[0015]地址选择器,设置为根据不同地址将数据写入到相应数据缓存器的不同位置;
[0016]第四缓存器,设置为存储所述输出数据。
[0017]在一种示例性实例中,所述深度卷积计算模块设置为:
[0018]根据所述深度卷积运算的输入信息中的被深度卷积数据的高H、深度卷积核的高h以及步长stride,计算当前参与并行运算的所述深度卷积节点的数量n;将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。
[0019]在一种示例性实例中,所述根据深度卷积运算的输入信息,计算当前参与并行运算的所述深度卷积节点的数量n,包括:
[0020]按照以下公式,根据所述深度卷积运算的输入信息中的被深度卷积数据的高H、深度卷积核的高h以及步长stride,计算当前参与并行运算的所述深度卷积节点的数量n:n=[(H

h)/stride]+1。
[0021]在一种示例性实例中,所述地址发生器包括:深度卷积核Y计数器、深度卷积核X计数器、输入通道计数器、输入Y计数器、深度卷积核加法器、输出加法器、输入加法器,其中,
[0022]输入Y计数器设置为:当深度卷积核Y计数器达到最大值时,输入Y计数器的值增加深度卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,输入通道数计数器加1,同时输入Y计数器的值自动清零;
[0023]输入通道计数器设置为:当输入通道计数器达到最大值时,深度卷积运算结束;
[0024]深度卷积核Y计数器设置为:当深度卷积核Y计数器达到最大值时,输入Y计数器加1,同时深度卷积核Y计数器自动清零;
[0025]深度卷积核X计数器设置为:当深度卷积核X计数器达到最大值时,深度卷积核Y计数器加1,同时深度卷积核X计数器自动清零;
[0026]深度卷积核加法器,设置为:实现深度卷积核X计数器的值、深度卷积核Y计数器的值以及输入通道计数器的值的相加运算,结果为深度卷积核地址;
[0027]输出加法器,设置为:实现来自深度卷积计算模块的地址偏置与输入Y计数器的相加运算,结果为输出地址;
[0028]输入加法器,设置为:实现深度卷积核加法器的结果,以及输出加法器的结果的相加运算,结果为输入地址。
[0029]在一种示例性实例中,所述输入Y计数器的最大值为(W

w

1);
[0030]所述深度卷积核Y计数器的最大值为w;
[0031]所述输入通道计数器的最大值为输入通道数;
[0032]所述深度卷积核X计数器的最大值为h;
[0033]其中,W为所述深度卷积运算的输入信息中的被深度卷积数据的宽,w为所述深度卷积运算的输入信息中的深度卷积核的宽,h为所述深度卷积运算的输入信息中的深度卷积核的高。
[0034]在一种示例性实例中,所述深度卷积器设置为:
[0035]从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据;
[0036]对输入数据和深度卷积核数据进行相乘运算,得到的结果与深度卷积器上一次的计算结果累加得到第一结果;
[0037]判断所述深度卷积核地址是否等于所述深度卷积核X计数器的值、所述深度卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据的步骤,循环执行累加运算以更新第一结果;
[0038]如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述深度卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从
所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。
[0039]本申请实施例还提供一种实现加速深度卷积的方法,包括:
[0040]根据深度卷积运算的输入信息,计算深度卷积节点的数量n和偏置数据;
[0041]n个深度卷积节点并行处理,实现深度卷积运算;
[0042]其中,一个深度卷积节点包括:一个用于根据偏置数据和深度卷积运算的输入信息产生输入数据的地址、深度卷积核数据的地址以及输出数据的地址的地址发生器,和一个根据输入数据的地址和深度卷积核数据的地址分别读取的输入数据和深度卷积核数据,实现深度卷积运算并将运算结果输出至输出数据的地址的深度卷积器。
[0043]在一种示例性实例中,所述根据深度卷积运算的输入信息,计算深度卷积节点的数量n,包括:
[0044]根据所述深度卷积运算的输入信息,计算当前参与并行运算的所述深度卷积节点的数量n;
[0045]将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度卷积加速器,包括:深度卷积计算模块、地址发生器、深度卷积器,其中,深度卷积计算模块,设置为根据深度卷积运算的输入信息,计算深度卷积节点的数量n和偏置数据;地址发生器,包括n个,设置为产生输入数据的地址、深度卷积核数据的地址以及输出数据的地址;深度卷积器,包括n个,设置为根据偏置数据、输入数据的地址和深度卷积核数据的地址分别读取的输入数据和深度卷积核数据,实现深度卷积运算并将运算结果输出至输出数据的地址;其中,一个地址发生器和一个深度卷积器构成一个深度卷积节点,n个深度卷积节点并行处理。2.根据权利要求1所述的深度卷积加速器,还包括:第一缓存器、第二缓存器、第三缓存器,其中,第一缓存器,设置为存储所述深度卷积运算的输入信息;第二缓存器,设置为存储深度卷积运算值的所述偏置数据;第三缓存器,设置为存储深度卷积核数据。3.根据权利要求2所述的深度卷积加速器,还包括:地址选择器、第四缓存器,其中,地址选择器,设置为根据不同地址将数据写入到相应数据缓存器的不同位置;第四缓存器,设置为存储所述输出数据。4.根据权利要求1~3任一项所述的深度卷积加速器,其中,所述深度卷积计算模块设置为:根据所述深度卷积运算的输入信息中的被深度卷积数据的高H、深度卷积核的高h以及步长stride,计算当前参与并行运算的所述深度卷积节点的数量n;将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。5.根据权利要求4所述的深度卷积加速器,其中,所述根据深度卷积运算的输入信息,计算当前参与并行运算的所述深度卷积节点的数量n,包括:按照以下公式,根据所述深度卷积运算的输入信息中的被深度卷积数据的高H、深度卷积核的高h以及步长stride,计算当前参与并行运算的所述深度卷积节点的数量n:n=[(H

h)/stride]+1。6.根据权利要求1~3任一项所述的深度卷积加速器,其中,所述地址发生器包括:深度卷积核Y计数器、深度卷积核X计数器、输入通道计数器、输入Y计数器、深度卷积核加法器、输出加法器、输入加法器,其中,输入Y计数器设置为:当深度卷积核Y计数器达到最大值时,输入Y计数器的值增加深度卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,输入通道数计数器加1,同时输入Y计数器的值自动清零;输入通道计数器设置为:当输入通道计数器达到最大值时,深度卷积运算结束;深度卷积核Y计数器设置为:当深度卷积核Y计数器达到最大值时,输入Y计数器加1,同时深度卷积核Y计数器自动清零;深度卷积核X计数器设置为:当深度卷积核X计数器达到最大值时,深度卷积核Y计数器加1,同时深度卷积核X计数器自动清零;
深度卷积核加法器,设置为:实现深度卷积核X计数器的值、深度卷积核Y计数器的值以及输入通道计数器的值的相加运算,结果为深度卷积核地址;输出加法器,设置为:实现来自深度卷积计算模块的地址偏置与输入Y计数器的相加运算,结果为输出地址;输入加法器,设置为:实现深度卷积核加法器的结果,以及输出加法器的结果的相加运算,结果为输入地址。7.根据权利要求6所述的深度卷积加速器,其中,所述输入Y计数器的最大值为(W

w

1);所述深度卷积核Y计数器的最大值为w;所述输入通道计数器的最大值为输入通道数;所述深度卷积核X计数器的最大值为h;其中,W为所述深度卷积运算的输入信息中的被深度卷积数据的宽,w为所述深度卷积运算的输入信息中的深度卷积核的宽,h为所述深度卷积运算的输入信息中的深度卷积核的高。8.根据权利要求6所述的深度卷积加速器,其中,所述深度卷积器设置为:从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据;对输入数据和深度卷积核数据进行相乘运算,得到的结果与深度卷积器上一次的计算结果累加得到第一结果;判断所述深度卷积核地址是否等于所述深度卷积核X计数器的值、所述深度卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据的步骤,循环执行累加运算以更新第一结果;如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述深度卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和深度卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。9.一种实现加速深度卷积的方法,包括:根据深度卷积运算的输入信息,计算深度卷积节点的数量n和偏置数据;n个...

【专利技术属性】
技术研发人员:刘锴宋宁王铜铜杜金凤詹宁斯
申请(专利权)人:广东高云半导体科技股份有限公司
类型:发明
国别省市:

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

1