System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种矩阵计算方法、芯片以及相关设备技术_技高网

一种矩阵计算方法、芯片以及相关设备技术

技术编号:43785660 阅读:17 留言:0更新日期:2024-12-24 16:19
本申请提供一种矩阵计算方法、芯片及相关设备;该芯片包括第一缓存器、第二缓存器、调度模块和处理元件;第一缓存器用于缓存第一向量,第二缓存器用于缓存第二向量;调度模块根据第一向量的位图生成选通信号,选通信号能够使处理元件从第一缓存器中获取第一向量中的一组非零元素,使处理元件从第二缓存器中获取第二向量中的一组元素;然后根据第一向量中的一组非零元素和第二向量中的一组元素进行第一向量和第二向量的运算,其中,第一向量的位图用于指示第一向量中的非零元素。通过本申请提供的芯片进行两个向量的运算时,能够使一个向量中值为0的元素不参与计算,从而能够在降低计算量,提高计算效率。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种矩阵计算方法、芯片以及相关设备


技术介绍

1、当前人工智能(artificial intelligence,ai)、高性能计算(high performancecomputing,hpc)等领域中,会涉及大量的矩阵乘法运算,例如ai模型训练、ai推理等场景。为了加快计算速度,提高计算效率,通常是通过剪枝技术对矩阵进行稀疏化,然后使用稀疏化后的矩阵进行计算,从而降低计算过程中的计算量。例如在ai训练完成后,将训练后的权重矩阵进行结构化剪枝完成权重矩阵的稀疏化,在ai推理时采用结构化剪枝后的权重矩阵进行推理。但是上述方法只支持对一个确定的矩阵进行剪枝后,使用剪枝后的矩阵进行计算,不支持计算过程中矩阵稀疏程度动态变化的场景。


技术实现思路

1、本申请提供一种矩阵计算方法、芯片以及相关设备,能够支持稀疏程度动态变化的矩阵的计算,降低计算中的计算量,提高计算效率的同时,不降低计算的精度。

2、第一方面,本申请提供一种芯片,该芯片包括:第一缓存器、第二缓存器、第一调度模块和第一处理元件,其中,第一缓存器用于缓存第一向量;第二缓存器用于缓存第二向量;第一调度模块用于根据第一向量的位图生成第一选通信号,该第一选通信号能够使第一处理元件从第一缓存器中获取第一向量中的第一组非零元素,使第一处理元件从第二缓存器中获取第二向量中的第二组元素;第一处理元件用于根据第一向量中的第一组非零元素和第二向量中的第二组元素实现第一向量和所述第二向量的运算,其中,第一向量的位图指示第一向量中的非零元素。

3、第一向量的位图中每个比特位对应第一向量中的一个元素,每个比特位的值指示第一向量中对应元素是否为0。例如一个比特位的值为0,则表示第一向量中对应的元素的值为0,如果一个比特位的值为1,则表示第一向量中对应的元素的值不为0。第一调度模块能够根据第一向量的位图确定第一向量中的哪些元素是非零元素,从而使第一处理元件能够只获取第一向量中的非零元素,然后从第二向量中获取对应位置的元素,执行第一向量和第二向量之间的运算,从而能够降低计算量,提高计算效率。并且在进行向量的点积的过程中,一个向量中元素值为0的元素与另一个向量中非零元素相乘值为0,不会影响两个向量进行点积的结果,因此只获取第一向量中的非零元素进行第一向量和第二向量的运算,不会降低计算精度。

4、在一种可能的实现方式中,上述芯片还包括第一复用器和第二复用器;第一复用器用于根据第一选通信号从第一缓存器中获取上述第一向量中的第一组非零元素,并输入第一处理元件;第二复用器用于根据第一选通信号从第二缓存器中获取上述第二向量中的第二组元素,并输入第一处理元件。

5、在一种可能的实现方式中,上述第一复用器和第二复用器各自包括k个多路复用器;第一缓存器和第二缓存器各自包括w行k列数据单元,每个数据单元用于缓存一个向量或者矩阵中的元素;第一复用器中的每个多路复用器与第一缓存器中的多个数据单元连接,且每个数据单元至少与一个多路复用器连接;第二复用器中的第i个多路复用器与第二缓存器中数据单元的连接关系,与第一复用器中的第i个多路复用器与第一缓存器中数据单元的连接关系相同。

6、第一向量与第二向量的运算中,第一向量的第r个元素与第二向量的第r个元素需要做乘法运算,在将第一向量的各个元素存入第一缓存器以及将第二向量的各个元素存入第二缓存器中时,第一向量中的第r个元素存入的第一缓存器的相对位置和第二向量中的第r个元素存入第二缓存器的相对位置相同。例如,将第一向量的第r个元素存入第一缓存器的第1行的第r个数据单元,将第二向量的第r个元素存入第二缓存器的第1行的第r个数据单元中。同时,第一复用器中的第i个多路复用器连接了第一缓存器中的多个数据单元。这多个数据单元在第一缓存器中的相对位置,与第二复用器中的第i个多路复用器连接的第二缓存器中的多个数据单元在第二缓存器中的相对位置相同。例如,第一复用器中第i个多路复用器连接了第一缓存器中第一行的第2个数据单元和第二行的第5个数据单元,则第二复用器中第i个多路复用器连接第二缓存器中第一行的第2个数据单元和第二行的第5个数据单元。这样能够使第一复用器的第i个多路复用器与第二复用器的第i个多路复用器根据同一个选通信号,读取的是第一缓存器和第二缓存器中相对位置相同的数据单元中的数据,使第一复用器和第二复用器根据相同的选通信号读取的正好是第一向量和第二向量中需要进行乘法运算的元素。

7、在一种可能的实现方式中,上述第一调度模块具体用于:根据第一向量的位图确定第一复用器的第j个多路复用器连接的数据单元中,第k个数据单元存储的元素为非零元素,则第一调度模块生成第一复用器的第j个多路复用器的选通信号,将第一复用器的第j个多路复用器的选通信号发送给第一复用器的第j个多路复用器和第二复用器的第j个多路复用器,上述第一选通信号包括第一复用器的第j个多路复用器的选通信号。

8、第一复用器包括k个多路复用器,则第一调度模块在一个周期内生成这k个多路复用器各自对应的选通信号,即第一选通信号包括这k个多路复用器各自对应的选通信号。以使第一复用器和第二复用器中各个多路复用器根据接收到的选通信号分别从连接的数据单元中读取一个数据;

9、上述一个多路复用器所连接的多个数据单元具有不同的优先级,第一调度模块在生成一个多路复用器的选通信号之前,先根据第一向量的位图确定该多路复用器连接的数据单元中,优先级最高的数据单元中存储的第一向量的元素是否是0。如果优先级最高的数据单元中存储的元素不是0,则生成该优先级第一的数据单元对应的选通信号;如果优先级最高的数据单元中存储的元素是0,则再根据第一向量的位图确定优先级第二的数据单元中存储的元素是否为0,如果优先级第二的数据单元中存储的元素不为0,则生成优先级第二的数据单元对应的选通信号,如果优先级第二的数据单元中存储的元素是0,则再根据第一向量的位图确定优先级第三的数据单元中存储的元素是否为0,以此类推,直至生成该多路复用器的选通信号。通过设置优先级,能够有序的读取各个多路复用器连接的多个数据单元中的元素。

10、需要说明的是,第一调度模块在确定一个数据单元中存储的元素不为0,并生成该数据单元对应的选通信号之后,需要将该数据单元存储的元素在位图中对应的比特位置为0,以防止该数据单元中的元素再次被读取,导致计算错误。

11、在一种可能的实现方式中,第一复用器具体用于:根据第一复用器的第j个多路复用器的选通信号,通过第一复用器的第j个多路复用器获取第一复用器的第j个多路复用器连接的数据单元中第k个数据单元中的第一元素,并将第一元素输入到第一处理元件,该第一元素是上述第一组非零元素中的一个;第二复用器具体用于:根据上述第一复用器的第j个多路复用器的选通信号,通过第二复用器的第j个多路复用器,获取第二复用器的第j个多路复用器连接的数据单元中第k个数据单元中的第二元素,并将第二元素输入到第一处理元件,该第二元素是上述第二组元素中的一个。

本文档来自技高网...

【技术保护点】

1.一种芯片,其特征在于,包括第一缓存器、第二缓存器、第一调度模块和第一处理元件,

2.根据权利要求1所述的芯片,其特征在于,所述芯片还包括第一复用器和第二复用器;

3.根据权利要求2所述的芯片,其特征在于,所述第一复用器包括K个多路复用器,所述第二复用器包括K个多路复用器;所述第一缓存器和所述第二缓存器均包括W行K列数据单元,每个数据单元用于缓存一个元素;

4.根据权利要求3所述的芯片,其特征在于,所述第一调度模块具体用于:

5.根据权利要求4所述的芯片,其特征在于,

6.根据权利要求1-5任一项所述的芯片,其特征在于,所述第一调度模块还用于在实现所述第一向量和所述第二向量之间的运算后,生成擦除信号,所述擦除信号用于指示所述第一缓存器和所述第二缓存器擦除当前缓存的数据。

7.根据权利要求4或5所述的芯片,其特征在于,所述第一向量属于第一矩阵中的任意一行,所述第二向量属于第二矩阵中的任意一列。

8.根据权利要求7所述的芯片,其特征在于,所述芯片还包括第三缓存器和第二处理元件;其中,

9.根据权利要求8所述的芯片,其特征在于,所述芯片还包括第三复用器,用于根据所述第一选通信号从第三缓存器中获取所述第三向量中的所述第三组元素,并输入所述第二处理元件。

10.根据权利要求9所述的芯片,其特征在于,所述第三复用器包括K个多路复用器,所述第三缓存器包括W行K列数据单元,每个数据单元用于缓存一个元素;所述第三复用器中的第i个多路复用器与所述第三缓存器中数据单元的连接关系,和所述第一复用器中的第i个多路复用器与所述第一缓存器中数据单元的连接关系相同。

11.根据权利要求10所述的芯片,其特征在于,所述第三复用器具体用于:根据所述第一复用器的第j个多路复用器的选通信号,通过所述第三复用器的第j个多路复用器,获取所述第三复用器的第j个多路复用器连接的数据单元中第k个数据单元中的第三元素,并将所述第三元素输入到所述第二处理元件,所述第三元素是所述第三组元素中的一个。

12.根据权利要求7-11任一项所述的芯片,其特征在于,所述芯片还包括第四缓存器、第二调度模块和第三处理元件;其中,

13.根据权利要求12所述的芯片,其特征在于,所述芯片还包括第四复用器和第五复用器,

14.根据权利要求13所述的芯片,其特征在于,所述第四复用器包括K个多路复用器,所述第五复用器包括K个多路复用器;所述第四缓存器包括W行K列数据单元,每个数据单元用于缓存一个元素;

15.根据权利要求14所述的芯片,其特征在于,所述第二调度模块具体用于:

16.根据权利要求15所述的芯片,其特征在于,

17.一种矩阵计算方法,其特征在于,应用于芯片,包括:

18.根据权利要求17所述的方法,其特征在于,所述芯片还包括第一复用器和第二复用器;所述方法还包括:

19.根据权利要求18所述的方法,其特征在于,所述第一复用器包括K个多路复用器,所述第二复用器包括K个多路复用器;所述第一缓存器和所述第二缓存器均包括W行K列数据单元,每个数据单元用于缓存一个元素;

20.根据权利要求19所述的方法,其特征在于,所述芯片的第一调度模块根据第一向量的位图生成第一选通信号,包括:

21.根据权利要求20所述的方法,其特征在于,所述芯片的所述第一复用器根据所述第一选通信号从所述第一缓存器中获取所述第一向量中的所述第一组非零元素,并输入所述第一处理元件,所述芯片的所述第二复用器根据所述第一选通信号从所述第二缓存器中获取所述第二向量中的所述第二组元素,并输入所述第一处理元件,包括:

22.根据权利要求17-21任一项所述的方法,其特征在于,所述芯片的所述第一处理元件根据所述第一组非零元素和所述第二组元素实现所述第一向量和所述第二向量之间的运算之后,还包括:

23.根据权利要求20或21所述的方法,其特征在于,所述第一向量属于第一矩阵中的任意一行,所述第二向量属于第二矩阵中的任意一列。

24.根据权利要求23所述的方法,其特征在于,所述芯片还包括第三缓存器和第二处理元件;所述方法还包括:

25.根据权利要求24所述的方法,其特征在于,所述芯片还包括第三复用器,所述方法还包括:

26.根据权利要求25所述的方法,其特征在于,所述第三复用器包括K个多路复用器,所述第三缓存器包括W行K列数据单元,每个数据单元用于缓存一个元素;所述第三复用器中的第i个多路复用器与所述第三缓存器中数据单元的连接关系,和所述第一复用器中...

【技术特征摘要】

1.一种芯片,其特征在于,包括第一缓存器、第二缓存器、第一调度模块和第一处理元件,

2.根据权利要求1所述的芯片,其特征在于,所述芯片还包括第一复用器和第二复用器;

3.根据权利要求2所述的芯片,其特征在于,所述第一复用器包括k个多路复用器,所述第二复用器包括k个多路复用器;所述第一缓存器和所述第二缓存器均包括w行k列数据单元,每个数据单元用于缓存一个元素;

4.根据权利要求3所述的芯片,其特征在于,所述第一调度模块具体用于:

5.根据权利要求4所述的芯片,其特征在于,

6.根据权利要求1-5任一项所述的芯片,其特征在于,所述第一调度模块还用于在实现所述第一向量和所述第二向量之间的运算后,生成擦除信号,所述擦除信号用于指示所述第一缓存器和所述第二缓存器擦除当前缓存的数据。

7.根据权利要求4或5所述的芯片,其特征在于,所述第一向量属于第一矩阵中的任意一行,所述第二向量属于第二矩阵中的任意一列。

8.根据权利要求7所述的芯片,其特征在于,所述芯片还包括第三缓存器和第二处理元件;其中,

9.根据权利要求8所述的芯片,其特征在于,所述芯片还包括第三复用器,用于根据所述第一选通信号从第三缓存器中获取所述第三向量中的所述第三组元素,并输入所述第二处理元件。

10.根据权利要求9所述的芯片,其特征在于,所述第三复用器包括k个多路复用器,所述第三缓存器包括w行k列数据单元,每个数据单元用于缓存一个元素;所述第三复用器中的第i个多路复用器与所述第三缓存器中数据单元的连接关系,和所述第一复用器中的第i个多路复用器与所述第一缓存器中数据单元的连接关系相同。

11.根据权利要求10所述的芯片,其特征在于,所述第三复用器具体用于:根据所述第一复用器的第j个多路复用器的选通信号,通过所述第三复用器的第j个多路复用器,获取所述第三复用器的第j个多路复用器连接的数据单元中第k个数据单元中的第三元素,并将所述第三元素输入到所述第二处理元件,所述第三元素是所述第三组元素中的一个。

12.根据权利要求7-11任一项所述的芯片,其特征在于,所述芯片还包括第四缓存器、第二调度模块和第三处理元件;其中,

13.根据权利要求12所述的芯片,其特征在于,所述芯片还包括第四复用器和第五复用器,

14.根据权利要求13所述的芯片,其特征在于,所述第四复用器包括k个多路复用器,所述第五复用器包括k个多路复用器;所述第四缓存器包括w行k列数据单元,每个数据单元用于缓存一个元素;

15.根据权利要求14所述的芯片,其特征在于,所述第二调度模块具体用于:

16.根据权利要求15所述的芯片,其特征在于,

17.一种矩阵计算方法,其特征在于,应用于芯片,包括:

18.根据权利要求17所述的方法,其特征在于,所述芯片还包括第一复用器和第二复用器;所述方法还包括:

19.根据权利要求18所述的方法,其特征在于,所述第一复用器包括k个多路复用器,所述第二复用器包括k个多路复用器;所述第一缓存器和所述第二缓存器均包括w行k列数据单元,每个数据单元用于缓存一个元素;

20.根据权利要求19所述的方法,其特征在于,所述芯片的第一调度模块根据第一向量的位图生成第一选通信号,包括:

21.根据权利要求20所述的方法,其特征在于,所述芯片的所述第一复用器根据所述第一选通信号从所述第一缓存器中获取所述第一向量中的所述第一组非零元素,并输入所述...

【专利技术属性】
技术研发人员:傅光宁林腾毅
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1