System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 矩阵乘运算电路及方法技术_技高网

矩阵乘运算电路及方法技术

技术编号:42159946 阅读:3 留言:0更新日期:2024-07-27 00:10
本申请提供一种矩阵乘运算电路及方法,该电路包括:IO芯粒,与IO芯粒连接、存储待计算的目标矩阵数据的存储器,以及与IO芯粒连接且与IO芯粒共同部署在目标芯片上的多个AI计算芯粒;IO芯粒包括矩阵乘实时分块模组,矩阵乘实时分块模组基于目标矩阵数据的计算任务信息和目标芯片运行时的当前芯片参数信息确定最优分块策略,根据最优分块策略和多个AI计算芯粒分别对应的权重确定各AI计算芯粒的分块任务信息;AI计算芯粒基于分块任务信息获取矩阵分块数据并通过计算输出局部计算结果;多个AI计算芯粒输出的局部计算结果组合为矩阵乘结果。本申请可有效提高矩阵乘运算的运算效率,解决离线静态矩阵切块策略的局限性。

【技术实现步骤摘要】

本申请涉及电路设计,尤其涉及一种矩阵乘运算电路及方法


技术介绍

1、矩阵乘计算是人工智能(artificial intelligence,ai)算法的基础,被广泛应用于图像识别、自然语言处理、语音识别、推荐系统等领域。矩阵乘计算作为ai算法计算时间的主要组成部分,也是专用ai加速器性能优化的焦点。

2、矩阵是由行和列组成的二维数据结构,图1展示了一个典型矩阵乘计算的示意,尺寸为(m,k)的a矩阵乘以尺寸为(k,n)的b矩阵,得到尺寸为(m,n)的c矩阵。

3、随着数据规模的增加与计算需求的提高,为提高计算效率,矩阵分块技术开始得到广泛应用,即,将矩阵乘运算任务进行拆解分块,分发至不同计算资源,再对分块计算结果进行整合,从而得到最终结果。

4、图2a展示了一种切块方法示例,其在m维度将矩阵切分为若干块,并分别与b矩阵相乘,得到对应c矩阵的局部,拼接后即得到完整的c矩阵。类似地,图2b、图2c分别展示了在n维度、k维度上进行切块计算的方式,其中在k维度切分将产生多个与c矩阵尺寸相同的中间结果,累加可得最终结果。在实际应用中,计算策略可以是上述基础策略的组合,或不进行分块(任务尺寸较小时)。

5、当前图形处理器(graphics processing unit,gpu)、中央处理器(centralprocessing unit,cpu)、ai加速芯片等矩阵分块策略主要依赖编译器静态离线进行判断,图3a、3b分别展示了典型gpu与基于多芯粒的ai加速器的典型结构。矩阵分块策略依赖编译器静态离线判断的优点在于实现简单,但在诸如多芯粒加速器等复杂片上系统中,难以根据运行时不同计算资源与通信资源的状态实时调整策略,容易造成资源浪费与效率下降。


技术实现思路

1、鉴于上述问题,本申请实施例提供一种克服上述问题或者至少部分地解决上述问题的矩阵乘运算电路及方法。

2、第一方面,本申请实施例提供了一种矩阵乘运算电路,包括:输入输出io芯粒、存储器以及多个人工智能ai计算芯粒,所述io芯粒与多个ai计算芯粒部署在目标芯片上,所述io芯粒与所述存储器、所述多个ai计算芯粒连接,所述存储器存储待计算的目标矩阵数据;

3、所述io芯粒包括矩阵乘实时分块模组,所述矩阵乘实时分块模组基于所述目标矩阵数据的计算任务信息和所述目标芯片运行时的当前芯片参数信息确定最优分块策略,根据所述最优分块策略和所述多个ai计算芯粒分别对应的权重确定所述多个ai计算芯粒分别匹配的分块任务信息;

4、所述ai计算芯粒基于匹配的分块任务信息、通过所述io芯粒从所述存储器获取矩阵分块数据,对所述矩阵分块数据进行计算输出局部计算结果;其中,所述多个ai计算芯粒分别输出的局部计算结果组合为所述目标矩阵数据对应的矩阵乘结果。

5、第二方面,本申请实施例提供了一种矩阵乘运算方法,应用于输入输出io芯粒,包括:

6、基于待计算的目标矩阵数据的计算任务信息和目标芯片运行时的当前芯片参数信息确定最优分块策略,所述io芯粒和与所述io芯粒连接的多个ai计算芯粒部署在所述目标芯片上;

7、根据所述最优分块策略和所述多个ai计算芯粒分别对应的权重,确定所述多个ai计算芯粒分别匹配的分块任务信息;

8、将所述多个ai计算芯粒分别匹配的分块任务信息发送至所述多个ai计算芯粒;

9、接收所述多个ai计算芯粒分别反馈的、基于匹配的矩阵分块数据计算得到的局部计算结果,将多个所述局部计算结果组合为所述目标矩阵数据对应的矩阵乘结果;

10、其中,所述ai计算芯粒匹配的矩阵分块数据由所述ai计算芯粒基于匹配的分块任务信息从所述目标矩阵数据中确定。

11、本申请实施例技术方案,基于目标矩阵数据的计算任务信息和目标芯片运行时的当前芯片参数信息确定最优分块策略,根据最优分块策略和多个ai计算芯粒的权重确定多个ai计算芯粒分别匹配的分块任务信息,由ai计算芯粒基于分块任务信息进行分块运算,在获取多个ai计算芯粒分别对应的局部计算结果后进行组合得到矩阵乘运算结果,可以实现根据运行时芯片实时状态计算出最优分块方法,有效提高矩阵乘运算的计算效率,解决离线静态矩阵切块策略的局限性,减轻了编译器开销,使得编译器无需再进行底层任务切分;且通过考量ai计算芯粒的权重,借助最优分块策略和ai计算芯粒的权重进行矩阵分割,可以有效避免由于某些ai计算芯粒计算任务重、某些ai计算芯粒计算任务轻等负载不均衡现象导致的需要全局等待造成的资源浪费情况;进一步地,本申请提供的矩阵乘运算电路面积、功耗开销小,易于集成与实现。

本文档来自技高网...

【技术保护点】

1.一种矩阵乘运算电路,其特征在于,包括:输入输出IO芯粒、存储器以及多个人工智能AI计算芯粒,所述IO芯粒与多个AI计算芯粒部署在目标芯片上,所述IO芯粒与所述存储器、所述多个AI计算芯粒连接,所述存储器存储待计算的目标矩阵数据;

2.根据权利要求1所述的矩阵乘运算电路,其特征在于,所述矩阵乘实时分块模组包括:代价计算模块、矩阵分块模块以及AI配置模块;

3.根据权利要求2所述的矩阵乘运算电路,其特征在于,所述计算任务信息包括第一矩阵和第二矩阵对应的矩阵尺寸信息,所述第一矩阵和所述第二矩阵为所述目标矩阵数据对应的待相乘矩阵;所述当前芯片参数信息包括与通信资源相关的第一芯片参数信息和与计算能力相关的第二芯片参数信息。

4.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述代价计算模块包括决策器以及P个策略代价子模块,每个策略代价子模块对应一矩阵分块策略,所述策略代价子模块包括通信代价单元、计算代价单元以及代价合并单元;

5.根据权利要求4所述的矩阵乘运算电路,其特征在于,所述第一芯片参数信息包括与带宽资源、AI计算芯粒数量关联的第一芯片规格信息以及与通信负载关联的第一芯片状态信息;

6.根据权利要求5所述的矩阵乘运算电路,其特征在于,所述第一芯片规格信息包括表征所述AI计算芯粒与所述IO芯粒之间的连接带宽的芯粒带宽信息;

7.根据权利要求4所述的矩阵乘运算电路,其特征在于,所述代价合并单元采用预设策略、基于所述通信时间代价和所述计算时间代价确定所述策略代价;

8.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述计算任务信息还包括:所述第一矩阵和所述第二矩阵对应的矩阵存储地址以及结果存放地址;

9.根据权利要求8所述的矩阵乘运算电路,其特征在于,所述AI计算芯粒基于所述分块存储地址从所述存储器获取矩阵分块数据;

10.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述矩阵分块模块包括级联的多个芯粒任务尺寸子模块,所述多个芯粒任务尺寸子模块与所述多个AI计算芯粒一一对应,所述芯粒任务尺寸子模块包括M、K、N维度分别对应的分块尺寸计算单元;

11.根据权利要求10所述的矩阵乘运算电路,其特征在于,所述分块尺寸计算单元包括:选择器;

12.根据权利要求11所述的矩阵乘运算电路,其特征在于,对于级联的多个芯粒任务尺寸子模块,前级芯粒任务尺寸子模块在X维度对应的分块尺寸计算单元与后级芯粒任务尺寸子模块在X维度对应的分块尺寸计算单元连接;

13.根据权利要求12所述的矩阵乘运算电路,其特征在于,若所述分块尺寸计算单元不与最后一个AI计算芯粒匹配,所述第一参数为所述第一整数,所述第一整数基于所述第二参数与当前AI计算芯粒对应权重的乘积向下取整确定;

14.根据权利要求11所述的矩阵乘运算电路,其特征在于,

15.根据权利要求1至14任一项所述的矩阵乘运算电路,其特征在于,所述IO芯粒还包括:与所述矩阵乘实时分块模组连接的通信总线以及与所述通信总线连接的多个芯粒互连接口;

16.根据权利要求1至14任一项所述的矩阵乘运算电路,其特征在于,所述矩阵乘运算电路还包括:与所述IO芯粒连接的目标设备,所述目标设备将所述目标矩阵数据经所述IO芯粒传输至所述存储器,将所述目标矩阵数据的计算任务信息发送至所述IO芯粒的矩阵乘实时分块模组。

17.一种矩阵乘运算方法,应用于输入输出IO芯粒,其特征在于,包括:

18.根据权利要求17所述的方法,其特征在于,所述基于待计算的目标矩阵数据的计算任务信息和目标芯片运行时的当前芯片参数信息确定最优分块策略,包括:

19.根据权利要求18所述的方法,其特征在于,所述计算任务信息包括第一矩阵和第二矩阵对应的矩阵尺寸信息,所述第一矩阵和所述第二矩阵为所述目标矩阵数据对应的待相乘矩阵;所述当前芯片参数信息包括与通信资源相关的第一芯片参数信息和与计算能力相关的第二芯片参数信息;

20.根据权利要求19所述的方法,其特征在于,所述第一芯片参数信息包括与带宽资源、AI计算芯粒数量关联的第一芯片规格信息以及与通信负载关联的第一芯片状态信息,所述第一芯片规格信息包括表征所述AI计算芯粒与所述IO芯粒之间的连接带宽的芯粒带宽信息;所述第二芯片参数信息包括与AI计算芯粒峰值算力、AI计算芯粒数量关联的第二芯片规格信息以及与AI计算芯粒负载关联的第二芯片状态信息;

21.根据权利要求17所述的方法,其特征在于,所述根据所述最优分块策略和所述多个AI计算芯粒分别对应的权重,确定所述多个AI计算芯...

【技术特征摘要】

1.一种矩阵乘运算电路,其特征在于,包括:输入输出io芯粒、存储器以及多个人工智能ai计算芯粒,所述io芯粒与多个ai计算芯粒部署在目标芯片上,所述io芯粒与所述存储器、所述多个ai计算芯粒连接,所述存储器存储待计算的目标矩阵数据;

2.根据权利要求1所述的矩阵乘运算电路,其特征在于,所述矩阵乘实时分块模组包括:代价计算模块、矩阵分块模块以及ai配置模块;

3.根据权利要求2所述的矩阵乘运算电路,其特征在于,所述计算任务信息包括第一矩阵和第二矩阵对应的矩阵尺寸信息,所述第一矩阵和所述第二矩阵为所述目标矩阵数据对应的待相乘矩阵;所述当前芯片参数信息包括与通信资源相关的第一芯片参数信息和与计算能力相关的第二芯片参数信息。

4.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述代价计算模块包括决策器以及p个策略代价子模块,每个策略代价子模块对应一矩阵分块策略,所述策略代价子模块包括通信代价单元、计算代价单元以及代价合并单元;

5.根据权利要求4所述的矩阵乘运算电路,其特征在于,所述第一芯片参数信息包括与带宽资源、ai计算芯粒数量关联的第一芯片规格信息以及与通信负载关联的第一芯片状态信息;

6.根据权利要求5所述的矩阵乘运算电路,其特征在于,所述第一芯片规格信息包括表征所述ai计算芯粒与所述io芯粒之间的连接带宽的芯粒带宽信息;

7.根据权利要求4所述的矩阵乘运算电路,其特征在于,所述代价合并单元采用预设策略、基于所述通信时间代价和所述计算时间代价确定所述策略代价;

8.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述计算任务信息还包括:所述第一矩阵和所述第二矩阵对应的矩阵存储地址以及结果存放地址;

9.根据权利要求8所述的矩阵乘运算电路,其特征在于,所述ai计算芯粒基于所述分块存储地址从所述存储器获取矩阵分块数据;

10.根据权利要求3所述的矩阵乘运算电路,其特征在于,所述矩阵分块模块包括级联的多个芯粒任务尺寸子模块,所述多个芯粒任务尺寸子模块与所述多个ai计算芯粒一一对应,所述芯粒任务尺寸子模块包括m、k、n维度分别对应的分块尺寸计算单元;

11.根据权利要求10所述的矩阵乘运算电路,其特征在于,所述分块尺寸计算单元包括:选择器;

12.根据权利要...

【专利技术属性】
技术研发人员:方绍峡原钢
申请(专利权)人:原粒北京半导体技术有限公司
类型:发明
国别省市:

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

1