当前位置:主页 > 科技论文 > 计算机论文 >

面向飞腾多核处理器的Winograd快速卷积算法优化

发布时间:2021-06-26 15:15
  随着深度学习的快速发展,卷积神经网络已广泛应用于计算机视觉、自然语言处理等人工智能领域中.Winograd快速卷积算法因能有效降低卷积神经网络中卷积操作的计算复杂度而受到广泛关注.随着国防科技大学自主研制的飞腾多核处理器在智能领域的推广应用,对面向飞腾多核处理器的高性能卷积实现提出了强烈需求.针对飞腾多核处理器的体系结构特征与Wingorad快速卷积算法的计算特点,提出了一种高性能并行Winograd快速卷积算法.该算法不依赖通用矩阵乘库函数,由卷积核转换、输入特征图转换、逐元素乘、输出特征图逆变换等4个部分构成,融合设计了4个部分的数据操作,并设计了与之配套的数据布局、多级并行数据转换算法与多级并行矩阵乘算法,实现访存性能以及算法整体性能的提升.在两款飞腾多核处理器上的测试结果显示,与开源库ACL和NNPACK中的Winograd快速卷积实现相比,该算法分别能获得1.05~16.11倍与1.66~16.90倍的性能加速;集成到开源框架Mxnet后,该算法使得VGG16网络的前向计算获得了3.01~6.79倍的性能加速. 

【文章来源】:计算机研究与发展. 2020,57(06)北大核心EICSCD

【文章页数】:12 页

【部分图文】:

面向飞腾多核处理器的Winograd快速卷积算法优化


不同版本Mxnet之间的性能加速比

特征图,算法,特征图,逆转换


z=ATuA→z=AT(ATuT)T.(10)根据上述分析,本文基于式(7)~(10)提出了基于scatter与packing为一体的数据转换算法,卷积核转换、输入特征图转换以及输出特征图逆转换分别如算法2中行①~(11)、行(12)~(24)、行(39)~(53)所示.

矩阵图,矩阵,算法


在逐元素乘部分,实质上是执行δ2个矩阵大小分别为K×C与C×(B×Γ×Λ)的实数矩阵乘.从并行计算的角度来看,可以从δ2,K以及B×Γ×Λ等3个维度进行并行处理.在飞腾多核处理器中,即可利用单核中的向量单元进行数据级并行计算,也可利用多个核心进行线程级并行处理.为有效开发飞腾多核处理器的计算潜力,需要在向量数据级并行与多核线程级并行之间进行权衡设计.同时考虑到矩阵是由数据转换过程中采用scatter方式构建的,以及还将基于矩阵乘的结果采用gather方式构建输出特征图逆变换的输入小矩阵u,本文提出了如算法2中行(25)~(38)所示的矩阵乘实现.本文选择采用向量单元来同时计算S个矩阵乘.由于飞腾多核处理器的片上存储通常至少依次由寄存器、一级缓存和二级缓存等层次构成,本文也通过矩阵分块的方式来提升每一层次的数据重用性.矩阵G,D和U分别被划分成大小为Cl1×Kr×S的子矩阵 g ? 、大小为Cl1×Br×S的子矩阵 d ? 以及大小为Br×Kr×S的子矩阵 u ? . 每个子矩阵 u ? 的计算方法为

【参考文献】:
期刊论文
[1]基于Intel平台的Winograd快速卷积算法研究与优化[J]. 武铮,安虹,金旭,迟孟贤,吕国锋,文可,周鑫.  计算机研究与发展. 2019(04)



本文编号:3251580

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3251580.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户28a8f***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com