System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 指令生成方法、装置及电子设备制造方法及图纸_技高网

指令生成方法、装置及电子设备制造方法及图纸

技术编号:40963038 阅读:10 留言:0更新日期:2024-04-18 20:42
公开了一种指令生成方法、装置及电子设备,涉及集成电路技术领域,该方法包括确定数据搬运算子对应的输入内存排布方式和输出内存排布方式,以及数据搬运算子的搬运参数;基于搬运参数、输入内存排布方式、输出内存排布方式以及神经网络处理器支持的多个第一排布方式,确定将输入内存排布方式转换为输出内存排布方式所对应的多个转换路径组;基于多个转换路径组,确定目标转换路径;基于目标转换路径,生成神经网络处理器可执行的指令序列。本公开的技术方案在处理数据搬运算子时,能够从多个转换路径组中确定最优的路径作为目标转换路径,并进一步按照该目标转换路径生成神经网络处理器可执行的指令序列。

【技术实现步骤摘要】

本公开涉及集成电路,尤其涉及一种指令生成方法、装置及电子设备


技术介绍

1、由于神经网络处理器的数据存储方式与传统处理器(例如:cpu)的数据存储方式不同,这会导致在神经网络加速器上处理数据搬运算子(例如,reshape、transpose等)比在传统处理器上处理更加复杂。

2、以处理转置算子(transpose)为例,由于数据存储方式不同,相较于利用传统处理器,神经网络处理器在处理时通常会产生一些附带的变换(reorder),并且针对同一个transpose算子,神经网络处理器可以有多种处理方式。不同的处理方式所产生的reorder数量不同,且不同的reorder处理效率也不同,从而导致相应的处理时长也不同。那么,如何提高神经网络处理器处理数据搬运算子的效率是亟待解决的问题。


技术实现思路

1、为了解决上述技术问题,本公开的实施例提供了一种指令生成方法、装置及电子设备,通过执行神经网络处理器可执行的指令序列,用以在不改变神经网络处理器的情况下,提高神经网络处理器的处理效率。

2、根据本公开的一个方面,提供了一种用于神经网络处理器的指令生成方法,包括:确定数据搬运算子对应的输入内存排布方式和输出内存排布方式,以及数据搬运算子的搬运参数;基于搬运参数、输入内存排布方式、输出内存排布方式以及神经网络处理器支持的多个第一排布方式,确定将输入内存排布方式转换为输出内存排布方式所对应的多个转换路径组;基于多个转换路径组,确定目标转换路径;基于目标转换路径,生成神经网络处理器可执行的指令序列。

3、基于本方案,首先确定数据搬运算子对应的输入内存排布方式和输出内存排布方式,以及数据搬运算子的搬运参数;然后基于搬运参数、输入内存排布方式、输出内存排布方式以及神经网络处理器支持的多个第一排布方式确定多个转换路径组,接着基于多个转换路径组,确定出目标转换路径,最后基于目标转换路径生成可执行的指令序列。基于将神经网络处理器支持的第一排布方式作为数据格式转换的中间跳板,在将输入内存排布方式转换为输出内存排布方式过程中,基于中间跳板确定多个转换路径组,并从多个转换路径组中确定最优的路径作为目标转换路径,并进一步按照该目标转换路径生成神经网络处理器可执行的指令序列。因此本公开能够在不改变神经网络处理器的情况下,提高神经网络处理器的处理效率。

4、根据本公开的一个方面,提供了一种通过神经网络处理器对输入数据进行处理的方法,包括:确定需要对按照输入内存排布方式排布的输入数据进行处理的可执行指令序列;其中,可执行指令序列是基于目标转换路径生成的,目标转换路径是基于将输入内存排布方式转换为输出内存排布方式所对应的多个转换路径组确定的;基于可执行指令序列,通过神经网络处理器对按照输入内存排布方式排布的输入数据进行数据搬运处理,得到按照输出内存排布方式排布的输出数据。

5、基于本方案,通过确定可执行指令序列,并根据可执行指令序列对按照输入内存排布方式排布的输入数据进行数据搬运处理,得到按照输出内存排布方式排布的输出数据。这样,在利用神经网络处理器处理数据搬运算子时,能够按照处理时长最短的方式进行处理,从而提高数据处理效率。

6、根据本公开的另一个方面,提供了一种用于神经网络处理器的指令生成装置,包括:第一确定模块,用于确定数据搬运算子对应的输入内存排布方式和输出内存排布方式,以及数据搬运算子的搬运参数;第二确定模块,用于基于搬运参数、输入内存排布方式、输出内存排布方式以及神经网络处理器支持的多个第一排布方式,确定将输入内存排布方式转换为输出内存排布方式所对应的多个转换路径组;第三确定模块,用于基于多个转换路径组,确定目标转换路径;指令生成模块,用于基于目标转换路径,生成神经网络处理器可执行的指令序列。

7、根据本公开的一个方面,提供了用于通过神经网络处理器对输入数据进行处理的装置,包括:确定模块,用于确定需要对按照输入内存排布方式排布的输入数据进行处理的可执行指令序列;其中,可执行指令序列是基于目标转换路径生成的,目标转换路径是基于将输入内存排布方式转换为输出内存排布方式所对应的多个转换路径组确定的;处理模块,用于基于可执行指令序列,通过神经网络处理器对按照输入内存排布方式排布的输入数据进行数据搬运处理,得到按照输出内存排布方式排布的输出数据。

8、根据本公开的一个方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述任一的方法。

9、根据本公开的一个方面,提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述任一数据处理的方法。

本文档来自技高网...

【技术保护点】

1.一种用于神经网络处理器的指令生成方法,包括:

2.根据权利要求1所述的方法,其中,所述基于所述多个转换路径组,确定目标转换路径,包括:

3.根据权利要求1或2所述的方法,其中,所述基于所述神经网络处理器支持的多个第一排布方式、所述搬运参数、所述输入内存排布方式和所述输出内存排布方式,确定将所述输入内存排布方式转换为所述输出内存排布方式所对应的多个转换路径组,包括:

4.根据权利要求3所述的方法,其中,所述基于所述输入内存排布方式、所述输出内存排布方式、各所述第一排布方式和各所述第一排布方式对应的第二排布方式,确定各所述第一排布方式对应的转换路径组,包括:

5.根据权利要求4所述的方法,其中,所述确定各所述转换路径组中的各转换路径的转换时长,包括:

6.根据权利要求5所述的方法,其中,所述基于计算图和各所述转换路径中的第一子转换路径,确定所述第一子转换路径的第一转换时长,包括:

7.根据权利要求1或2所述的方法,其中,所述基于所述目标转换路径,生成所述神经网络处理器可执行的指令序列,包括:

8.一种通过神经网络处理器对输入数据进行处理的方法,包括:

9.根据权利要求8所述的方法,其中,所述基于所述可执行指令序列,通过所述神经网络处理器对按照所述输入内存排布方式排布的输入数据进行转置处理,得到按照所述输出内存排布方式排布的输出数据,包括:

10.根据权利要求9所述的方法,其中,所述基于所述可执行指令序列,按照所述目标转换路径,通过所述神经网络处理器对按照所述输入内存排布方式排布的输入数据进行处理,得到按照所述输出内存排布方式排布的所述输出数据,包括:

11.一种用于神经网络处理器的指令生成装置,包括:

12.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的用于神经网络处理器的指令生成方法;或者,执行上述权利要求8-10中任一所述的通过神经网络处理器对输入数据进行处理的方法。

13.一种电子设备,所述电子设备包括:

...

【技术特征摘要】

1.一种用于神经网络处理器的指令生成方法,包括:

2.根据权利要求1所述的方法,其中,所述基于所述多个转换路径组,确定目标转换路径,包括:

3.根据权利要求1或2所述的方法,其中,所述基于所述神经网络处理器支持的多个第一排布方式、所述搬运参数、所述输入内存排布方式和所述输出内存排布方式,确定将所述输入内存排布方式转换为所述输出内存排布方式所对应的多个转换路径组,包括:

4.根据权利要求3所述的方法,其中,所述基于所述输入内存排布方式、所述输出内存排布方式、各所述第一排布方式和各所述第一排布方式对应的第二排布方式,确定各所述第一排布方式对应的转换路径组,包括:

5.根据权利要求4所述的方法,其中,所述确定各所述转换路径组中的各转换路径的转换时长,包括:

6.根据权利要求5所述的方法,其中,所述基于计算图和各所述转换路径中的第一子转换路径,确定所述第一子转换路径的第一转换时长,包括:

7.根据权利要求1或2所述的方法,其中,所述基于所述目标转...

【专利技术属性】
技术研发人员:林永迪
申请(专利权)人:北京地平线信息技术有限公司
类型:发明
国别省市:

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

1