一种基于4bit到6bit的独立卷积3制造技术

技术编号:36016908 阅读:21 留言:0更新日期:2022-12-21 10:08
本发明专利技术提供一种基于4b it到6b it的独立卷积3

【技术实现步骤摘要】
一种基于4bit到6bit的独立卷积3
×
3的设计方法


[0001]本专利技术涉及图像处理
,特别涉及一种基于4bit到6bit的独立卷积3
×
3的设计方法。

技术介绍

[0002]集成电路技术现在越来越成为技术的焦点,很多芯片厂商也都开发自己的芯片。而在芯片应用中,在各自的芯片设计中也会产生各自的问题。例如,北京君正集成电路股份有限公司生产的芯片,在北京君正的芯片上,直接使用C程序速度慢,不合理的使用有限的指令导致运行时间很慢。此外,例如北京君正的芯片T30和芯片T31的寄存器是128位寄存器,并且寄存器个数是有限的,这在优化设计中要考虑寄存器个数问题;simd指令集有限,有些运算需要使用几种指令才能实现其运算。而且,卷积核数据的有限数据是4bit、5bit或是6bit,在存储时是按照8bit存储。输出数据即特征图的深度是16的倍数。卷积计算中使用的步长是1、2或3,实际使用中没有超过卷积核长宽的步长或是失去使用的意义,卷积核中宽是3,长是3。因此在北京君正芯片上,直接使用C程序速度很慢,不合理的使用本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述方法是将需要优化转化的数据顺序预先进行转化,即在卷积核数据的存储过程中,将相邻两个深度的数据交叉存储,最后一个深度的数据与0交叉存储;并且在后面的卷积计算过程中,将原有的特征图数据调整顺序,再进行使用相乘再相邻相加的simd指令,从而使得8bit数据相乘相加后数据变为16bit;将卷积核数据顺序进行调整,存成使用时需要的顺序。2.根据权利要求1所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述方法进一步包括以下步骤:S1,输入数据并存储,其中,卷积核数据存储方式优化存储的处理:由于后面卷积计算是独立卷积,是9对数据相乘后,累加到一起,是生成的一个数据;而在指令集中只有一个指令能够满足相乘再相邻相加的结果的位数是16bit;根据这个指令的使用,需要对数据进行交叉存储,并且需要增加一个0;将相邻两个深度的数据交叉存储,最后一个深度的数据与0交叉存储;S2,利用simd指令进行simd指令优化方法的设计,实现卷积计算:将做卷积的特征图中的3
×
3个深度的数据,每两个深度一组进行交叉处理,可以组成4组,同时剩余一个深度数据,剩余的一个深度数据与0组合,此时是组成5组深度数据;S3,将步骤S2中组成5组深度数据与步骤S1中已经处理好的卷积核数据进行对应的计算,所有数据对应相乘,再累加。3.根据权利要求2所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述步骤S1中,输入数据是按照先深度再宽最后高的顺序存储数据;在计算时是考虑到数据的空间结构,在存储中,是一个向量的存储方式。4.根据权利要求2所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述步骤S1中卷积核初始存储:设一个卷积核数据相关信息,输出深度out_dep为4,卷积核宽度为3,卷积核高度为3;数据的连续方式为在输出深度方向连续,然后由3组输出深度方向,其中每个方向是4个数据,12个数据组成宽度上的一组数据,最后有3组宽度上的数据组成高度上的数据。5.根据权利要求2所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,所述方法在实际使用中使用的输出深度都是16的倍数。6.根据权利要求4所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述步骤S1进一步包括:设输入数据indata是一组输入深度in_depth为32,宽度in_width为256,高度in_height为256的数据;卷积核数据filter_data为一组输出深度out_depth为32,卷积核宽ft_w为3,卷积核高ft_h为3的数据;设输出数据即特征图outdata的结构:深度为out_depth,此处与输入数据的输入深度一样,为32,宽度为out_width,高度out_height;在卷积计算中,存在一个步长,设步长为stride:输入数据的3
×
3个输入深度方向的数据为:[ax1,ax2,ax3,ax4,ax5,ax6,ax7,ax8,ax9,ax10,ax11,ax12,ax13,ax14,ax15,
ax16,

ax32][bx1,bx2,bx3,bx4,bx5,bx6,bx7,bx8,bx9,bx10,bx11,bx12,bx13,bx14,bx15,bx16,

bx32][cx1,cx2,cx3,cx4,cx5,cx6,cx7,cx8,cx9,cx10,cx11,cx12,cx13,cx14,cx15,cx16,

cx32]dx1,dx2,dx3,dx4,dx5,dx6,dx7,dx8,dx9,dx10,dx11,dx12,dx13,dx14,dx15,dx16,

dx32]ex1,ex2,ex3,ex4,ex5,ex6,ex7,ex8,ex9,ex10,ex11,ex12,ex13,ex14,ex15,ex16,

ex32][fx1,fx2,fx3,fx4,fx5,fx6,fx7,fx8,fx9,fx10,fx11,fx12,fx13,fx14,fx15,fx16,

fx32][gx1,gx2,gx3,gx4,gx5,gx6,gx7,gx8,gx9,gx10,gx11,gx12,gx13,gx14,gx15,gx16,

gx32][hx1,hx2,hx3,hx4,hx5,hx6,hx7,hx8,hx9,hx10,hx11,hx12,hx13,hx14,hx15,hx16,

hx32][jx1,jx2,jx3,jx4,jx5,jx6,jx7,jx8,jx9,jx10,jx11,jx12,jx13,jx14,jx15,jx16,

jx32]
‑‑‑‑‑
(7)卷积核原始数据为:[a1,a2,

,a32;b1,b2

,b32;c1,c2,

,c32;d1,d2,

,d32;e1,e2,

,e32;f1,f2,

,f32;g1,g2,

,g32;h1,h2,

,h32;j1,j2,

,j32];
‑‑‑‑‑
(8)卷积核优化数据为:[a1,b1,a2,b2,

,a16,b16;c1,d1,c2,d2,

,c16,d16;e1,f1,e2,f2,

,e16,f16;g1,h1,g2,h2,

,g16,h16;j1,0,j2,0,

,j16,0];[a17,b17,a18,b18,

,a32,b32;c17,d17,c18,d18,

,c32,d32;e17,f17,e18,f18,

,e32,f32;g17,h17,g18,h18,

,g32,h32;j17,0,j18,0,

,j32,0];
‑‑‑‑‑
(9)。7.根据权利要求6所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在
于,所述步骤S2中,所述做卷积的特征图中的3
×
3个深度的数据,如数据(7);所述组成5组深度数据,如数据(10):数据结构为:[ax1,bx1,ax2,bx2,

,ax16,bx16,ax17,bx17,

,ax32,bx32][cx1,dx1,cx2,dx2,

,cx16,dx16,cx17,dx17,

,cx32,dx32][ex1,fx1,ex2,fx2,

,ex16,fx16,ex17,fx17,

,ex32,fx32][gx1,hx1,gx2,hx2,

,gx16,hx16,gx17,hx17,

,gx32,hx32][jx1,0,jx2,0,

,jx16,0,jx17,0,

,jx32,0]
‑‑‑‑‑
(10)。8.根据权利要求2所述的一种基于4bit到6bit的独立卷积3
×
3的设计方法,其特征在于,所述步骤S3,提前到卷积核存储中,将数据顺序调整好,存成使用需要的顺序的整个实现如下:simd类型变量寄存器:sum_0,sum_1;in_value0,in_value1,in_value2,in_value3,in_value4,in_value5,in_value6,in_value7,in_value8,in_value9;in_0,in_1,in_2,in_3,in_4,in_5,in_6,in_7,in_8,in_9;in_value,cvft_0,cvft_1,cvft_2,cvft_3,cvft_4,cvft_5,cvft_6,cvft_7,cvft_8,cvft_9;stride为步长;in_data为输入的特征图数据;input_height为输入的特征图数据的高;input_width为输...

【专利技术属性】
技术研发人员:田凤彬于晓静
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

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

1