[发明专利]用于双稀疏卷积处理和并行化的方法和系统在审
申请号: | 202080101977.6 | 申请日: | 2020-06-12 |
公开(公告)号: | CN116261736A | 公开(公告)日: | 2023-06-13 |
发明(设计)人: | 严恩勖;芦勇;王维;肖志斌;刘嘉超;熊恒昌 | 申请(专利权)人: | 墨芯国际有限公司 |
主分类号: | G06N3/082 | 分类号: | G06N3/082;G06N3/0464 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 南霆 |
地址: | 中国香港新蒲岗六合*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 稀疏 卷积 处理 并行 方法 系统 | ||
1.一种计算机实现的方法,包括:
获得输入张量和与所述输入张量共享多个通道的多个过滤器;
将所述多个通道划分为多个通道组;
根据所述多个通道组,将所述输入张量分割成多个子张量,并将所述多个过滤器分割成多个子过滤器组;
将由所述子张量和所述子过滤器组构成的多个组合分别分配给多个处理器,其中,所述多个组合中的每个组合包括对应于同一通道组的子张量和子过滤器组;
由所述多个处理器中的每个处理器在一个或多个第一索引-值对中存储分配的组合中的所述子张量的一个或多个非零值,以及在一个或多个第二索引-值对中存储分配的组合中的所述子过滤器组的一个或多个非零值;
由所述多个处理器并行地执行基于所述第一索引-值对和所述第二索引-值对的乘法和累加(MAC)操作,以获得多个输出;以及
将所述多个输出汇总为输出张量。
2.根据权利要求1所述的方法,其中,所述将所述多个过滤器分割成多个子过滤器组包括:
将所述多个过滤器分组为多个过滤器组;
根据所述多个通道组,将所述多个过滤器中的每个过滤器分割成多个子过滤器;以及
将同一过滤器组和同一通道组的所述子过滤器确定作为子过滤器组。
3.根据权利要求1所述的方法,其中,所述多个通道组中的每个通道组包括所述多个子张量中的一个或多个,并且所述多个子张量中的每个子张量与识别所述子张量在所述子张量所在的通道组中的位置的标识符相关联,并且
所述方法进一步包括:
将与所述多个通道组中的相同标识符相关联的子张量存储到输入缓存中,其中,所述输入缓存由所述多个处理器中的一个或多个共享。
4.根据权利要求1所述的方法,其中,不存储所述分配的组合中的所述子张量和所述子过滤器组的零值。
5.根据权利要求1所述的方法,其中,所述将所述分配的组合中的子张量的一个或多个非零值存储为一个或多个第一索引-值对包括:
识别所述子张量中的一个或多个非零输入值;
对于所述一个或多个非零输入值中的每个非零输入值:
确定与所述非零输入值所在的通道相对应的通道标识符;以及
将所述通道标识符和所述非零输入值存储为第一索引-值对。
6.根据权利要求1所述的方法,其中,所述将所述分配的组合中的子过滤器组的一个或多个非零值存储为一个或多个第二索引-值对包括:
识别所述子过滤器组中的一个或多个非零权重;
对于所述一个或多个非零权重中的每个权重:
确定与所述非零权重所在的通道相对应的通道标识符;以及
将所述通道标识符和所述非零权重存储为第二索引-值对。
7.根据权利要求1所述的方法,其中,所述将所述分配的组合中的子过滤器组的一个或多个非零值存储为一个或多个第二索引-值对包括:
识别所述子过滤器组中的一个或多个非零权重;
对于所述一个或多个非零权重中的每个权重:
确定与所述非零权重所在的通道相对应的通道标识符;
确定与所述非零权重所属的核相对应的核标识符;以及在按所述通道标识符索引的权重缓冲器头中存储指针,所述指针指向存储在权重缓冲器阵列中的第二索引-值对,其中,所述第二索引-值对包括所述非零权重并按所述核标识符索引。
8.根据权利要求1所述的方法,其中,所述将由所述子张量和所述子过滤器组构成的多个组合分别分配给多个处理器包括:
进行一次或多次迭代的并行处理,每次迭代包括:
确定由所述子张量和所述子过滤器组构成的多个组合,其中,所述多个组合分别对应于多个通道组;以及
分别将所述多个组合送入多个处理器以生成多个点积。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于墨芯国际有限公司,未经墨芯国际有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080101977.6/1.html,转载请声明来源钻瓜专利网。