检测方法及装置与流程

文档序号:37550953发布日期:2024-04-08 13:59阅读:10来源:国知局
检测方法及装置与流程

本申请涉及人工智能,特别涉及检测方法及装置。


背景技术:

1、神经网络是实现人工智能(artificial intelligence,ai)的工具,神经网络由算子组成,处理输入数据时具有计算量大、访问内存的规模大且频率高等特点。

2、当算子执行出现问题,如非法访问分配给其他算子的内存时,会导致其他算子出现精度问题,或者导致其他算子执行失败。由于神经网络需要通过逐个排查算子代码来检测出现的错误,因此检测效率很低。


技术实现思路

1、本申请提供了一种检测方法及装置,能够提高算子的检测效率。

2、第一方面,提供了一种检测方法,包括:将神经网络中的各待访问内存的状态设置为只读状态,其中,所述待访问内存为算子待访问的内存空间;在所述算子执行之前,若所述待访问内存是所述算子合法访问的,则将所述待访问内存的状态修改为可写状态,若所述待访问内存是所述算子非法访问的,则报错;若报错,则根据所述算子非法访问的待访问内存的状态为只读状态,确定所述非法访问的待访问内存出错。

3、其中,所述合法访问表示所述待访问内存对应的地址属于所述神经网络分配给所述算子的内存空间的地址,所述非法访问表示所述待访问内存对应的地址不属于所述神经网络分配给所述算子的内存空间的地址。

4、可以将神经网络的内存划分为多个内存空间,划分出的各个内存空间能够被各算子实际访问,这些划分出的内存空间即为待访问内存。由于神经网络中所有待访问内存均初始化为只读状态,只有在被算子合法访问的待访问内存被修改为可写状态,如果算子是非法访问,则要执行算子的待访问内存的状态仍然为只读,这样一来,能够通过正在被实际访问的待访问内存的状态,在报错后,快速准确的定位出错的待访问内存,提高检测效率。

5、在一种可能的实现方式中,还包括:向不同所述算子分配所述合法访问的内存空间的地址,并对应储存在内存列表中。

6、如在内存列表中,所述神经网络给不同的算子至少对应分配一个所述合法访问的内存空间的地址。

7、在一种可能的实现方式中,还包括:在所述算子前插入修改内存属性任务;所述将所述待访问内存的状态修改为可写状态包括:执行所述修改内存属性任务,将所述待访问内存的状态修改为可写状态。

8、在一种可能的实现方式中,还包括:在所述算子后插入修改内存属性任务;所述若待访问内存是所述算子合法访问的,则将所述待访问内存的状态修改为可写状态之后,还包括:在所述算子执行之后,执行所述修改内存属性任务,将所述待访问内存的状态修改为只读状态。

9、在一种可能的实现方式中,在任务执行阶段插入或在图编译阶段插入所述修改内存属性任务。

10、在任务执行阶段,可以在算子的前后增加修改内存属性任务,或者,在图编译阶段将修改内存属性任务编译到图中,执行态软件栈只需要下发编译到图中的任务即可,也就是说,修改内存属性任务可以在任务执行阶段插入在算子前后,或者,在任务执行阶段之前的编译阶段预先插入修改内存属性任务,再在执行阶段执行。

11、在一种可能的实现方式中,编译生成的所述算子携带有参数,所述参数包括所述算子的合法访问的内存空间的地址范围;所述在所述算子执行之前,还包括:在所述算子执行之前,若确定所述待访问内存对应的地址不在所述参数携带的所述地址范围内,则报错。

12、第二方面,提供了一种检测装置,其特征在于,包括:处理模块,用于将神经网络中的各待访问内存的状态设置为只读状态,其中,所述待访问内存为算子待访问的内存空间;所述处理模块,还用于在所述算子执行之前,若所述待访问内存是所述算子合法访问的,则将所述待访问内存的状态修改为可写状态,若所述待访问内存是所述算子非法访问的,则报错;所述处理模块,还用于若报错,则根据所述算子非法访问的待访问内存的状态为只读状态,确定所述非法访问的待访问内存出错。

13、其中,所述合法访问表示所述待访问内存对应的地址属于所述神经网络分配给所述算子的内存空间的地址,所述非法访问表示所述待访问内存对应的地址不属于所述神经网络分配给所述算子的内存空间的地址。

14、在一种可能的实现方式中,还包括:存储模块,用于向不同所述算子分配所述合法访问的内存空间的地址,并对应储存在内存列表中。

15、在一种可能的实现方式中,所述处理模块,还用于在所述算子前插入修改内存属性任务;所述处理模块,具体用于执行所述修改内存属性任务,将所述待访问内存的状态修改为可写状态。

16、在一种可能的实现方式中,还包括:所述处理模块,还用于在所述算子后插入修改内存属性任务;所述处理模块,还用于在所述算子执行之后,执行所述修改内存属性任务,将所述待访问内存的状态修改为只读状态。

17、在一种可能的实现方式中,所述处理模块,用于在任务执行阶段插入或在图编译阶段插入所述修改内存属性任务。

18、在一种可能的实现方式中,编译生成的所述算子携带有参数,所述参数包括所述算子的合法访问的内存空间的地址范围;所述处理模块,具体用于在所述算子执行之前,若确定所述待访问内存对应的地址不在所述参数携带的所述地址范围内,则报错。。

19、第三方面,本申请提供一种网络设备,所述网络设备包括通信接口和处理器,所述通信接口用于执行前述任一方面所述的方法以及任一方面的任一可能的实现方式中所涉及的收发操作,所述处理器用于执行以上任一方面所述的方法以及任一方面的任一可能的实现方式中所涉及的除收发操作之外的其它操作。例如,第三方面所述的网络设备作为检测装置执行第一方面所述的方法时,所述处理器用于将神经网络中的各待访问内存的状态设置为只读状态,其中,所述待访问内存为算子待访问的内存空间;在所述算子执行之前,若所述待访问内存是所述算子合法访问的,则将所述待访问内存的状态修改为可写状态,若所述待访问内存是所述算子非法访问的,则报错;若报错,则根据所述算子非法访问的待访问内存的状态为只读状态,确定所述非法访问的待访问内存出错。

20、第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。

21、第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包含指令,当其在处理器上运行时,实现前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。

22、第六方面,本申请提供了一种芯片,包括:接口电路和处理器。所述接口电路和所述处理器相连接,所述处理器用于使得所述芯片执行前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。



技术特征:

1.一种检测方法,其特征在于,包括:

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

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

4.根据权利要求1或2所述的方法,其特征在于,还包括:

5.根据权利要求3或4所述的方法,其特征在于,

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

7.一种检测装置,其特征在于,包括:

8.根据权利要求7所述的装置,其特征在于,还包括:

9.根据权利要求7或8所述的装置,其特征在于,

10.根据权利要求7或8所述的装置,其特征在于,还包括:

11.根据权利要求9或10所述的装置,其特征在于,

12.根据权利要求7至11任一项所述的装置,其特征在于,


技术总结
本申请实施例提供了一种检测方法及装置,该方法包括:将神经网络中的各待访问内存的状态设置为只读状态,其中,所述待访问内存为算子待访问的内存空间;在所述算子执行之前,若所述待访问内存是所述算子合法访问的,则将所述待访问内存的状态修改为可写状态,若所述待访问内存是所述算子非法访问的,则报错;若报错,则根据所述算子非法访问的待访问内存的状态为只读状态,确定所述非法访问的待访问内存出错。能够提高算子的检测效率。

技术研发人员:袁江
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/4/7
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1