一种算子编译方法及装置制造方法及图纸

技术编号:32431908 阅读:16 留言:0更新日期:2022-02-24 18:47
为了解决神经网络模型执行过程中存在大量重复编译的问题,本方案提供一种算子编译方法及装置,该方法包括,第一设备获取第一算子文件;若所述第一设备根据所述第一算子文件确定所述第一设备的缓存中存储有第一执行文件,则向第二设备发送指示信息,其中,所述第一执行文件是编译所述第一算子文件得到的二进制文件,所述指示信息用于指示所述第二设备执行所述第一执行文件。所述第一执行文件。所述第一执行文件。

【技术实现步骤摘要】
一种算子编译方法及装置


[0001]本申请涉及人工智能领域,尤其涉及一种算子编译方法及装置。

技术介绍

[0002]人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,1956年由约翰
·
麦卡锡首次提出。人工智能的目的就是让机器能够像人一样思考,让机器拥有智能。时至今日,人工智能的内涵已经大大扩展,以深度强化学习及大数据为基础,由卷积神经网络模型与参数训练技巧的进步、硬件计算能力突破摩尔定律提供可观的计算能力以及互联网加上海量大数据集等多方面的因素推动,在文本分类(text classification),序列标注(sequence labeling),神经机器翻译(neural machine translation),关系抽取(relation extraction),事件抽取(event extraction),图像分类(image classification),视觉推理(visual reasoning),语义分割(semantic segmentation)等众多领域都有了一些应用。
[0003]开发者或研究人员可以设计不同的神经网络模型,比如人脸识别模型、语音识别模型等。每次执行神经网络模型的过程中,主机设备(host)需要将模型文件对应的多个算子文件中每个算子文件编译得到二进制文件,主机设备将每个算子文件对应的二进制文件发送至目标设备(device),目标设备执行每个算子文件对应的二进制文件,得到执行结果。
[0004]该方式中,每执行一次神经网络模型,主机设备都需要对模型文件对应的多个算子文件中每个算子文件编译,存在大量重复编译,编译效率低。

技术实现思路

[0005]本申请提供一种算子编译方法及装置,用于在多次调用模型或多次调用单算子中,避免重复编译,减少不必要的资源浪费,有助于提高执行模型的速度。
[0006]第一方面,本申请提供一种算子编译方法,该方法包括:
[0007]第一设备获取第一算子文件;若所述第一设备根据所述第一算子文件确定所述第一设备的缓存中存储有第一执行文件,则向第二设备发送指示信息,其中,所述第一执行文件是编译所述第一算子文件得到的二进制文件,所述指示信息用于指示所述第二设备执行所述第一执行文件。
[0008]在一种可能的实现方式中,还包括:若所述第一设备根据所述第一算子文件确定所述第一设备的缓存中未存储有所述第一执行文件,则编译所述第一算子文件得到所述第一执行文件;所述第一设备将所述第一执行文件存储于所述第一设备的缓存中,向所述第二设备发送所述指示信息。
[0009]基于该方案,第一设备获取第一算子文件,若确定第一设备的缓存中存储有第一执行文件,则不再编译该第一算子文件;若确定第一设备的缓存中未存储有第一执行文件,则编译该第一算子文件,并将得到的第一执行文件存储至第一设备的缓存中。通过上述方式,避免在多次调用模型或多次调用单算子中,第一设备重复编译模型文件中算子文件,或
重复编译单算子文件,减少不必要的资源浪费,有助于提高执行模型的速度。
[0010]在一种可能的实现方式中,所述第一设备根据所述第一算子文件确定所述第一设备的缓存中存储有第一执行文件,包括:所述第一设备确定第一算子文件的特征信息;所述第一设备根据所述第一算子文件的特征信息,确定所述第一设备的缓存中存储有所述第一执行文件。
[0011]在一种可能的实现方式中,所述第一算子文件中包括算子源代码和算子输入参数,所述第一设备确定第一算子文件的特征信息,包括:所述第一设备将所述算子源代码和所述算子输入参数拼接为字符串;所述第一设备确定所述字符串的哈希值为所述第一算子文件的特征信息。
[0012]在一种可能的实现方式中,所述第一设备的缓存中包括多个对应关系,所述多个对应关系中每个对应关系包括算子文件的特征信息和所述算子文件对应的执行文件;所述第一设备根据所述第一算子文件的特征信息,确定所述第一设备的缓存中存储有所述第一执行文件,包括:所述第一设备若确定所述多个对应关系中包括所述第一算子文件的特征信息,则确定所述第一设备的缓存中存储有所述第一执行文件。
[0013]在一种可能的实现方式中,所述方法还包括:所述第一设备将所述第一算子文件的特征信息和所述第一执行文件发送至所述第二设备的缓存中;所述第一设备向第二设备发送指示信息,包括:所述第一设备向所述第二设备发送所述指示信息和所述第一算子文件的特征信息,所述指示信息用于指示所述第二设备根据所述第一算子文件的特征信息从所述第二设备的缓存中确定所述第一执行文件,并执行所述第一执行文件。
[0014]基于该方案,第一设备向第二设备发送第一执行文件,第一设备若需要第二设备执行第一执行文件,第一设备通过指示信息向第二设备指示第一算子文件的特征信息或第一执行文件的特征信息,有助于减少第一设备和第二设备之间传输的数据量。
[0015]在一种可能的实现方式中,所述第一设备向第二设备发送指示信息,包括:所述第一设备向所述第二设备发送指示信息和所述第一执行文件。
[0016]在一种可能的实现方式中,还包括:所述第一设备接收来自所述第二设备的执行结果,所述执行结果是所述第二设备执行所述第一执行文件得到的结果。
[0017]在一种可能的实现方式中,所述第一设备获取第一算子文件之前,还包括:所述第一设备对模型文件进行解析,得到所述模型文件对应的M个第二算子文件,M大于或等于1;针对所述M个第二算子文件中每个第二算子文件,所述第一设备对所述第二算子文件进行语义分析,得到所述第二算子文件对应的至少一个中间算子文件;所述第一设备将所述至少一个中间算子文件中任一个中间算子文件确定为所述第一算子文件。
[0018]基于该方案,对第二算子文件进行语义分析得到文件粒度较小的中间算子文件,再将中间算子文件作为第一算子文件,有助于避免重复编译。
[0019]第二方面,本申请提供一种算子编译方法,该方法包括:
[0020]第二设备接收来自第一设备的指示信息和第一算子文件的特征信息;所述指示信息用于指示所述第二设备执行第一执行文件,所述第一执行文件是编译所述第一算子文件得到的二进制文件;所述第二设备根据所述第一算子文件的特征信息,从所述第二设备的缓存中确定所述第一执行文件;所述第二设备执行所述第一执行文件。
[0021]在一种可能的实现方式中,所述第二设备根据所述第一算子文件的特征信息,从
所述第二设备的缓存中确定所述第一执行文件,包括:所述第二设备根据所述第一算子文件的特征信息,从所述第二设备的缓存中确定所述第一算子文件的特征信息对应的执行文件为所述第一执行文件。
[0022]在一种可能的实现方式中,所述第二设备的缓存中包括多个对应关系,所述多个对应关系中每个对应关系包括算子文件的特征信息和所述算子文件对应的执行文件。
[0023]在一种可能的实现方式中,还包括:所述第二设备接收来自所述第一设备的所述第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种算子编译方法,其特征在于,包括:第一设备获取第一算子文件;若所述第一设备根据所述第一算子文件确定所述第一设备的缓存中存储有第一执行文件,则向第二设备发送指示信息,其中,所述第一执行文件是编译所述第一算子文件得到的二进制文件,所述指示信息用于指示所述第二设备执行所述第一执行文件。2.如权利要求1所述的方法,其特征在于,还包括:若所述第一设备根据所述第一算子文件确定所述第一设备的缓存中未存储有所述第一执行文件,则编译所述第一算子文件得到所述第一执行文件;所述第一设备将所述第一执行文件存储于所述第一设备的缓存中,向所述第二设备发送所述指示信息。3.如权利要求1或2所述的方法,其特征在于,所述第一设备根据所述第一算子文件确定所述第一设备的缓存中存储有第一执行文件,包括:所述第一设备确定第一算子文件的特征信息;所述第一设备根据所述第一算子文件的特征信息,确定所述第一设备的缓存中存储有所述第一执行文件。4.如权利要求3所述的方法,其特征在于,所述第一算子文件中包括算子源代码和算子输入参数,所述第一设备确定第一算子文件的特征信息,包括:所述第一设备将所述算子源代码和所述算子输入参数拼接为字符串;所述第一设备确定所述字符串的哈希值为所述第一算子文件的特征信息。5.如权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:所述第一设备将所述第一算子文件的特征信息和所述第一执行文件发送至所述第二设备的缓存中;所述第一设备向第二设备发送指示信息,包括:所述第一设备向所述第二设备发送所述指示信息和所述第一算子文件的特征信息,所述指示信息用于指示所述第二设备根据所述第一算子文件的特征信息从所述第二设备的缓存中确定所述第一执行文件,并执行所述第一执行文件。6.如权利要求1至4任一项所述的方法,其特征在于,所述第一设备向第二设备发送指示信息,包括:所述第一设备向所述第二设备发送指示信息和所述第一执行文件。7.如权利要求1至6任一项所述的方法,其特征在于,所述第一设备获取第一算子文件之前,还包括:所述第一设备对模型文件进行解析,得到所述模型文件对应的M个第二算子文件,M大于或等于1;针对所述M个第二算子文件中每个第二算子文件,所述第一设备对所述第二算子文件进行语义分析,得到所述第二算子文件对应的至少一个中间算子文件;所述第一设备将所述至少一个中间算子文件中任一个中间算子文件确定为所述第一算子文件。8.一种算子编译方法,其特征在于,包括:第二设备接收来自第一设备的指示信息和第一算子文件的特征信息;所述指示信息用
于指示所述第二设备执行第一执行文件,所述第一执行文件是编译所述第一算子文件得到的二进制文件;所述第二设备根据所述第一算子文件的特征信息,从所述第二设备的缓存中确定所述第一执行文件;所述第二设备执行所述第一执行文件。9.如权利要求8所述的方法,其特征在于,所述第二设备根据所述第一算子文件的特征信息,从所述第二设备的缓存中确定所述第一执行文件,包括:所述第二设备根据所述第一算子文件的特征信息,从所述第二设备的缓存中确定所述第一算子文件的特征信息对应的执行文件为所述第一执行文件。10.如权利要求8或9所述的方法,其特征在于,还包括:所述第二设备接收来自所述第一设备的所述第一算子文件的特征信息和所述第一执行文件,将所述第一算子文件的特征信息和所述第一执行文件对应存储至所述第二设备的缓存中。11.如权利要求8至10任一项所述的方法,其特征在于,所述第一算子文件中包括算子源代码和算子输入参数,所述第一算子文件的特征信息包括所述算子源代码和所述算子输入参数拼接的字符串的哈希值。12.一种算子编译装置,其特征在于,包括:获取模块用于...

【专利技术属性】
技术研发人员:何剑周斌
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1