本公开涉及人工智能领域,尤其涉及一种用以执行在深度可分离卷积(depthwiseseparable convolution)的电子装置,且特别涉及用以执行在深度可分离卷积中的逐通道卷积(depthwise convolution)的一种逐通道卷积装置。
背景技术:
1、深度可分离卷积(depthwise separable convolution)是一种轻量级的卷积操作。深度可分离卷积的操作过程包括逐通道卷积(depthwise convolution)和逐点卷积(pointwise convolution)两个阶段。深度可分离卷积可以有效地降低计算量和参数量,提高模型的推理速度和运行效率。假设输入特征图(feature map)的大小为h*w,输入通道数为n,卷积核的大小为k*k,以及输出通道数为m,则标准卷积的运算量为h*w*n*k2*m,参数量是n*k2*m。在同样假设条件下,对于深度可分离卷积,第一阶段(逐通道卷积)的参数量是k2*n,第二阶段(逐点卷积)的参数量是n*m(假设采用卷积核的大小为1*1)。因此,深度可分离卷积的总参数量是k2*n + n*m = n*(k2 + m)。一般情况下,n*(k2 + m)比n*k2*m要小很多。
2、深度可分离卷积和标准卷积一样,可以采用通用矩阵乘法单元(general matrixmultiplication,gemm)硬件完成计算,或通过cpu硬件完成计算,或通过gpu的向量计算单元(vector unit)硬件完成计算。目前未有专门用于实现深度可分离卷积的硬件。
技术实现思路
1、本公开提供一种逐通道卷积装置,用以执行在深度可分离卷积(depthwiseseparable convolution)运算中的第一阶段“逐通道卷积(depthwise convolution)”。
2、在根据本公开的实施例中,所述的逐通道卷积装置包括逐通道卷积控制单元、卷积核输入控制单元、特征图输入控制单元以及至少一个浮点运算单元。逐通道卷积控制单元用于执行指令调度单元所发射的逐通道卷积指令。卷积核输入控制单元耦接至逐通道卷积控制单元。逐通道卷积控制单元基于逐通道卷积指令控制卷积核输入控制单元。卷积核输入控制单元基于逐通道卷积控制单元的控制而调用卷积核。特征图输入控制单元耦接至逐通道卷积控制单元。逐通道卷积控制单元基于逐通道卷积指令控制特征图输入控制单元。特征图输入控制单元基于逐通道卷积控制单元的控制而调用特征图数据。至少一个浮点运算单元耦接至卷积核输入控制单元和特征图输入控制单元。卷积核输入控制单元将卷积核广播给所述至少一个浮点运算单元。特征图输入控制单元从特征图数据中调用对应部分矩阵元素给所述至少一个浮点运算单元中的对应浮点运算单元。所述至少一个浮点运算单元各自算出逐通道卷积结果矩阵中的至少一个结果元素。
3、基于上述,逐通道卷积装置可以是一个专门用于“对深度可分离卷积运算中的逐通道卷积阶段进行加速”的硬件。
1.一种逐通道卷积装置,包括:
2.根据权利要求1所述的逐通道卷积装置,还包括:
3.根据权利要求1所述的逐通道卷积装置,还包括:
4.根据权利要求1所述的逐通道卷积装置,其中,所述至少一个浮点运算单元包括第一浮点运算单元,所述第一浮点运算单元耦接至所述卷积核输入控制单元和所述特征图输入控制单元,所述卷积核输入控制单元将所述卷积核广播给所述第一浮点运算单元,所述特征图输入控制单元将所述特征图数据中调用第一部分矩阵给所述第一浮点运算单元,以及所述第一浮点运算单元使用所述卷积核和所述第一部分矩阵算出所述逐通道卷积结果矩阵中的第一结果元素。
5.根据权利要求4所述的逐通道卷积装置,其中,所述第一浮点运算单元包括:
6.根据权利要求4所述的逐通道卷积装置,其中,所述第一浮点运算单元包括:
7.根据权利要求1所述的逐通道卷积装置,其中,所述逐通道卷积控制单元包括:
8.根据权利要求1所述的逐通道卷积装置,其中,所述逐通道卷积装置用以执行在深度可分离卷积中的逐通道卷积。
9.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的方向包括前向卷积和反向卷积其中至少一者。
10.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的核大小包括1*1、2*2、3*3、4*4和5*5其中至少一者。
11.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的x方向填充量包括0、+1、-1、+2和-2其中至少一者。
12.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的y方向填充量包括0、+1、-1、+2和-2其中至少一者。
13.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的跨步量包括1和2其中至少一者。
14.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的扩张量包括1和2其中至少一者。
15.根据权利要求8所述的逐通道卷积装置,其中,所述逐通道卷积装置支持的所述逐通道卷积的数据类型包括fp32、fp16、fp8、int16、int8和int4其中至少一者。
