一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可变形卷积加速器和可变形卷积加速方法与流程

2021-10-20 00:32:00 来源:中国专利 TAG:卷积 变形 神经网络 加速器 加速


1.本技术涉及卷积神经网络技术领域,尤其涉及一种可变形卷积加速器和可变形卷积加速方法。


背景技术:

2.可变形卷积在目标检测工作中具有重要的应用。自可变形卷积理论被提出以后,多种目标检测模型都应用了可变形卷积,以达到更高的检测精度和速度。在普通的卷积网络中,与卷积核大小相同的窗口在输入特征图上滑动,窗口对应位置的数值被选取出来与卷积核相乘,并累加得到当前位置的输出。而可变形卷积在普通卷积的基础上,根据输入特征图动态生成偏移量,在输入特征图上选取数值与卷积核相乘时,滑动窗口所对应的位置被当作基地址,在基地址上加上对应的偏移量,得到新地址,再使用新地址在输入特征图上取值。由于偏移量不是整数,因此新地址往往也不是整数,当新地址超出输入特征图的地址范围,返回的输入值为零;而当新地址在输入特征图的地址范围内时,则采用双线性插值法,寻找距离新地址坐标最近的四个点来计算该新地址的输入值,将新地址的输入值与卷积核相乘,并累加得到可变形卷积的输出。
3.为了便于硬件设计,现有技术对可变形卷积进行了算法上的调整,具体为:将偏移量的大小限制在一定范围内,并固定偏移的方向,使得不规则的感受野变成规则的方形;同时,偏移量从浮点数变成整数,并跳过双线性插值法直接取值。经过上述操作,感受野实现了规则化,调整后的可变形卷积层结构接近于空洞卷积。但是,这种方式对变形卷积的算法进行了较大调整,导致输出精度降低。
4.现有技术还通过在训练中选择更小的偏移量来对感受野的大小进行限制,并将偏移后的地址在输入特征图上的取值作为中间变量存储在片外,而在卷积计算执行时再从片外取回,这种方式大幅度增加片外存储器的访问次数。


技术实现要素:

5.为了克服现有技术的不足,本技术旨在提供一种可变形卷积加速器和可变形卷积加速方法,以解决不规则的感受野引起的存取不规则及输出精度降低的问题,同时通过对于存储空间和存取操作的优化,减少对片外存储器的访问次数。
6.为了实现上述目的,一方面,本技术提供一种可变形卷积加速器,具体包括:包括软件端和硬件端。
7.所述软件端,用于实现所述可变形卷积加速器的整体架构,并用于将原始模型参数从片外存储器加载到硬件端,所述原始模型参数包括原始输入值、偏移量、量化尺度、掩码和卷积权重;还用于将硬件端的输出值读取到片外存储器。
8.所述硬件端包括:
9.控制模块,用于从软件端获取原始输入值、偏移量、量化尺度、掩码和卷积权重;以及用于根据基地址与所述偏移量获得实际地址,并将实际地址分离成整数部分和小数部
分;还用于输出控制信号,控制映射模块、寄存器模块、掩码模块、卷积模块、输入缓存模块、输出缓存模块和权重缓存模块及各模块之间的数据交互;以及还用于将输出值传输至软件端。
10.输入缓存模块,用于存储原始输入值。
11.寄存器模块,用于转换所述原始输入值的存取并行维度,获得并行输入值,并存储并行输入值。
12.映射模块,用于根据所述量化尺度、所述整数部分和所述小数部分,获得实际地址及实际地址对应的插值权重;以及用于根据并行输入值和插值权重,进行双线性插值处理,获得真实输入值。
13.掩码模块,用于存储所述掩码,以及根据真实输入值和掩码,获得规则化输入值。
14.权重缓存模块,用于存储卷积权重。
15.卷积模块,用于根据卷积权重和规则化输入值,进行卷积计算,获得输出值。
16.输出缓存模块,用于存储卷积模块计算获得的输出值。
17.进一步的,所述卷积模块包括乘法单元、加法单元和累加单元。
18.所述乘法单元,包括乘法器,用于将所述规则化输入值与所述卷积权重相乘,获得单位输入值。
19.所述加法单元,包括进位保存加法器和加法器,用于对所有单位输入值进行逐级加法操作,获得单位累加值。
20.所述累加单元,包括累加器,用于将所有单位累加值进行累加,获得输出值。
21.进一步的,所述加法单元包括预处理层、中间层和输出层。
22.所述预处理层,用于根据卷积核大小选择相应的进位保存加法器,并根据所述进位保存加法器对输入值的要求,对所有单位输入值进行分组;以及用于通过进位保存加法器对分组后的单位输入值进行加法操作,输出一级和值和一级进位值;还用于根据所述一级进位值与所述一级和值,通过加法器获得暂存值。
23.所述中间层,用于将上一层输出的暂存值作为下一层的输入,并通过进位保存加法器和加法器进行逐级累加操作,获得单位累加值。
24.所述输出层,用于将所述单位累加值传输至累加单元。
25.进一步的,所述寄存器模块包括读阵列和写阵列,所述读阵列用于为所述映射模块提供并行输入值进行双线性插值,所述写阵列用于存储并行输入值,所述读阵列和所述写阵列的功能可相互交替。
26.进一步的,所述读阵列和所述写阵列采用乒乓操作,实现读取动作和存储动作的并行处理。
27.进一步的,所述寄存器模块的存取并行维度设置为36。
28.进一步的,所述控制模块包括计数器,所述计数器用于根据所述小数部分计算获得所述插值权重。
29.第二方面,本技术还提供一种可变形卷积加速方法,具体包括:
30.控制模块通过软件端获取原始输入值、偏移量、量化尺度、掩码和卷积权重。
31.控制模块将基地址与所述偏移量相加获得实际地址,以及将所述实际地址分离成整数部分和小数部分,且将所述整数部分、所述小数部分与所述量化尺度传输给映射模块;
以及还将所述原始输入值存至输入缓存模块,将所述掩码存至掩码模块,将所述卷积权重缓存至权重缓存模块。
32.映射模块根据所述量化尺度、所述整数部分和所述小数部分,获得实际地址和实际地址对应的插值权重。
33.控制模块根据所述实际地址,从输入缓存模块中获取对应的原始输入值,并将所述原始输入值传输至寄存器模块。
34.寄存器模块转换所述原始输入值的并行维度,输出并行输入值。
35.映射模块对所述并行输入值和所述插值权重进行双线性插值处理,获得真实输入值。
36.掩码模块对所述真实输入值与所述掩码进行乘积操作,获得规则化输入值。
37.卷积模块通过控制模块获取权重缓存模块的卷积权重和掩码模块的规则化输入值,并根据所述规则化输入值和所述卷积权重,进行卷积计算,获得输出值,并将所述输出值保存至输出缓存模块。
38.控制模块控制所述输出缓存模块将所述输出值通过软件端传输至片外存储器。
39.进一步的,所述寄存器模块包括读阵列和写阵列,所述寄存器模块转换并行维度的具体方法为:
40.寄存器模块通过控制模块获取输入缓存模块中的原始输入值。
41.控制模块发送控制信号将所述原始输入值存到寄存器模块的写阵列中。
42.控制模块控制映射模块从寄存器模块的读阵列读取已存储的原始输入值,用以执行双线性插值操作。
43.当写阵列存满原始输入值,且读阵列中所有原始输入值已被映射模块处理完毕时,将读阵列与写阵列功能互换。
44.进一步的,所述卷积模块包括乘法器、进位保存加法器、加法器和累加器,所述卷积模块进行卷积计算的具体方法为:
45.通过控制模块获取权重缓存模块的卷积权重和掩码模块的规则化输入值。
46.通过乘法器将所述卷积权重和所述规则化输入值相乘,获得单位输入值。
47.根据卷积核大小选择相应的进位保存加法器。
48.根据进位保存加法器对输入值的要求,对所有单位输入值进行分组。
49.通过进位保存加法器对分组后的单位输入值进行加法操作,输出一级和值和一级进位值。
50.通过加法器对2倍一级进位值与一级和值进行求和处理,获得一级暂存值。
51.根据进位保存加法器对输入值的要求,对所有一级暂存值进行分组。
52.通过进位保存加法器对分组后的一级暂存值进行加法操作,输出二级和值和二级进位值。
53.通过加法器对2倍二级进位值与二级和值进行求和处理,获得二级暂存值。
54.通过重复执行分组和加法操作,直至获得单位累加值。
55.通过累加器将所有单位累加值进行累加,获得输出值。
56.本技术提供一种可变形卷积加速器和可变形卷积加速方法,对原始的可变形卷积层进行加速,未对算法进行任何调整,而是使用原始的偏移量范围,并未对偏移量进行大小
限制,最大限度地保留原始模型的精度;对于不规则的感受野,采用映射模块将其规则化,并通过寄存器模块的乒乓操作方式将映射模块和卷积模块的运算速率进行匹配,提高了硬件利用率;同时,本技术无需将中间数据存储到片外,降低了对于片外存储结构的访问频率。
附图说明
57.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1为本技术实施例提供的一种可变形卷积加速器的整体构架示意图;
59.图2为本技术实施例提供的一种可变形卷积加速器的映射模块结构示意图;
60.图3为本技术实施例提供的一种可变形卷积加速器的寄存器模块结构示意图;
61.图4为本技术实施例提供的一种可变形卷积加速器的输入缓存模块结构示意图;
62.图5为本技术实施例提供的一种可变形卷积加速器的卷积模块结构示意图;
63.图6为本技术实施例提供的片外访问次数对比示意图;
64.图7为本技术实施例提供的一种可变形卷积加速方法流程示意图。
具体实施方式
65.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行完整、清楚的描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
66.现场可编程门阵列(fpga),作为专用集成电路(asic)领域中的一种半定制电路,是在pal、gal、cpld等可编程器件基础上进一步发展的产物。由于fpga具有开发周期短、功能强、可靠性高和保密性好的特点,目前应用fpga对卷积神经网络进行加速的设计层出不穷,但是,应用fpga在加速可变形卷积神经网络上的研究还比较缺乏。本技术实施例正是基于fpga平台对可变形卷积神经网络加速器进行研究,以弥补现有技术的不足。
67.参见图1,为本技术实施例提供的一种可变形卷积加速器的整体构架示意图。本技术实施例第一方面提供一种可变形卷积加速器,具体包括:包括软件端和硬件端。
68.所述软件端,用于实现所述可变形卷积加速器的整体架构,并用于将原始模型参数从片外存储器加载到硬件端,所述原始模型参数包括原始输入值、偏移量、量化尺度、掩码和卷积权重;还用于将硬件端的输出值读取到片外存储器。
69.所述硬件端包括:
70.控制模块,用于从软件端获取原始输入值、偏移量、量化尺度、掩码和卷积权重;以及用于根据基地址与所述偏移量获得实际地址,并将实际地址分离成整数部分和小数部分;还用于输出控制信号,控制映射模块、寄存器模块、掩码模块、卷积模块、输入缓存模块、输出缓存模块和权重缓存模块及各模块之间的数据交互;以及还用于将输出值传输至软件端。
71.输入缓存模块,用于存储原始输入值。
72.寄存器模块,用于转换所述原始输入值的存取并行维度,获得并行输入值,并存储并行输入值。
73.映射模块,用于根据所述量化尺度、所述整数部分和所述小数部分,获得实际地址及实际地址对应的插值权重;以及用于根据并行输入值和插值权重,进行双线性插值处理,获得真实输入值。
74.掩码模块,用于存储所述掩码,以及根据真实输入值和掩码,获得规则化输入值。
75.权重缓存模块,用于存储卷积权重。
76.卷积模块,用于根据卷积权重和规则化输入值,进行卷积计算,获得输出值。
77.输出缓存模块,用于存储卷积模块计算获得的输出值。
78.相比于普通卷积层,可变形卷积通过对输入地址进行偏移,获得了形状不规则的感受野,可以适应不同大小、形状的目标,因此在目标检测任务中有着重要的应用。但是偏移的地址也导致了不规则的访存,采用传统的并行策略会导致存取冲突。本技术实施例为基于可变形卷积的硬件架构设计,将可变形卷积的计算分为两个阶段:取值阶段和卷积阶段。在取值阶段,对存储空间进行优化,为卷积计算提供规则化的存取,且本阶段的计算主要由映射模块完成;在卷积阶段,根据从上一阶段取到的规则化输入值,执行卷积操作,得到输出结果。与其他的硬件架构相比,本技术实施例首次实现了对于原始的可变形卷积的加速,大大降低了能耗;并且,本技术不对感受野进行压缩和规则化处理,从而最大限度地保留了模型的原始精度;同时,对存储空间的优化降低了对片外存储空间的访问频率。
79.具体的,本技术实施例为了验证方案的可行性,所述软件端和所述硬件端均采用fpga平台进行验证。
80.进一步的,所述控制模块包括计数器,所述计数器用于根据所述小数部分计算获得所述插值权重。
81.具体的,参见图2,为本技术实施例提供的一种可变形卷积加速器的映射模块结构示意图。映射模块被表示为特征图单元阵列,其数量用h表示,在本技术实施例中,卷积核大小为3
×
3,特征图单元阵列的数量为9。在每个特征图单元中,输入的x、y是实际地址横纵坐标的整数部分,所述实际地址通过基地址加上偏移量得到,x、y是小数部分。对于量化之后的数值,这两部分可以通过量化尺度对偏移后的地址进行移位得到。根据整数部分x、y,在特征图上取得计算双线性插值所需要的4个相邻值,所述4个相邻值的坐标分别为(x,y)、(x 1,y)、(x 1,y 1)和(x,y 1)。根据小数部分x、y,通过控制模块中的计数器计算所述4个相邻值的插值权重w1~w4,将坐标值和插值权重对应相乘后累加,就得到了偏移后的地址所对应的值,也是下一阶段的卷积运算中所需要的输入值。
82.综上,映射阶段通过实际地址的坐标在特征图上取值,并将其规则排布,提供给下一阶段的卷积计算。
83.具体的,如果在取值阶段计算完全结束后再开始卷积阶段的计算,则会引起很大的延迟。所以在本技术实施例中,两阶段的计算是同步进行的,特征图中的每个取值地址在输入维度上复用,同时取到在特征图上同一个位置但是位于不同输入通道上的值。但是在下一阶段的计算中,需要同时输入在同一个输入通道上的不同位置的值。由于存取的维度不同,所以本技术实施例在取值阶段和卷积阶段之间设置一个寄存器模块来存储中间数据并转换数据的并行维度。
84.进一步的,所述寄存器模块包括读阵列和写阵列,所述读阵列用于为所述映射模块提供并行输入值进行双线性插值,所述写阵列用于存储并行输入值,所述读阵列和所述写阵列的功能可相互交替。
85.进一步的,所述读阵列和所述写阵列采用乒乓操作,实现读取动作和存储动作的并行处理。
86.进一步的,所述寄存器模块的存取并行维度设置为36。
87.参见图3,为本技术实施例提供的一种可变形卷积加速器的寄存器模块结构示意图。具体的,为了使存取操作互不影响,两个阶段的计算可以同时执行,寄存器模块采用了乒乓操作,使得读写可以同时进行,互不干扰。映射模块中的一个地址在多个输入通道上的对应位置同时取值并存到寄存器模块的写阵列中,标记为w_1至w_36。由于卷积核的大小为3
×
3,每个双线性插值操作需要4个相邻的值参与计算,卷积单元每计算出一个输出值,需要输入缓存中的36个原始输入值,所以在本技术实施例中寄存器模块的存取并行维度为36。当映射模块中的36个地址全部取完原始输入值并存到寄存器模块中时,写阵列中存有36
×
36个原始输入值,来自36个输入通道,每个输入通道有36个原始输入值。读阵列每次输出的原始输入值也是36个,标记为r_1至r_36,同一时刻输出的原始输入值具有相同的输入通道,同样在36次输出后,所有的原始输入值都输出到了映射模块,执行双线性插值后被卷积模块在输出通道上复用。当写阵列被写满的同时,读阵列中的所有原始输入值也已经被后面的模块利用完毕,这时,将读阵列与写阵列进行交换。
88.为配合寄存器模块中的存取方案,本技术实施例对于输入缓存模块中原始输入值的排布也进行了调整。本技术实施例将原始输入值按照输入通道进行分组,分组的组数与寄存器模块的存取并行维度相同。
89.具体的,参见图4,为本技术实施例提供的一种可变形卷积加速器的输入缓存模块结构示意图。c代表输入通道,映射模块每次向输入缓存模块输出一个地址,输入缓存模块输出当前选中的36个不同输入通道对应位置的值。映射模块中的一组地址取完,输入缓存模块中被选中的输入通道改变,黑色框代表选中的输入通道,按照如图所示的箭头方向移动。
90.进一步的,所述卷积模块包括乘法单元、加法单元和累加单元。
91.所述乘法单元,包括乘法器,用于将所述规则化输入值与所述卷积权重相乘,获得单位输入值。
92.所述加法单元,包括进位保存加法器和加法器,用于对所有单位输入值进行逐级加法操作,获得单位累加值。
93.所述累加单元,包括累加器,用于将所有单位累加值进行累加,获得输出值。
94.进位保存加法器(carry save adder,csa)在执行多个数加法时具有极小的进位传播延迟,它的基本思想即将3个加数的和减少为2个加数的和,将进位值与和值分别计算保存,并且每比特可以独立计算进位值与和值,所以速度极快,且能减少累加次数,缩短关键路径。
95.具体的,在使用verilog设计一个算式,如sum=a b c d,则可以设计一个全加器,由全加器组成n比特的csa结构,将多个数合并,经过两级csa,最后将进位值与和值通过一个加法器相加,注意进位传入到任何模块中时,需要将进位值乘以2,因为这是它合并后真
正的数值。
96.进一步的,所述加法单元包括预处理层、中间层和输出层。
97.所述预处理层,用于根据卷积核大小选择相应的进位保存加法器,并根据所述进位保存加法器对输入值的要求,对所有单位输入值进行分组;以及用于通过进位保存加法器对分组后的单位输入值进行加法操作,输出一级和值和一级进位值;还用于根据所述一级进位值与所述一级和值,通过加法器获得暂存值。
98.所述中间层,用于将上一层输出的暂存值作为下一层的输入,并通过进位保存加法器和加法器进行逐级累加操作,获得单位累加值。
99.所述输出层,用于将所述单位累加值传输至累加器。
100.具体的,在第二阶段的计算中,本技术实施例设计了一个专用于卷积计算的卷积阵列。参见图5,为本技术实施例提供的一种可变形卷积加速器的卷积模块结构示意图。输出通道的并行维度为n,该并行维度可以根据设计的规模大小而改变,在本技术部分实施例中,将n设置为32。每一个卷积计算单元负责一个输出通道的卷积计算,同一时刻输入的权重具有相同的输入通道和不同的输出通道。而在上一阶段计算得到的偏移后的取值被不同的输出通道复用。其中,w1至w9是输入的权重值,v1至v9是在上一个阶段的计算中由映射模块所取到的输入值。由于本技术实施例卷积核大小为3
×
3,取同样大小的规则化之后的输入,对应相乘。为了缩短最短路径,同时简化计算,不采取直接累加9个结果的方式,而是3个为一组,使用进位保存加法器进行计算。得到的3个结果再采用一级进位加法器。两级进位加法器可以计算出9个数值的累加值,得到当前输入通道当前位置的输出。
101.由于每个卷积计算单元负责一个输出通道的计算,每个卷积计算单元的输出结果在输入通道维度上通过累加器累加,得到当前位置在对应的输出通道的输出值。
102.本技术实施例提供一种可变形卷积加速器,通过第一阶段的映射操作,将第二阶段的卷积计算的数据存取规则化,解决了存取冲突的问题,使架构可以实现大规模并行;本技术还设计寄存器模块来匹配两个阶段的处理速率,提高硬件利用率,寄存器模块改变了存取的并行维度,配合上对于输入缓存的存储优化,使得在并行操作下存储空间需求并没有大幅度上升,从而降低了系统的片外访存次数;本技术没有对感受野进行压缩和规则化操作,最大限度地保留了原始模型的精度。
103.以下将通过具体实施例,对本技术实施例所提供的一种可变形卷积加速器和方法进行详细阐述。
104.由表1可知,与现有技术相比,本技术实施例在coco数据集上的精度更接近于原始模型。本技术实施例没有对感受野进行压缩和规则化操作,对原始的可变形卷积层进行了加速,最大限度地保留了原始模型的精度。
105.表1 coco数据集上的精度对比表
[0106][0107]
由表2可以看出,本技术实施例对于板上资源的占用较少。
[0108]
表2资源占用表
[0109][0110]
由表3可以看出,与gpu相比,本技术实施例大大提高了能效比。
[0111]
表3能耗对比表
[0112][0113][0114]
参见图6,为本技术实施例提供的片外访问次数对比示意图,其中,s表示输入的大小,具体来说是边长,n表示输入的通道数。从图上可以看出,与现有技术中的dcl加速器相比,本技术实施例提供的可变形卷积加速器大大降低了对于片外内存结构的访问次数。
[0115]
综上所述,本技术实施例所述可变形卷积加速器具有以下特点:
[0116]
(1)本技术实施例设计了映射模块来完成可变形卷积的不规则取值操作,将卷积阶段的存取规则化,解决了存取冲突;使用寄存器模块对两个阶段的计算速率进行匹配,提高硬件利用率;同时还改变数据存取的并行维度,降低存储空间的需求。
[0117]
(2)本技术实施例设计出的计算模块,构建了一个用于原始可变形卷积计算的加速器架构,没有对原始的算法进行修改,最大限度地保留了原始模型的精度。
[0118]
(3)本技术实施例基于fpga平台实现,能够达到200mhz,126.32gops的指标。在fpga上的能效为50.33gops/w,与gpu相比提高了2.5倍。另外,与现有技术相比,本技术实施例大幅度降低了对于片外存储器的访问次数。
[0119]
参见图7,为本技术实施例提供的一种可变形卷积加速方法流程示意图。本技术实施例第二方面提供一种可变形卷积加速方法,用于指导操作本技术实施例第一方面提供的一种可变形卷积加速器,对于本技术实施例第二方面提供的一种可变形卷积加速方法中未公开的细节,请参见本技术实施例第一方面提供的一种可变形卷积加速器。
[0120]
所述可变形卷积加速方法,具体包括:
[0121]
控制模块通过软件端获取原始输入值、偏移量、量化尺度、掩码和卷积权重。
[0122]
控制模块将基地址与所述偏移量相加获得实际地址,以及将所述实际地址分离成整数部分和小数部分,且将所述整数部分、所述小数部分与所述量化尺度传输给映射模块;以及还将所述原始输入值存至输入缓存模块,将所述掩码存至掩码模块,将所述卷积权重缓存至权重缓存模块。
[0123]
映射模块根据所述量化尺度、所述整数部分和所述小数部分,获得实际地址和实际地址对应的插值权重。
[0124]
控制模块根据所述实际地址,从输入缓存模块中获取对应的原始输入值,并将所述原始输入值传输至寄存器模块。
[0125]
寄存器模块转换所述原始输入值的并行维度,输出并行输入值。
[0126]
映射模块对所述并行输入值和所述插值权重进行双线性插值处理,获得真实输入值。
[0127]
掩码模块对所述真实输入值与所述掩码进行乘积操作,获得规则化输入值。
[0128]
卷积模块通过控制模块获取权重缓存模块的卷积权重和掩码模块的规则化输入值,并根据所述规则化输入值和所述卷积权重,进行卷积计算,获得输出值,并将所述输出值保存至输出缓存模块。
[0129]
控制模块控制所述输出缓存模块将所述输出值通过软件端传输至片外存储器。
[0130]
进一步的,所述寄存器模块包括读阵列和写阵列,所述寄存器模块转换并行维度的具体方法为:
[0131]
寄存器模块通过控制模块获取输入缓存模块中的原始输入值。
[0132]
控制模块发送控制信号将所述原始输入值存到寄存器模块的写阵列中。
[0133]
控制模块控制映射模块从寄存器模块的读阵列读取已存储的原始输入值,用以执行双线性插值操作。
[0134]
当写阵列存满原始输入值,且读阵列中所有原始输入值已被映射模块处理完毕时,将读阵列与写阵列功能互换。
[0135]
进一步的,所述卷积模块包括乘法器、进位保存加法器、加法器和累加器,所述卷积模块进行卷积计算的具体方法为:
[0136]
通过控制模块获取权重缓存模块的卷积权重和掩码模块的规则化输入值。
[0137]
通过乘法器将所述卷积权重和所述规则化输入值相乘,获得单位输入值。
[0138]
根据卷积核大小选择相应的进位保存加法器。
[0139]
根据进位保存加法器对输入值的要求,对所有单位输入值进行分组。
[0140]
通过进位保存加法器对分组后的单位输入值进行加法操作,输出一级和值和一级进位值。
[0141]
通过加法器对2倍一级进位值与一级和值进行求和处理,获得一级暂存值。
[0142]
根据进位保存加法器对输入值的要求,对所有一级暂存值进行分组。
[0143]
通过进位保存加法器对分组后的一级暂存值进行加法操作,输出二级和值和二级进位值。
[0144]
通过加法器对2倍二级进位值与二级和值进行求和处理,获得二级暂存值。
[0145]
通过重复执行分组和加法操作,直至获得单位累加值。
[0146]
通过累加器将所有单位累加值进行累加,获得输出值。
[0147]
具体的,参见图5,对于一个3
×
3的卷积核与某个位置的输入,先将卷积核中的权重与输入对应相乘,得到的9个暂存值每3个一组使用进位保存加法器相加,得到3个累加值后,再用进位保存加法器再次进行累加操作,最后得到输出值。
[0148]
由上述技术方案可知,本技术提供一种可变形卷积加速器和可变形卷积加速器方法,对原始的可变形卷积层进行加速,未对算法进行任何调整,而是使用原始的偏移量范围,并未对偏移量进行大小限制,最大限度地保留原始模型的精度;对于不规则的感受野,采用映射模块将其规则化,并通过寄存器模块的乒乓操作方式将映射模块和卷积模块的运算速率进行匹配,提高了硬件利用率;同时,本技术无需将中间数据存储到片外,降低了对于片外存储结构的访问频率。
[0149]
以上结合具体实施方式和范例性实例对本技术进行了详细说明,不过这些说明并不能理解为对本技术的限制。本领域技术人员理解,在不偏离本技术精神和范围的情况下,可以对本技术技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本技术的范围内。本技术的保护范围以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜