一种越界区域清理方法、设备、介质及产品与流程

摘要: 本申请实施例涉及人工智能芯片,尤其涉及一种越界区域清理方法、设备、介质及产品。背景技术:1、在深度学习框架中,张量具有用户可见的逻辑形状,人工智能芯片(比如图形...
一种越界区域清理方法、设备、介质及产品与流程

本申请实施例涉及人工智能芯片,尤其涉及一种越界区域清理方法、设备、介质及产品。

背景技术:

1、在深度学习框架中,张量具有用户可见的逻辑形状,人工智能芯片(比如图形处理器(graphics processing unit,简称gpu))对张量进行计算时,为张量分配的硬件存储区域往往需要向硬件粒度对齐,因此,为张量分配的硬件存储区域可能大于张量的逻辑形状,此时,硬件存储区域不仅包含存储张量的逻辑有效区域,还包括逻辑有效区域之外的越界(out-of-bounds,简称oob)区域。

2、当越界区域中残留非零数据时,后续对该张量进行计算的硬件单元(比如人工智能芯片中的张量计算单元(tcore))可能会将越界区域中的非零数据代入中间计算,从而造成计算结果错误,因此需要对越界区域进行清理。

3、相关技术下,由张量计算单元在每次读取张量计算之前,对硬件存储区域的越界区域进行越界判断或清理,这样导致张量计算单元的开销较大,从而影响芯片整体性能。

技术实现思路

1、本发明实施例提供了一种越界区域清理方法、设备、介质及产品,用于避免张量计算单元在每次读取张量计算时,对硬件存储区域的越界区域进行越界判断或清理,从而减小张量计算单元的开销,进而提升芯片整体性能。

2、一方面,本申请实施例提供了一种越界区域清理方法,该方法包括:

3、为目标张量分配目标存储区域;

4、基于所述目标张量包含的元素数量和每个元素对应的字节数,识别所述目标张量的逻辑有效字节数;

5、当所述目标存储区域的物理存储字节数大于所述逻辑有效字节数时,获取所述目标张量的目标写入路径;

6、当所述目标写入路径为通过目标算子写入,且所述目标算子属于新建输出张量的算子类型时,在所述目标存储区域被所述目标算子之后执行的算子读取之前,对所述目标存储区域中的目标越界区域进行清理,并通过所述目标算子将所述目标张量写入所述目标存储区域中的目标有效区域。

7、一方面,本申请实施例提供了一种越界区域清理装置,该装置包括:

8、分配模块,用于为目标张量分配目标存储区域;

9、获取模块,用于基于所述目标张量包含的元素数量和每个元素对应的字节数,获得所述目标张量的逻辑有效字节数;

10、判断模块,用于当所述目标存储区域的物理存储字节数大于所述逻辑有效字节数时,识别所述目标张量的目标写入路径;

11、清理模块,用于当所述目标写入路径为通过目标算子写入,且所述目标算子属于新建输出张量的算子类型时,在所述目标存储区域被所述目标算子之后执行的算子读取之前,对所述目标存储区域中的目标越界区域进行清理,并通过所述目标算子将所述目标张量写入所述目标存储区域中的目标有效区域。

12、可选地,所述清理模块,具体用于:

13、调用公共越界清理函数对所述目标越界区域进行清理;或者,通过所述目标算子向所述目标越界区域写入预设清理值。

14、可选地,所述清理模块,还用于:

15、当所述目标写入路径为通过目标算子写入,且所述目标算子属于修改已有张量的算子类型时,通过所述目标算子将所述目标张量写入所述目标有效区域。

16、可选地,所述清理模块,还用于:

17、通过检测算子对所述目标越界区域进行清理检测,获得检测结果;

18、当所述检测结果指示所述目标越界区域包含非预设清理值时,通过清理算子对所述目标越界区域进行清理。

19、可选地,所述目标算子、所述检测算子和所述清理算子在同一任务流中依次执行。

20、可选地,所述清理模块,还用于:

21、在测试模式下,若所述目标有效区域的输出结果与预设结果一致,且所述目标越界区域不包含非预设清理值,则确定所述目标算子测试通过;

22、若所述目标有效区域的输出结果与预设结果不一致,或者,所述目标越界区域包含非预设清理值,则确定所述目标算子测试不通过。

23、可选地,所述清理模块,还用于:

24、当所述目标写入路径为通过批量置值接口写入,且所述目标张量的填充值为预设清理值时,通过所述批量置值接口将所述目标越界区域和所述目标有效区域置为所述预设清理值。

25、可选地,所述清理模块,还用于:

26、当所述目标写入路径为通过拷贝接口写入时,通过所述拷贝接口将所述目标张量从源存储区域中的源有效区域,拷贝到所述目标有效区域;

27、通过所述拷贝接口将所述源存储区域中的源越界区域的填充值,拷贝到所述目标越界区域。

28、可选地,所述清理模块,还用于:

29、在测试模式下,若所述目标有效区域的输出结果与预设结果一致,且所述目标越界区域不包含非预设清理值,则确定所述拷贝接口测试通过;

30、若所述目标有效区域的输出结果与预设结果不一致,或者,所述目标越界区域包含非预设清理值,则确定所述拷贝接口测试不通过。

31、一方面,本申请实施例提供了一种计算机设备,包括:

32、存储器,用于存储程序指令;

33、人工智能芯片,用于运行所述存储器中存储的程序指令,按照获得的程序执行上述越界区域清理方法的步骤。

34、一方面,本申请实施例提供了一种计算机可读存储介质,存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得计算机执行上述越界区域清理方法的步骤。

35、一方面,本申请实施例提供了一种计算机程序产品,包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述越界区域清理方法的步骤。

36、本申请实施例中,为目标张量分配目标存储区域,基于目标张量包含的元素数量和每个元素对应的字节数,获得目标张量的逻辑有效字节数。当目标存储区域的物理存储字节数大于逻辑有效字节数时,确定目标存储区域存在目标越界区域,并识别目标张量的目标写入路径。当目标写入路径为通过目标算子写入,且目标算子属于新建输出张量的算子类型时,在目标存储区域被目标算子之后执行的算子读取之前,对目标存储区域中的目标越界区域进行清理,并通过目标算子将目标张量写入目标存储区域中的目标有效区域,即通过目标算子将目标张量写入目标有效区域的过程中,同时对目标越界区域进行了清理,这样保证了目标越界区域的清洁性,故在目标算子之后执行的算子读取目标存储区域中的目标张量时,不再需要张量计算单元对越界区域进行越界判断或清理,从而有效降低了额外操作带来的性能开销,同时保证了张量计算的准确性,进而提高芯片整体性能。

1.一种越界区域清理方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述对所述目标存储区域中的目标越界区域进行清理,包括:

3.如权利要求1所述的方法,其特征在于,还包括:

4.如权利要求2或3所述的方法,其特征在于,所述目标算子运行之后,还包括:

5.如权利要求4所述的方法,其特征在于,所述目标算子、所述检测算子和所述清理算子在同一任务流中依次执行。

6.如权利要求1或3所述的方法,其特征在于,所述目标算子运行之后,还包括:

7.如权利要求1所述的方法,其特征在于,还包括:

8.如权利要求1所述的方法,其特征在于,还包括:

9.如权利要求8所述的方法,其特征在于,所述通过所述拷贝接口将所述源存储区域中的源越界区域的填充值,拷贝到所述目标越界区域之后,还包括:

10.一种计算机设备,包括存储器、人工智能芯片及存储在存储器上并在人工智能芯片上运行的计算机程序,其特征在于,所述人工智能芯片执行所述计算机程序时实现如权利要求1至9任一项所述方法的步骤。

11.一种计算机可读存储介质,其特征在于,其存储有由计算机设备执行的计算机程序,当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行如权利要求1至9任一项所述方法的步骤。

12.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行如权利要求1至9任一项所述方法的步骤。