一种矩阵计算的方法、系统及编译器技术方案

技术编号:35764130 阅读:26 留言:0更新日期:2022-12-01 13:59
本申请公开了一种矩阵计算的方法、系统及编译器。该方法应用于矩阵计算的系统,该系统包括编译器和至少一个矩阵计算的硬件;该方法包括:编译器获取矩阵计算的源代码,源代码包括导语以及矩阵计算任务,导语用于指示生成所述矩阵计算任务的文件;编译器获取矩阵计算任务的编译类型;编译器根据编译类型从上述硬件中确定执行矩阵计算任务的目标硬件;编译器生成用于目标硬件执行矩阵计算任务的文件,并将该文件发送至目标硬件;目标硬件根据该文件执行矩阵计算任务。通过上述方法,用户可以选择硬件的编译类型,通过导语指示编译器生成目标硬件执行矩阵计算任务的文件,不必再由用户进行手动编程,降低了人工成本,有助于大规模的产品性能提升。产品性能提升。产品性能提升。

【技术实现步骤摘要】
一种矩阵计算的方法、系统及编译器


[0001]本申请涉及计算机领域,尤其涉及一种矩阵计算的方法、系统及编译器。

技术介绍

[0002]目前在高性能计算领域中,大量应用均涉及矩阵相乘等计算过程,为了进一步提高芯片的矩阵计算能力,各大芯片厂家提供了各种矩阵计算加速卡,从而提高芯片的浮点能力(即实数运算能力)。
[0003]虽然各种芯片厂家研发了配套使用的加速卡以提高芯片的矩阵计算能力,但在使用时,仍需要编程人员手动编程以实现调用加速卡的应用程序接口(application programming interface,API)。此外,不同厂家的加速卡所采用的编译类型也有所不同,进一步增加了编程人员编程的复杂度;而且,不同厂家的加速卡对矩阵计算的算法逻辑也不相同,为了使得各种加速卡能够配合使用,可能还需要编程人员对加速卡中原有的矩阵计算的算法代码进行替换。
[0004]目前,上述工作由编程人员人工编程以实现对各种加速卡进行调度的过程,工作繁琐、耗时长,且容易出错,不利于大规模生产。

技术实现思路

[0005]本申请实施例提供一种矩阵计算的方法、系统及编译器,用于实现对矩阵加速硬件的自动编程,以简化矩阵计算中用户的操作。
[0006]第一方面,本申请实施例提供一种矩阵计算的方法,该方法可以应用于矩阵计算的系统,该矩阵计算的系统包括编译器和至少一个用于矩阵计算的硬件;具体的,该方法包括:所述编译器获取矩阵计算的源代码,所述源代码包括导语以及矩阵计算任务,所述导语用于指示生成所述矩阵计算任务的文件;所述编译器获取所述矩阵计算任务的编译类型;所述编译器根据所述编译类型从所述至少一个用于矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件;所述编译器根据所述导语生成所述矩阵计算任务的文件,并将所述文件发送至所述目标硬件;所述目标硬件根据所述文件执行所述矩阵计算任务。
[0007]在本申请上述实施例中,编译器能够根据编译类型确定用于执行矩阵计算任务的硬件,从而自动根据该编译类型生成能够使得该硬件执行矩阵计算任务的文件。上述方案,为用户提供了便捷、普适的应用,因为用户只需要通过导语指示编译器生成目标硬件执行矩阵计算任务的文件,以及通过编译选项选择硬件的编译类型,例如选择A厂商提供的编译类型或B厂商提供编译类型。矩阵计算任务的编译类型确定之后,编译器即可自动根据用户的设置自动生成所需的文件,不必再由用户进行手动编程,简化了用户操作,降低了人工学习成本、时间成本,有助于大规模的产品性能提升。
[0008]在一种可能的实现方式中,所述编译器根据所述编译类型从所述至少一个矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件,包括:所述编译器根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件;或者,所述导语
包括用于指示执行所述矩阵计算任务的硬件的指示信息,所述编译器根据所述指示信息和所述编译类型确定用于执行所述矩阵计算任务的目标硬件。在上述实现方式中,用户可以通过导语指定用于执行矩阵计算任务的目标硬件,以满足用户特定需求;在用户没有特定需要的情况下,用户也可以不指定,由编译器根据预设的策略自动选择执行矩阵计算任务的目标硬件,从而简化用户操作,实现矩阵计算。
[0009]在一种可能的实现方式中,所述编译器根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件,包括:所述编译器根据每个满足所述编译类型的硬件的计算能力和/或当前负载,从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的硬件。在上述实现方式中,编译器可以根据各个硬件的计算能力以及当前的负载选择目标硬件,从而使得选择出的目标硬件既有足够的计算能力以执行矩阵计算任务,又避免负载不均衡导致系统计算效率不高的问题。
[0010]在一种可能的实现方式中,所述执行所述矩阵计算任务的硬件,包括主机或与所述主机连接的硬件。在本申请实施例中,用户可以通过导语指定由主机执行矩阵计算任务,也可以指定与主机连接的其他硬件执行矩阵计算任务;或者,编译器也可以根据预设的测量选择由主机或与主机连接的硬件执行矩阵计算任务。
[0011]在一种可能的实现方式中,所述硬件包括以下一种或多种:加速卡,图形处理器(graphics processing unit,GPU),神经网络处理器(neural

network processing unit,NPU),张量处理单元(tensor processing unit,TPU)。
[0012]在一种可能的实现方式中,所述导语基于共享存储并行编程(open multi

processing,OpenMP)或并行编程模型OpenACC实现。OpenMP提供了对并行算法的高层的抽象描述,编程人员通过在源代码中加入导语来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。OpenACC是一种用户驱动的、基于指令的、性能可移植的并行编程模型,与OpenMP类似,也可以通过添加导语指示编译器。
[0013]第二方面,本申请实施例提供一种矩阵计算系统,包括编译器和至少一个用于矩阵计算的硬件;所述编译器,用于获取矩阵计算的源代码,所述源代码包括导语以及矩阵计算任务,所述导语用于指示生成所述矩阵计算任务的文件;获取所述矩阵计算任务的编译类型;根据所述编译类型从所述至少一个用于矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件;根据所述导语生成所述矩阵计算任务的文件,并将所述文件发送至所述目标硬件;所述目标硬件根据所述文件执行所述矩阵计算任务。
[0014]在一种可能的实现方式中,所述编译器,在根据所述编译类型从所述至少一个矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件时,具体用于:根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件;或者,所述导语包括用于指示执行所述矩阵计算任务的硬件的指示信息,根据所述指示信息和所述编译类型确定用于执行所述矩阵计算任务的目标硬件。
[0015]在一种可能的实现方式中,所述编译器,在根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件时,具体用于:根据每个满足所述编译类型的硬件的计算能力和/或当前负载,从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的硬件。
[0016]在一种可能的实现方式中,所述执行所述矩阵计算任务的硬件,包括主机或与所
述主机连接的硬件。
[0017]在一种可能的实现方式中,所述硬件包括以下一种或多种:加速卡,图形处理器GPU,神经网络处理器NPU,张量处理单元TPU。
[0018]在一种可能的实现方式中,所述导语基于OpenMP或OpenACC实现。
[0019]在一种可能的实现方式中,所述系统还包括代码库,或者,所述编译器包括代码库;所述代码库,存储有至少两种编译类型对应的程序代码;所述编译器,在根据所述导语生成用于所述硬件执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种矩阵计算的方法,其特征在于,应用于矩阵计算的系统,所述系统包括编译器和至少一个用于矩阵计算的硬件;所述方法包括:所述编译器获取矩阵计算的源代码,所述源代码包括导语以及矩阵计算任务,所述导语用于指示生成所述矩阵计算任务的文件;所述编译器获取所述矩阵计算任务的编译类型;所述编译器根据所述编译类型从所述至少一个用于矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件;所述编译器根据所述导语生成所述矩阵计算任务的文件,并将所述文件发送至所述目标硬件;所述目标硬件根据所述文件执行所述矩阵计算任务。2.根据权利要求1所述的方法,其特征在于,所述编译器根据所述编译类型从所述至少一个矩阵计算的硬件中确定执行所述矩阵计算任务的目标硬件,包括:所述编译器根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件;或者所述导语包括用于指示执行所述矩阵计算任务的硬件的指示信息,所述编译器根据所述指示信息和所述编译类型确定用于执行所述矩阵计算任务的目标硬件。3.根据权利要求2所述的方法,其特征在于,所述编译器根据预设的策略从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的目标硬件,包括:所述编译器根据每个满足所述编译类型的硬件的计算能力和/或当前负载,从满足所述编译类型的硬件中选择用于执行所述矩阵计算任务的硬件。4.根据权利要求1

3任一项所述的方法,其特征在于,所述执行所述矩阵计算任务的硬件,包括主机或与所述主机连接的硬件。5.根据权利要求1

4任一项所述的方法,其特征在于,所述硬件包括以下一种或多种:加速卡,图形处理器GPU,神经网络处理器NPU,张量处理单元TPU。6.根据权利要求1

4任一项所述的方法,其特征在于,所述导语基于OpenMP或OpenACC实现。7.一种矩阵计算系统,其特征在于,包括编译器和至...

【专利技术属性】
技术研发人员:许利霞郭海涛郑卫炎杨仲凯季晨鹏刘洪广
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1