System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 网络模型处理方法、装置及系统制造方法及图纸_技高网

网络模型处理方法、装置及系统制造方法及图纸

技术编号:41258852 阅读:2 留言:0更新日期:2024-05-11 09:17
本申请涉及一种网络模型处理方法、装置及系统,涉及网络模型领域。该方法包括:获取网络模型,该网络模型包括按照预设顺序连接的多个算子;对该多个算子进行编译,得到按照预设顺序连接的多个内核代码,该多个算子与该多个内核代码一一对应,该多个内核代码中的每个内核代码中包含地址指示信息,地址指示信息用于指示对应的内核代码的执行数据的存储地址。通过编译时在多个内核代码中写入地址指示信息,减小执行时主机需要发送的参数的大小,从而减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

【技术实现步骤摘要】

本申请涉及网络模型领域,尤其涉及网络模型处理方法、装置及系统


技术介绍

1、使用硬件加速器运行网络模型可以减轻中央处理器(central processing unit,cpu)的运行负荷,使计算机执行性能提升。网络模型通常具有较多的算子(operator,op),每个算子在编译后生成内核代码,计算机通过执行内核代码,从而执行算子所代表的网络模型运算步骤。主机将多个内核代码发送给硬件加速器执行时,还需要发送每个内核代码对应的参数。硬件加速器处理内核代码对应的参数,然后,根据内核代码对应的参数执行内核代码。因此,现有技术存在:主机向硬件加速器发送内核代码对应的参数时的带宽开销大、硬件加速器处理内核代码对应的参数的头开销大等问题。


技术实现思路

1、本申请提供一种网络模型处理方法、装置及系统,解决了现有技术中存在的:主机向硬件加速器发送内核代码对应的参数时的带宽开销大、硬件加速器处理内核代码对应的参数的头开销大的问题。

2、为达到上述目的,本申请采用如下技术方案:

3、第一方面,提供一种网络模型处理方法,该方法包括:获取包括按照预设顺序连接的多个算子的网络模型。对该多个算子进行编译,得到按照预设顺序连接的多个内核代码,该多个算子与该多个内核代码一一对应,该多个内核代码中的每个内核代码中包含地址指示信息,地址指示信息用于指示对应的内核代码的执行数据的存储地址。

4、上述技术方案中,通过编译时在多个内核代码中写入地址指示信息,也就是,将原本的内核代码的执行数据的地址参数折叠在内核代码中,来指示对应的内核代码的执行数据的存储地址。如此,使主机无需再向硬件加速器发送内核代码的执行数据的地址参数,从而减小主机需要发送的参数的大小。因此,可以减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

5、在第一方面的一种可能的实现方式中,地址指示信息包含偏移地址,存储地址是根据基地址和偏移地址确定的。上述可能的实现方式中,通过地址指示信息中的偏移地址确定存储地址,为减小主机向硬件加速器发送的参数的大小提供基础,从而减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

6、在第一方面的一种可能的实现方式中,该多个内核代码包括在预设顺序中位于首位的第一内核代码,第一内核代码的执行数据包括第一输出数据,第一内核代码中的地址指示信息用于指示第一输出数据的存储地址。该多个内核代码还包括在预设顺序中位于末位的第二内核代码,第二内核代码的执行数据包括第一输入数据,第二内核代码中的地址指示信息用于指示第一输入数据的存储地址。上述可能的实现方式中,将指示第一输出数据的存储地址的地址指示信息写入第一内核代码,将指示第一输入数据的存储地址的地址指示信息写入第二内核代码。也就是,将原本的内核代码的执行数据的地址参数折叠在内核代码中,从而减小主机需要向硬件加速器发送的参数的大小。因此,可以减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

7、在第一方面的一种可能的实现方式中,该多个内核代码还包括位于第一内核代码与第二内核代码之间的第三内核代码,第三内核代码的执行数据包括第二输入数据和第二输出数据,第三内核代码中的地址指示信息用于指示第二输入数据的存储地址和第二输出数据的存储地址。上述可能的实现方式中,通过编译时将指示第二输入数据和第二输出数据的存储地址的地址指示信息,写入第三内核代码,减小主机需要向硬件加速器发送的参数的大小。因此,可以减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

8、在第一方面的一种可能的实现方式中,该方法还包括:若多个内核代码中存在至少两个内核代码对应的硬件加速器的类型相同,则拼接至少两个内核代码,得到包括该至少两个内核代码的超级内核代码。上述可能的实现方式中,超级内核代码包括的至少两个内核代码的执行数据的地址参数被折叠在对应的内核代码中。也就是,主机向硬件加速器发送超级内核代码时,无需发送执行数据的地址参数,可以减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。进一步地,通过将至少两个内核代码拼接成一个超级内核代码,在执行时,原本需要发送至少两次内核代码,现在只需发送一次超级内核代码,从而可以减小主机发送内核代码到硬件加速器上的头开销。再者,将至少两个内核代码拼接成一个超级内核代码,不改变该至少两个内核代码的内容,无需满足内核代码对应的算子在数学逻辑上可以融合等预设条件或预设特性就可以实现,因此,适用范围较大,泛化性较高。

9、在第一方面的一种可能的实现方式中,该至少两个内核代码满足以下至少一项:该至少两个内核代码在对应的硬件加速器中占用的逻辑资源的数量相同,该至少两个内核代码在该多个内核代码中连续。上述可能的实现方式中,将在对应的硬件加速器中占用的逻辑资源的数量相同的至少两个内核代码进行拼接,可以最大化地利用硬件加速器的内核,提升网络模型的执行效率。将在该多个内核代码中连续的至少两个内核代码进行拼接,可以提升网络模型的执行效率。

10、第二方面,提供一种网络模型处理方法,该方法包括:获取目标内核代码,目标内核代码为网络模型对应的按照预设顺序连接的多个内核代码中的内核代码,目标内核代码中包含地址指示信息,地址指示信息用于指示对应的目标内核代码的执行数据的存储地址。根据存储地址执行目标内核代码。

11、上述技术方案中,目标内核代码中包含地址指示信息,硬件加速器接收到主机发送的目标内核代码时,可以得到目标内核代码的执行数据的存储地址。如此,主机无需再向硬件加速器发送内核代码的执行数据的地址参数,从而减小主机需要发送的参数的大小。因此,可以减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

12、在第二方面的一种可能的实现方式中,地址指示信息包含偏移地址,该方法包括:获取基地址,根据基地址和偏移地址,确定存储地址。上述可能的实现方式中,每个目标内核代码的执行数据的基地址相同,一个硬件加速器只需要获取一次基地址,结合目标内核代码中的地址指示信息,就可以得到多个目标内核代码的执行数据的存储地址,为减小主机向硬件加速器发送的参数的大小提供基础。从而减小主机向硬件加速器发送内核代码对应的参数时的带宽开销,以及硬件加速器处理内核代码对应的参数的头开销。

13、在第二方面的一种可能的实现方式中,若该多个内核代码包括在预设顺序中位于首位的第一内核代码,且目标内核代码为第一内核代码,第一内核代码的执行数据包括第一输出数据,第一内核代码中的地址指示信息用于指示第一输出数据的存储地址,则根据存储地址执行目标内核代码,包括:执行第一内核代码,得到第一输出数据,并根据第一输出数据的存储地址存储第一输出数据。若该本文档来自技高网...

【技术保护点】

1.一种网络模型处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述地址指示信息包含偏移地址,所述存储地址是根据基地址和所述偏移地址确定的。

3.根据权利要求1至2任一项所述的方法,其特征在于,所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址;

4.根据权利要求3所述的方法,其特征在于,所述多个内核代码还包括位于所述第一内核代码与所述第二内核代码之间的第三内核代码,所述第三内核代码的执行数据包括第二输入数据和第二输出数据,所述第三内核代码中的地址指示信息用于指示所述第二输入数据的存储地址和所述第二输出数据的存储地址。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述至少两个内核代码满足以下至少一项:所述至少两个内核代码在对应的所述硬件加速器中占用的逻辑资源的数量相同,所述至少两个内核代码在所述多个内核代码中连续

7.一种网络模型处理方法,其特征在于,包括:

8.根据权利要求7所述的方法,其特征在于,所述地址指示信息包含偏移地址,所述方法包括:

9.根据权利要求7至8任一项所述的方法,其特征在于,若所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,且所述目标内核代码为所述第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址,则所述根据所述存储地址执行所述目标内核代码,包括:

10.根据权利要求9所述的方法,其特征在于,若所述多个内核代码还包括位于所述第一内核代码与所述第二内核代码之间的第三内核代码,且所述目标内核代码为所述第三内核代码,所述第三内核代码的执行数据包括第二输入数据和第二输出数据,所述第三内核代码中的地址指示信息用于指示所述第二输入数据的存储地址和所述第二输出数据的存储地址,则所述根据所述存储地址执行所述目标内核代码,包括:

11.根据权利要求7至10任一项所述的方法,其特征在于,若所述目标内核代码为超级内核代码,所述超级内核代码包括所述多个内核代码中对应的硬件加速器类型相同的至少两个内核代码,则所述超级内核代码中的每个内核代码包含地址指示信息,所述地址指示信息用于指示所述内核代码的执行数据的存储地址,所述根据所述存储地址执行所述目标内核代码,包括:

12.根据权利要求11所述的方法,其特征在于,所述超级内核代码中的每个内核代码满足以下至少一项:所述超级内核代码中的每个内核代码在对应的所述硬件加速器中占用的逻辑资源数量相同,所述超级内核代码中的每个内核代码在所述多个内核代码中连续。

13.一种网络模型处理装置,其特征在于,包括:

14.根据权利要求13所述的装置,其特征在于,所述地址指示信息包含偏移地址,所述存储地址是根据基地址和所述偏移地址确定的。

15.根据权利要求13至14任一项所述的装置,其特征在于,所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址;

16.根据权利要求15所述的装置,其特征在于,所述多个内核代码还包括位于所述第一内核代码与所述第二内核代码之间的第三内核代码,所述第三内核代码的执行数据包括第二输入数据和第二输出数据,所述第三内核代码中的地址指示信息用于指示所述第二输入数据的存储地址和所述第二输出数据的存储地址。

17.根据权利要求13至16任一项所述的装置,其特征在于,所述装置还包括:

18.根据权利要求17所述的装置,其特征在于,所述至少两个内核代码满足以下至少一项:所述至少两个内核代码在对应的所述硬件加速器中占用的逻辑资源的数量相同,所述至少两个内核代码在所述多个内核代码中连续。

19.一种网络模型处理装置,其特征在于,包括:

20.根据权利要求19所述的装置,其特征在于,所述地址指示信息包含偏移地址,所述装置还包括:

21.根据权利要求19至20任一项所述的装置,其特征在于,若所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,且所述目标内核代码为所述第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址,则所述执行单元用于:

22.根据权利要求...

【技术特征摘要】

1.一种网络模型处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述地址指示信息包含偏移地址,所述存储地址是根据基地址和所述偏移地址确定的。

3.根据权利要求1至2任一项所述的方法,其特征在于,所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址;

4.根据权利要求3所述的方法,其特征在于,所述多个内核代码还包括位于所述第一内核代码与所述第二内核代码之间的第三内核代码,所述第三内核代码的执行数据包括第二输入数据和第二输出数据,所述第三内核代码中的地址指示信息用于指示所述第二输入数据的存储地址和所述第二输出数据的存储地址。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述至少两个内核代码满足以下至少一项:所述至少两个内核代码在对应的所述硬件加速器中占用的逻辑资源的数量相同,所述至少两个内核代码在所述多个内核代码中连续。

7.一种网络模型处理方法,其特征在于,包括:

8.根据权利要求7所述的方法,其特征在于,所述地址指示信息包含偏移地址,所述方法包括:

9.根据权利要求7至8任一项所述的方法,其特征在于,若所述多个内核代码包括在所述预设顺序中位于首位的第一内核代码,且所述目标内核代码为所述第一内核代码,所述第一内核代码的执行数据包括第一输出数据,所述第一内核代码中的地址指示信息用于指示所述第一输出数据的存储地址,则所述根据所述存储地址执行所述目标内核代码,包括:

10.根据权利要求9所述的方法,其特征在于,若所述多个内核代码还包括位于所述第一内核代码与所述第二内核代码之间的第三内核代码,且所述目标内核代码为所述第三内核代码,所述第三内核代码的执行数据包括第二输入数据和第二输出数据,所述第三内核代码中的地址指示信息用于指示所述第二输入数据的存储地址和所述第二输出数据的存储地址,则所述根据所述存储地址执行所述目标内核代码,包括:

11.根据权利要求7至10任一项所述的方法,其特征在于,若所述目标内核代码为超级内核代码,所述超级内核代码包括所述多个内核代码中对应的硬件加速器类型相同的至少两个内核代码,则所述超级内核代码中的每个内核代码包含地址指示信息,所述地址指示信息用于指示所述内核代码的执行数据的存储地址,所述根据所述存储地址执行所述目标内核代码,包括:

12.根据权利要求11所述的方法,其特征在于,所述超级内核代码中的每个内核代码满足以下至少一项:所述超级内核代码中的每个内核代码在对应的所述硬件加速器中占用的逻辑资源数量相同,所述超级内核代码中的每个内核代码在所述多个内核代码中连续。

13.一种网络模型处理装置,其特征在于,包括:

14.根据权利要求13所述的装置,其特征在于,所述地址指示信息包含偏移地址,所述存储地址是根据基地址和所述偏移地址确定的。

15.根据权利要求13至14任一项所述的装置,其特征在于...

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

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

1