一种数据处理方法以及相关装置与流程

文档序号:34066994发布日期:2023-05-06 15:36阅读:20来源:国知局
一种数据处理方法以及相关装置与流程

本技术实施例涉及通信,具体涉及一种数据处理方法以及相关装置。


背景技术:

1、在人工智能(artificial intelligence,ai)生态建设和芯片架构的演进过程中,为了提升算子的执行性能,会遇到多个核并行处理的情况,也会遇到多个核同时读取存储空间中的同一块存储地址的场景。然而,并行的核数越多,多个核并行读写同一块存储地址时出现的等待情况将会越显著,导致该算子的执行性能明显下降。而且,在算子中,在芯片上多个核会执行几乎一样的访问逻辑,从同一个存储地址同时进行读操作和写操作,并循环执行多次,引起的在同一个存储地址读写资源竞争的问题就会特别显著。

2、在传统的方案中,可以从硬件方面和软件方面入手进行优化。从硬件方面来看,需要增强硬件调度能力或增加总线带宽,但是需要在硬件模块中引入复杂的存储调度算法(memory scheduling algorithms,msa),以及在存储管理模块中加入额外的存储空间去存储每个核的信息,此种方式并不利于扩展,无法适用于已经投产的硬件设备,灵活性较弱。从软件方面来看,需要在操作系统层对不同的核进行存储分配时尽可能地避免出现资源竞争的bank冲突(bank conflict),而bank冲突是为了解决多块数据并行读写在同一块存储地址内导致的资源竞争的问题。也就是说,在相关方案中,无论是从硬件方面还是从软件方面着手,都难以解决同一块数据由不同的核并行读取时导致的资源竞争的问题。

3、因此,同一块数据由不同的核并行读取时导致的资源竞争的问题,成为了一个较为迫切需要解决的问题。


技术实现思路

1、本技术实施例提供了一种数据处理方法以及相关装置,对于不同的核可以执行不相互冲突的地址段的顺序,使得多个核基于不同的地址段的顺序访问该数据,实现多个核并行访问,并且能够缓解多个核同时访问同一段地址时引起资源竞争的问题,提升算子的执行性能。

2、第一方面,本技术实施例提供了一种数据处理方法。该数据处理方法应用在多核并行处理的场景中,该可以应用在数据处理装置中。所描述的数据处理装置可以包括编译器等设备,也可以包括其他需要通过多核并行访问数据的设备中,本技术不想限定说明。在该数据处理方法中,通过获取目标操作指令,所述目标操作指令为多个核访问的数据在目标存储空间时所执行的指令。然后,基于所述目标操作指令确定目标循环控制语句,所述目标循环控制语句为所述多个核访问所述目标存储空间对应的地址索引所使用的循环控制语句,所述地址索引用于指示所述数据在所述目标存储空间的路径地址。并且调整所述目标循环控制语句的执行顺序,调整后的目标循环控制语句的执行顺序用于各个所述核访问所述数据,各个所述核使用所述调整后的目标循环控制语句的执行顺序不相同,所述执行顺序表示各个所述核访问所述数据所在的地址段的顺序,每个所述核使用的执行顺序使得所述多个核在执行所述目标循环控制语句时,在相同的时间段内访问的地址段不同。需说明,目标循环控制语句可以包含在循环语句中,并且该循环语句还包括循环体。上述的目标存储空间可以用户自定义的预设存储空间,例如:当有多个内存层级(如l1、l2以及l3等)的存储空间时,用户可以指定出某个层级的存储空间作为该目标存储空间。这样,在选取出目标存储空间后,可以对该该目标存储空间进行访问,以获取到多个核同时访问该数据在该目标存储空间时所执行的指令,即获取到目标操作指令。

3、另外,所描述的相同的时间段可以理解成在预设的时间范围内,这多个核同时访问同一块地址段的时间段。例如:预设的时间范围可以为t1,在该t1时间段内,多个核访问同一块地址段。所描述的地址段可以理解成每个数据的物理地址组成的地址集合。譬如说,数据共有8个,分为两组,一组为数据1至4,另一组为数据5至8,其中,地址段可以理解成数据1至4中的每一个数据的物理地址组成的地址集合,另一地址段可以理解成数据5至8中的每一个数据的物理地址组成的地址集合等。

4、通过上述方式,由于执行顺序可以表示出各个核访问数据所在的地址段的顺序,因此可以获取多个核访问数据在目标存储空间时所执行的指令,即目标操作指令,然后通过该目标操作指令来确定出目标循环控制语句,进而调整目标循环控制语句的执行顺序。而且,各个所述核使用调整后的执行顺序不相同,以及每个所述核使用的执行顺序使得所述多个核在执行所述目标循环控制语句时,在相同的时间段内访问的地址段不同。这样,在同一时间段内,对于不同的核可以执行不相互冲突的地址段的顺序,以缓解多个核同时访问同一段地址时的资源竞争的情况,提升算子的执行性能。

5、在一些可能的实施方式中,所述目标操作指令中的源地址的地址索引与核变量无关。其中,核变量用于表示当前执行所述目标操作指令时对应的核,所述源地址为所述目标操作指令执行读操作时,所述数据在该目标存储空间中的物理地址。需说明,所描述的目标操作指令可以为一条先执行读操作后执行写操作的指令,即该目标操作指令可以执行读操作,也可以执行写操作,而源地址可以理解成该目标操作指令执行读操作时,数据在目标存储空间中的物理地址。

6、在一些可能的实施方式中,调整所述目标循环控制语句的执行顺序,可以采用如下方式,即将所述多个核分别划分成k组,k为正整数;并且更新所述k组核中各组核访问的地址索引,其中,各组核访问更新后的地址索引不相同,并且任意相邻两组核访问更新后的地址索引相差m/k个源地址,m为所述数据的数据量,m为正整数。然后基于所述各组核访问更新后的地址索引,调整所述目标循环控制语句的执行顺序。需说明,在一些可能的方式中,也还可以将该数据分成k组。

7、在一些可能的实施方式中,所述目标循环控制语句满足所述多个核访问的地址索引与所述目标循环控制语句的循环变量相关、且基于所述循环变量进行循环处理时任意两次循环处理访问的目的地址不重叠。其中,所述目的地址为所述目标操作指令执行写操作时,所述数据在物理内存中的物理地址。需说明,所描述的目标操作指令可以执行读操作,也可以执行写操作,而目的地址可以理解成该目标操作指令执行写操作时,数据被写入在另一物理内存中的物理地址。该目标存储空间与该物理内存可以不是同一层级的存储内存。

8、在一些可能的实施方式中,基于所述目标循环控制语句进行循环处理时任意两组核访问的m/k个源地址相差一个预设值。

9、在一些可能的实施方式中,基于所述目标操作指令确定目标循环控制语句,可以包括:查找全部与所述循环变量相关的写操作的指令,所述循环变量基于所述目标操作指令得到;确定目标循环控制语句,其中全部所述写操作的指令各自在所述目标循环控制语句的任意迭代处理之间访问的目的地址不重叠。

10、在一些可能的实施方式中,基于所述目标操作指令确定目标循环控制语句,可以包括:获取第一标签,所述第一标签用于标识所述目标循环控制语句;并且基于所述目标操作指令和所述第一标签确定目标循环控制语句。通过上述方式,由用户基于第一标签自定义出目标循环控制语句,提供了多种确定目标循环控制语句的方式。

11、第二方面,本技术实施例提供了一种数据处理装置。该数据处理装置可以包括但不限于编译器、服务器、智能车等设备。该数据处理装置可以包括获取单元和处理单元。其中,获取单元用于获取目标操作指令,所述目标操作指令为多个核访问的数据在目标存储空间时所执行的指令。处理单元用于根据所述目标操作指令确定目标循环控制语句,所述目标循环控制语句为所述多个核访问所述目标存储空间对应的地址索引所使用的循环控制语句。处理单元还用于调整所述目标循环控制语句的执行顺序,调整后的目标循环控制语句的执行顺序用于各个核访问所述数据,各个所述核使用所述调整后的目标循环控制语句的执行顺序不相同,所述执行顺序表示各个所述核访问所述数据所在的地址段的顺序,每个所述核使用的执行顺序使得所述多个核在执行所述目标循环控制语句时,在相同的时间段内访问的地址段不同。

12、在一些可选的实施例中,所述目标操作指令中的源地址的地址索引与核变量无关。其中,所述地址索引用于指示所述数据在所述目标存储空间的路径地址,所述核变量用于表示当前执行所述目标操作指令时对应的核,所述源地址对所述目标操作指令执行读操作时,所述数据在目标存储空间中的物理地址。

13、在另一些可选的实施例中,处理单元用于将所述多个核分别划分成k组,k为正整数。并且该处理单元更新所述k组核中各组核访问的地址索引,其中,各组核访问更新后的地址索引不相同,并且任意相邻两组核访问更新后的地址索引相差m/k个源地址,m为所述数据的数据量,m为正整数。然后,该处理单元基于所述各组核访问更新后的地址索引,调整所述目标循环控制语句的执行顺序。

14、在另一些可选的实施例中,所述目标循环控制语句满足所述多个核访问的地址索引与所述目标循环控制语句的循环变量相关、且基于所述循环变量进行循环处理时任意两次循环处理访问的目的地址不重叠。其中,所述目的地址为所述目标操作指令执行写操作时,所述数据在物理内存中的物理地址。

15、在另一些可选的实施例中,基于所述目标循环控制语句进行循环处理时两组访问的m/k个源地址相差一个预设值。

16、在另一些可选的实施例中,所述处理单元用于查找全部与所述循环变量相关的写操作的指令,所述写操作指令包含有所述目标操作指令;并且确定目标循环控制语句,其中,全部所述写操作的指令各自在所述目标循环控制语句的任意迭代处理之间访问的目的地址不重叠。

17、在另一些可选的实施例中,所述处理单元用于获取第一标签,所述第一标签用于标识所述目标循环控制语句,并基于所述目标操作指令和所述第一标签确定目标循环控制语句。

18、第三方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面、第一方面任意一种可能实现方式的方法。

19、第四方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面、第一方面任意一种可能实现方式的方法。

20、本技术第五方面提供一种芯片系统,该芯片系统可以包括处理器,用于支持数据处理装置实现上述第一方面、或者第一方面任意一种可能的实施方式中所描述的方法中所涉及的功能。

21、可选地,结合上述第六方面,在第一种可能的实施方式中,芯片系统还可以包括存储器,存储器,用于保存数据处理装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。其中,芯片系统可以包括专用集成电路(applicationspecific integrated circuit,asic)、现成可编程门阵列(field programmable gatearray,fpga)或者其他可编程逻辑器件等。进一步,芯片系统还可以包括接口电路等。

22、上述第二方面至第六方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

23、从以上技术方案可以看出,本技术实施例具有以下优点:

24、本技术实施例中,由于执行顺序可以表示出各个核访问数据所在的地址段的顺序,因此可以获取多个核访问数据在目标存储空间时所执行的指令,即目标操作指令。然后,通过该目标操作指令来确定出目标循环控制语句,进而调整目标循环控制语句的执行顺序,使得各个核能够基于调整后的目标循环控制语句的执行顺序访问该数据,并且各个所述核使用所述调整后的目标循环控制语句的执行顺序不相同。而且,各个所述核使用调整后的执行顺序不相同,以及每个所述核使用的执行顺序使得所述多个核在执行所述目标循环控制语句时,在相同的时间段内访问的地址段不同。这样,在同一时间段内,对于不同的核可以执行不相互冲突的地址段的顺序,使得多个核基于不同的地址段的顺序访问该数据,实现多个核并行访问,并且能够缓解多个核同时访问同一段地址时引起资源竞争的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1