当前位置: 首页 > 专利查询>英特尔公司专利>正文

使用列折叠和挤压的稀疏矩阵的矩阵乘法加速制造技术

技术编号:22975129 阅读:49 留言:0更新日期:2019-12-31 23:35
所公开的实施例涉及使用列折叠和挤压的稀疏矩阵乘法(SMM)加速。在一个示例中,处理器响应于具有用于指定第一矩阵、第二矩阵和输出矩阵的位置的字段的SMM指令而使用执行电路系统通过利用尚待处理的非零元素替换一个或多个零值元素来紧缩所述第二矩阵,所述第二矩阵是稀疏矩阵,被替换的元素中的每个元素进一步包括用于标识其在所述第二矩阵内的逻辑位置的字段,并且所述执行电路系统进一步用于:针对所指定的第一矩阵的行M和列K处的每个非零元素,生成所述元素与所紧缩的第二矩阵的行K列N处的每个相应非零元素的乘积,并且将每个所生成的乘积与所指定输出矩阵的行M和列N处的相应元素的前一值进行累加。

Matrix multiplication acceleration of sparse matrix using column folding and squashing

【技术实现步骤摘要】
使用列折叠和挤压的稀疏矩阵的矩阵乘法加速
本专利技术的领域总体上涉及计算机处理器架构,并且更具体地涉及使用列折叠和挤压的稀疏矩阵的矩阵乘法加速。
技术介绍
当今许多用于神经网络的硬件加速器主要以密集格式执行矩阵乘法,而不考虑在一个(或两个)矩阵中存在大量零的事实。这引入了硬件资源的低效使用(与0相乘)和功率浪费。当今用于训练和推理两者的神经网络的硬件加速器都在争取实现最佳的原始性能数值和功率与性能的比值。在这些神经网络中利用原生和注入的稀疏度是在这场竞争中取得领先地位的一种方式。比如深度神经网络等机器学习架构已经应用于包括计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学和药物设计等领域。矩阵乘法是包括机器学习在内的许多算法的关键性能/功率限制项。一些常规矩阵乘法方法是专用的,例如它们缺乏使用宽累加器来支持各种数据格式(有符号和无符号8b/16b整数、16b浮点)的灵活性、以及支持密集矩阵和稀疏矩阵两者的灵活性。本文要解决的问题是通过在输入数据集中存在稀疏度的情况下(稀疏矩阵本文档来自技高网...

【技术保护点】
1.一种用于执行稀疏矩阵乘法(SMM)指令的处理器,所述处理器包括:/n取出和解码电路系统,用于取出具有用于指定第一矩阵、第二矩阵和输出矩阵的位置的字段的SMM指令并对其进行解码,所述第二矩阵是稀疏矩阵,所述取出电路系统进一步用于将所述第一矩阵的元素和所述第二矩阵的元素从其位置取出并存储到寄存器堆中;以及/n执行电路系统,响应于经解码的SMM指令而通过利用尚待处理的非零元素替换一个或多个零值元素来紧缩存储在所述寄存器堆中的所述第二矩阵,被替换的元素中的每个元素进一步包括用于标识其在所述第二矩阵内的逻辑位置的字段,并且所述执行电路系统进一步用于:针对所述第一矩阵的行M和列K处的每个非零元素,生成...

【技术特征摘要】
20180622 US 16/016,2781.一种用于执行稀疏矩阵乘法(SMM)指令的处理器,所述处理器包括:
取出和解码电路系统,用于取出具有用于指定第一矩阵、第二矩阵和输出矩阵的位置的字段的SMM指令并对其进行解码,所述第二矩阵是稀疏矩阵,所述取出电路系统进一步用于将所述第一矩阵的元素和所述第二矩阵的元素从其位置取出并存储到寄存器堆中;以及
执行电路系统,响应于经解码的SMM指令而通过利用尚待处理的非零元素替换一个或多个零值元素来紧缩存储在所述寄存器堆中的所述第二矩阵,被替换的元素中的每个元素进一步包括用于标识其在所述第二矩阵内的逻辑位置的字段,并且所述执行电路系统进一步用于:针对所述第一矩阵的行M和列K处的每个非零元素,生成所述非零元素与所紧缩的第二矩阵的行K和列N处的每个相应非零元素的乘积,并且将每个所生成的乘积与所述输出矩阵的行M和列N处的相应元素的前一值进行累加。


2.如权利要求1所述的处理器,其中,针对所述第二矩阵的每个行K,所述执行电路系统用于判定所述行是否包含任何零值元素,并且如果是,则判定所述行是否包含尚待从所述零值元素处进行处理的任何非零元素,并且如果是,则针对具有尚待处理的非零元素的每个零值元素,将所述非零元素折叠到所述零值元素中。


3.如权利要求1所述的处理器,其中,针对所述第二矩阵的每个列N,所述执行电路系统用于判定所述列是否包含任何零值元素,并且如果是,则判定后一列的P个元素中的任何一个是否是非零值,并且针对所述后一列中具有非零元素的每个零值元素,将所述非零元素挤压到所述零值元素中。


4.如权利要求1所述的处理器,其中,存储在所述寄存器堆中的所述元素中的每个元素包括用于指定其是否具有零值的字段,并且其中,所述执行电路系统将在判定所述元素是否具有零值时使用所述字段。


5.如权利要求1至4中任一项所述的处理器,其中,所述执行电路系统用于避免生成具有零值的元素的任何乘积。


6.如权利要求1至4中任一项所述的处理器,其中,所述执行电路系统包括具有(X×Y)个处理单元的处理阵列,其中,X小于M且Y小于N,所述执行电路系统在多个时钟周期上迭代地使用所述处理阵列以执行与具有(M×N)个处理单元的实际物理阵列相同的处理。


7.如权利要求1至4中任一项所述的处理器,其中,所述执行电路系统包括具有(X×Y)个处理单元的处理阵列,其中,X小于M且Y小于N,所述执行电路系统用于级联所述处理阵列的多个实例以执行与具有(M×N)个处理单元的实际物理阵列相同的处理。


8.一种用于执行稀疏矩阵乘法(SMM)指令的系统,所述系统包括:
存储器;
取出和解码电路系统,用于取出具有用于指定第一矩阵、第二矩阵和输出矩阵的位置的字段的SMM指令并对其进行解码,所述第二矩阵是稀疏矩阵,所述取出电路系统进一步用于将所述第一矩阵的元素和所述第二矩阵的元素从所述存储器取出并存储到寄存器堆中;以及
执行电路系统,响应于经解码的SMM指令而通过利用尚待处理的非零元素替换一个或多个零值元素来紧缩存储在所述寄存器堆中的所述第二矩阵,被替换的元素中的每个元素进一步包括用于标识其在所述第二矩阵内的逻辑位置的字段,并且所述执行电路系统进一步用于:针对所述第一矩阵的行M和列K处的每个非零元素,生成所述非零元素与所紧缩的第二矩阵的行K和列N处的每个相应非零元素的乘积,并且将每个所生成的乘积与所述输出矩阵的行M和列N处的相应元素的前一值进行累加。


9.如权利要求8所述的系统,其中,针对所述第二矩阵的每个行K,所述执行电路系统用于判定所述行是否包含任何零值元素,并且如果是,则判定所述行是否包含尚待从所述零值元素处进行处理的任何非零元素,并且如果是,则针对具有尚待处理...

【专利技术属性】
技术研发人员:O·阿齐滋G·布杜赫T·沃纳A·杨M·罗特辛C·科伦E·努维塔蒂
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1