计算装置、方法及相关产品与流程
本披露一般涉及计算机领域。具体地,本披露涉及一种计算装置、方法及相关产品。更具体地,本披露涉及一种计算装置、芯片、板卡、利用计算装置执行depthwise卷积运算的方法及计算机可读存储介质。
背景技术:
1、神经网络是人工智能、深度学习中最为关键的技术之一,其中卷积神经网络(convolution neural network,cnn)又是最为重要的一种网络类型。卷积神经网络中最为关键的计算即为卷积层(conv layer)的卷积运算(convolution operation)。卷积层的功能是对输入数据进行特征提取,通过多层卷积,能够抽取复杂特征,以保证网络具有足够的表达能力和泛化能力。神经网络模型中包含了大量的、各种类型的卷积运算,卷积运算的计算性能极大地影响整个神经网络模型的计算性能。
2、通常,卷积等深度学习核心算子在 ai 芯片上具有计算密集、访存频繁的特点,为满足高吞吐与低时延的执行需求,底层计算单元往往需要具备高度的数据并行处理能力。单指令多数据(single instruction multiple data,simd)作为一种并行计算架构,其使用多个运算单元同时执行同一条指令,单个指令作用于多个数据,从而实现对多个数据的并行处理,提高程序的运行速度。simd 架构通过单条指令同时对多路数据执行相同运算,在指令级并行层面提供了较高的计算效率。
3、然而,与以线程为并行粒度的单指令多线程(single instruction multiplethreads,simt)架构不同,simd的并行性完全依赖于向量寄存器宽度和指令所覆盖的数据规模,其运算单元通常更加轻量,缺乏线程级调度与掩码隐藏机制。因此,在实际执行过程中,若单条 simd 指令所参与运算的数据量不足,或各运算通道负载不均,将导致计算资源利用率显著下降,难以发挥硬件的峰值性能。
4、基于上述特点,在高吞吐计算场景下,simd加速实现需要在算法层面对数据布局与计算过程进行系统性设计,使得每次simd指令能够尽可能多地参与有效数据计算,并在各并行通道之间实现负载均衡,从而充分释放指令级并行带来的性能优势。
5、depthwise卷积是轻量化神经网络中常用的卷积方式,相较于传统的卷积,其具有参数量少、计算量低等优点。simd/simt加速平台上对通用的卷积计算做了硬件支持,有对应的卷积计算原语,但是depthwise卷积在通道维度不做融合,卷积计算原语只能发挥出1/64的有效算力。为了避免浪费计算带宽,尝试使用向量乘加和向量累加的simd指令来实现卷积计算。
6、然而,如前面所提到的,simd的并行性完全依赖于向量寄存器宽度和指令所覆盖的数据规模,若单条 simd 指令所参与运算的数据量不足,或各运算通道负载不均,将导致计算资源利用率显著下降,难以发挥硬件的峰值性能。这一现象在 depthwise 卷积算子中尤为常见,属于由网络结构特性引入的结构性瓶颈。
7、有鉴于此,亟需提供一种面向simd指令架构的depthwise卷积运算的实现方案,使其能够充分利用计算资源,避免算力浪费,大幅度提升depthwise卷积的运算性能。
技术实现思路
1、为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了一种计算装置、芯片、板卡、利用计算装置执行depthwise卷积运算的方法及计算机可读存储介质。
2、在第一方面中,本披露提供一种计算装置,配置用于执行depthwise卷积运算,包括存储电路、控制电路和运算电路,其中:所述存储电路配置用于存储输入张量x、权值张量k和输出张量y;所述控制电路配置用于按如下控制所述depthwise卷积运算:确定输出张量y的向量化长度,其中所述向量化长度支持在n、h、w、c、m维度上、按照内存加载顺序从内到外的顺序取任意个维度进行向量化,其中n是批次维度,h是高度维度,w是宽度维度,c是通道维度,m是通道重复因子维度;以及遍历权值张量k的空间维度kh和kw上的每个权值点(kh,kw),其中kh是权值高度维度,kw是权值宽度维度,kh和kw是权值点的索引,调用simd指令以执行权值点向量与对应的输入张量之间的向量运算并累加向量运算结果,以得到输出张量y;所述运算电路配置用于在所述控制电路的控制下执行所述simd指令。
3、在第二方面中,本披露提供一种芯片,包括第一方面所述的计算装置。
4、在第三方面中,本披露提供一种板卡,包括第二方面所述的芯片。
5、在第四方面中,本披露提供一种利用第一方面所述的计算装置执行depthwise卷积运算的方法。
6、在第五方面中,本披露提供一种利用计算装置执行depthwise卷积运算的方法,包括:遍历权值张量k的空间维度kh和kw上的每个权值点(kh,kw),确定输出张量y的向量化长度,其中所述向量化长度支持在n、h、w、c、m维度上、按照内存加载顺序从内到外的顺序取任意个维度进行向量化,其中n是批次维度,h是高度维度,w是宽度维度,c是通道维度,m是通道重复因子维度;确定对应的输入张量的范围;调用simd指令以执行权值点向量与对应的输入张量之间的向量运算,得到向量运算结果,其中kh是权值高度维度,kw是权值宽度维度,kh和kw是权值点的索引;以及控制各个权值点运算得到的向量运算结果的按位置累加,得到输出张量y。
7、在第六方面中,本披露提供一种计算装置,包括:处理器,其配置用于执行程序指令;以及存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述计算装置执行根据前述第五方面所述的方法。
8、在第七方面中,本披露提供了一种计算机可读存储介质,其中存储有程序指令,所述程序指令适于由处理器加载并执行本披露第五方面的方法。
9、根据如上所提供的执行depthwise卷积运算的方案,通过以权值张量(卷积核kernel)的空间维度(kh和kw维度)为主导展开卷积运算,在固定权值点(kernel点)的情况下,将输出张量在n、h、w、c、m多个维度上展开计算,使得理论上的向量化长度可扩展至n×h×w×c×m。通常情况下,特征图(神经元)的空间尺寸远大于卷积核尺寸,因此本披露实施例的方案能够显著提升可用向量长度,大幅提高simd指令的利用率。本披露实施例的上述以及其他优点将从后面的具体实施部分的描述中变得易于理解。
1.一种计算装置,配置用于执行depthwise卷积运算,包括存储电路、控制电路和运算电路,其中:
2. 根据权利要求1所述的计算装置,其中,所述控制电路进一步配置用于按如下控制depthwise卷积运算:
3.根据权利要求2所述的计算装置,其中,所述控制电路进一步配置用于按如下确定输出张量y的向量化长度:
4. 根据权利要求2-3任一所述的计算装置,其中,所述控制电路进一步配置用于按如下确定对应的输入张量的范围:
5.根据权利要求4所述的计算装置,其中,所述控制电路进一步配置用于按如下确定对应的输入张量的范围:
6.根据权利要求2-5任一所述的计算装置,其中,所述控制电路进一步配置用于按如下调用simd指令:
7.根据权利要求2-6任一所述的计算装置,其中,所述控制电路进一步配置用于按如下调用simd指令:
8.根据权利要求2-7任一所述的计算装置,其中,所述存储电路还配置有缓存区,用于存放缓存张量t,所述缓存张量t与所述输入张量x在h和/或w维度上的坐标索引之间存在线性映射关系,所述缓存张量t与所述输出张量y在h和/或w维度上的坐标索引之间存在平移关系,所述控制电路进一步配置用于按如下控制向量运算结果的按位置累加:
9.根据权利要求8所述的计算装置,其中,所述控制电路进一步配置用于按如下控制以得到输出张量y:
10.根据权利要求8-9任一所述的计算装置,其中,在遍历权值张量k时,所述控制电路进一步配置用于按如下控制计算过程:
11.根据权利要求8-9任一所述的计算装置,其中,在遍历权值张量k时,所述控制电路进一步配置用于按如下控制计算过程:
12. 根据权利要求11所述的计算装置,其中,当所述depthwise卷积的w维度的步长为1时,所述控制电路进一步配置用于:
13.根据权利要求11所述的计算装置,其中,当所述depthwise卷积的w维度的步长大于1时,所述控制电路进一步配置用于:
14.根据权利要求13所述的计算装置,其中,
15.根据权利要求14所述的计算装置,其中,所述控制电路进一步配置用于:
16.根据权利要求15所述的计算装置,其中,所述分组基数是使得成立的最小整数。
17. 根据权利要求8-9任一所述的计算装置,其中,在遍历权值张量k时,所述控制电路进一步配置用于按如下控制计算过程:
18.根据权利要求17所述的计算装置,其中,当所述depthwise卷积的w维度和h维度的步长和均为1时,所述控制电路进一步配置用于:
19.根据权利要求18所述的计算装置,其中,所述控制电路进一步配置用于按如下控制拷贝对应的输入张量x为包含多个数据行的一连续向量:
20.根据权利要求18-19任一所述的计算装置,其中,所述整型掩码在对应无效数据的位置的值为0,其余位置的值为1。
21.根据权利要求18-20任一所述的计算装置,其中,所述控制电路进一步配置用于:
22.根据权利要求17所述的计算装置,其中,当所述depthwise卷积的w维度和h维度的步长和任一大于1时,所述控制电路进一步配置用于:
23.根据权利要求22所述的计算装置,其中,
24.根据权利要求23所述的计算装置,其中,所述控制电路进一步配置用于:
25.根据权利要求24所述的计算装置,其中,分组基数是使得成立的最小整数;分组基数是使得成立的最小整数。
26.根据权利要求24-25任一所述的计算装置,其中,
27.一种芯片,包括根据权利要求1-26任一所述的计算装置。
28.一种板卡,包括根据权利要求27所述的芯片。
29.一种利用权利要求1-26任一所述的计算装置执行depthwise卷积运算的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com