A system and corresponding method that is configured to generate multiple output feature graphs from an input feature map. The system consists of a first input data path (IDP), a request assembly unit (RAU), and a multiplicative accumulative array (MAA). IDP transforms the first input feature map to the Winograd domain and generates the first multiple requests, where each request has the first multiple non 0 weights for the transformed weight kernel with corresponding elements. RAU receives more than one request. MAA based on the first multiple non 0 weights should be used for each input matrix of the corresponding elements, for the first output feature graph parallel generation of multiple output matrices.
【技术实现步骤摘要】
高效的稀疏并行的基于威诺格拉德的卷积方案相关申请的交叉引用本专利申请要求根据35U.S.C.119(e)条的于2016年5月31日提交的美国临时专利申请No.62/343,721和2017年5月11日提交的美国专利申请No.15/593,210的优先权权益,其公开内容通过引用全部并入本文。
本文公开的主题总地涉及卷积神经网络(convolutionalneuralnetwork,CNN),并且更具体地,涉及一种在基于Winograd(威诺格拉德)的卷积实现中有效地并行跳过0值权重的装置和方法。
技术介绍
对于网络训练期间所做的推理和反向传播,卷积运算约占执行CNN所需的计算量的90%。基于Winograd的卷积方法显著地减少了CNN中执行卷积运算所需的乘法运算次数。根据滤波器内核的大小和由Winograd变换产生的输出阵列的大小,所述减少可能在乘法运算次数的2倍到4倍之间,并且在某些情况下可能会有更大的减少。然而,乘法运算的减少的代价是将输入数据(从输入特征图读取的)变换为Winograd域(其中需要一些加法操作)时的一些开销。此外,权重内核(weightkern ...
【技术保护点】
一种方法,包括:由第一输入数据路径(IDP)单元将第一输入特征图变换到Winograd域,其中变换后的第一输入特征图包括第一多个输入矩阵,并且其中所述第一多个输入矩阵中的每个输入矩阵包括多个元素;由所述第一IDP单元生成第一多个请求,所述第一多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的第一多个非0权重;由第一请求组装单元(RAU)接收所述第一多个请求;以及由第一乘法累加阵列(MAA),基于将所述第一多个非0权重应用于每个输入矩阵的相应元素,来为第一输出特征图并行生成第一多个输出矩阵。
【技术特征摘要】
2016.05.31 US 62/343,721;2017.05.11 US 15/593,2101.一种方法,包括:由第一输入数据路径(IDP)单元将第一输入特征图变换到Winograd域,其中变换后的第一输入特征图包括第一多个输入矩阵,并且其中所述第一多个输入矩阵中的每个输入矩阵包括多个元素;由所述第一IDP单元生成第一多个请求,所述第一多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的第一多个非0权重;由第一请求组装单元(RAU)接收所述第一多个请求;以及由第一乘法累加阵列(MAA),基于将所述第一多个非0权重应用于每个输入矩阵的相应元素,来为第一输出特征图并行生成第一多个输出矩阵。2.根据权利要求1所述的方法,还包括:由所述第一IDP单元内的位置确定器确定第一变换后的权重内核中的至少一个非0值权重的位置;和其中由所述第一IDP单元生成所述第一多个请求还包括,由所述第一IDP单元向所述第一RAU提供所述第一多个请求,所述第一多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的第一多个非0权重。3.根据权利要求2所述的方法,还包括:基于0值权重的指示,由第一IDP单元跳过与所述第一变换后的权重内核中的0值权重相对应的请求。4.根据权利要求1所述的方法,还包括:由第二IDP单元将第二输入特征图变换到Winograd域,其中变换后的第二输入特征图包括第二多个输入矩阵,并且其中所述第二多个输入矩阵中的每个输入矩阵包括多个元素;由所述第二IDP单元生成第二多个请求,所述第二多个请求的每一个请求针对具有相应元素的变换后的权重内核中的第二多个非0权重;由所述第一RAU,基于处理与相应矩阵的公共位置处的元素相关联的请求,将所述第一多个请求和所述第二多个请求重新排序;和由第一MAA,基于重新排序的请求,为第一输出特征图并行生成多个输出矩阵。5.根据权利要求4所述的方法,还包括:由所述第一IDP单元向第二RAU提供第三多个请求,所述第三多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的第三多个非0权重;由所述第二IDP单元向所述第二RAU提供第四多个请求,所述第四多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的第四多个非0权重;由所述第二RAU,基于处理与在相应矩阵的公共位置处的元素相关联的请求,将所述第三多个请求和所述第四多个请求重新排序;和由第二MAA,基于重新排序的请求,为第二输出特征图并行生成第二多个输出矩阵,其中与所述第一输出特征图并行地生成所述第二输出特征图。6.根据权利要求4所述的方法,还包括:由所述第一IDP单元内的第一位置确定器来确定所述第一变换后的权重内核中的至少一个非0值权重的位置;和由所述第二IDP单元内的第二位置确定器来确定第二变换后的权重内核中的至少一个非0值权重的位置,其中由所述第一IDP单元生成所述第一多个请求还包括,由所述第一IDP单元提供所述第一多个请求到所述第一RAU,所述第一多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的所述第一多个非0权重,并且其中由所述第二IDP单元生成所述第二多个请求还包括,由所述第二IDP单元提供所述第二多个请求到所述RAU,所述第二多个请求中的每一个请求针对具有相应元素的变换后的权重内核中的所述第二多个非0权重。7.一种从输入特征图生成多个输出特征图的系统,所述系统包括:第一输...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。