本申请实施例涉及集成电路,尤其涉及一种数据访问方法、设备、存储介质及程序产品。
背景技术:
1、在机器视觉、图像处理等技术领域,人工智能芯片通常需要处理带感兴趣区域(region of interest,简称roi)的图像,其中,感兴趣区域是从图像中选择的一个图像区域,这个区域是图像分析和处理所关注的重点区域。
2、在实际应用中,图像保存在内存中。对图像进行处理时,人工智能芯片从内存中读取图像数据,并采用图像处理算子对图像数据进行相应计算。由于感兴趣区域是一个图像中的部分图像区域,因此,感兴趣区域在内存中是不连续的。相应地,对感兴趣区域进行处理时,通常采用非连续访存方式从内存中读取感兴趣区域,并采用图像处理算子对感兴趣区域进行相应计算。
3、然而,采用非连续访存方式从内存中读取感兴趣区域时,访存效率较低,这样导致图像处理库中的图像处理算子的性能较差。
技术实现思路
1、本申请实施例提供了一种数据访问方法、设备、存储介质及程序产品,用于提高访存效率,进而提升图像处理算子的性能。
2、一方面,本申请实施例提供了一种数据访问方法,包括:
3、对内存中存储的待处理图像的原始roi进行扩展,获得目标roi,所述目标roi在所述内存上是连续的;
4、采用连续访存方式从所述内存中读取所述目标roi,并通过多个执行单元对读取的所述目标roi包含的所述原始roi进行计算。
5、一方面,本申请实施例提供了一种数据访问装置,包括:
6、扩展模块,用于对内存中存储的待处理图像的原始roi进行扩展,获得目标roi,所述目标roi在所述内存上是连续的;
7、访存模块,用于采用连续访存方式从所述内存中读取所述目标roi,并通过多个执行单元对读取的所述目标roi包含的所述原始roi进行计算。
8、可选地,所述访存模块具体用于:
9、采用连续访存方式从所述内存中读取所述目标roi到片上缓冲区,所述目标roi包含所述原始roi;
10、采用非连续访存方式从所述片上缓冲区中,读取所述原始roi中的数据块到所述多个执行单元进行计算。
11、可选地,所述访存模块具体用于:
12、基于所述目标roi的区域大小,为所述多个执行单元均匀分配相应的任务;
13、针对所述多个执行单元,分别执行以下操作:
14、通过一个执行单元采用连续访存方式,从所述内存存储的所述目标roi中,读取所分配任务对应的数据块到所述片上缓冲区。
15、可选地,所述访存模块还用于:
16、采用连续访存方式从所述内存中读取所述目标roi到片上缓冲区之前,确定第一访存耗时大于第二访存耗时,其中,所述第一访存耗时指:采用非连续访存方式从所述内存中读取所述原始roi的访存耗时;
17、所述第二访存耗时指:采用连续访存方式从所述内存中读取所述目标roi到所述片上缓冲区,以及,采用非连续访存方式从所述片上缓冲区读取所述原始roi的总访存耗时。
18、可选地,所述访存模块具体用于:
19、基于所述原始roi的区域大小和采用非连续访存方式访问所述内存的第一速度,确定第一访存耗时。
20、可选地,所述访存模块具体用于:
21、基于所述目标roi的区域大小,以及采用连续访存方式从所述内存读取数据到所述片上缓冲区的第二速度,确定连续访存耗时;
22、基于所述原始roi的区域大小和采用非连续访存方式访问所述片上缓冲区的第三速度,确定非连续访存耗时;
23、对所述连续访存耗时与所述非连续访存耗时求和,获得所述第二访存耗时。
24、可选地,所述访存模块具体用于:
25、基于所述目标roi的区域大小,为所述多个执行单元均匀分配相应的任务;
26、针对所述多个执行单元,分别执行以下操作:
27、通过一个执行单元,采用连续访存方式从所述内存存储的所述目标roi中,读取所分配任务对应的第一数据块;并从所述第一数据块中提取与所述原始roi关联的第二数据块进行计算。
28、可选地,所述访存模块还用于:
29、基于所述目标roi的区域大小,为所述多个执行单元均匀分配相应的任务之前,确定第一访存耗时大于第三访存耗时,其中,所述第一访存耗时指:采用非连续访存方式从所述内存中读取所述原始roi的访存耗时;
30、所述第三访存耗时指:采用连续访存方式从所述内存中读取所述目标roi,以及从所述目标roi中提取所述原始roi的总耗时。
31、一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器芯片及存储在存储器上并可在处理器芯片上运行的计算机程序,所述处理器芯片执行所述计算机程序时实现上述数据访问方法的步骤。
32、一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行上述数据访问方法的步骤。
33、一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述数据访问方法的步骤。
34、本申请实施例中,对内存中存储的待处理图像的原始roi进行扩展获得目标roi,使得目标roi在内存上是连续的。然后采用连续访存方式从内存中读取目标roi,其中,目标roi包含原始roi。相较于采用非连续访存方式从内存中读取数据来说,本申请采用的连续访存方式大大提高了访存效率,同时也提高了对原始roi进行计算的效率,进而提升图像处理库中的图像处理算子的性能。
35、其次,由于目标roi在内存上是连续的,因此,可以为多个执行单元均匀分配读取任务,有效避免多个执行单元上的任务不均衡的问题,从而提高硬件资源利用率。
1.一种数据访问方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述采用连续访存方式从所述内存中读取所述目标感兴趣区域,并通过多个执行单元对读取的所述目标感兴趣区域包含的所述原始感兴趣区域进行计算,包括:
3.如权利要求2所述的方法,其特征在于,所述采用连续访存方式从所述内存中读取所述目标感兴趣区域到片上缓冲区,包括:
4.如权利要求2所述的方法,其特征在于,所述采用连续访存方式从所述内存中读取所述目标感兴趣区域到片上缓冲区之前,还包括:
5.如权利要求4所述的方法,其特征在于,所述第一访存耗时是采用以下操作获得的:
6.如权利要求4所述的方法,其特征在于,所述第二访存耗时是采用以下操作获得的:
7.如权利要求1所述的方法,其特征在于,所述采用连续访存方式从所述内存中读取所述目标感兴趣区域,并通过多个执行单元对读取的所述目标感兴趣区域包含的所述原始感兴趣区域进行计算,包括:
8.如权利要求7所述的方法,其特征在于,所述基于所述目标感兴趣区域的区域大小,为所述多个执行单元均匀分配相应的任务之前,还包括:
9.一种计算机设备,包括存储器、处理器芯片及存储在存储器上并可在处理器芯片上运行的计算机程序,其特征在于,所述处理器芯片执行所述计算机程序时实现如权利要求1~8任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行如权利要求1~8任一项所述方法的步骤。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行如权利要求1-8任一项所述方法的步骤。