[发明专利]内存越界检测方法、装置、电子设备及存储介质在审
申请号: | 202011585569.0 | 申请日: | 2020-12-28 |
公开(公告)号: | CN114691469A | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 越界 检测 方法 装置 电子设备 存储 介质 | ||
本申请涉及计算机处理技术领域,尤其涉及一种内存越界检测方法、装置、电子设备及存储介质,包括:获取目标张量的地址;根据目标张量的地址在所述已分配的内存块中获取对应的目标内存块,目标内存块中包含检测字段;基于述检测字段判断目标内存块的检测结果,若检测字段被覆写则检测结果为目标张量存在内存越界问题;否则检测结果为目标张量不存在内存越界问题。本申请对张量的地址所对应的内存块中的检测字段进行检测,可快速判断该张量是否存在内存越界问题,并进一步检测出造成内存越界现象的原因,使得pytorch中不恰当的内存越界操作能够及时被发现和进行针对性地维护操作,从而加强对pytorch中内存数据的保护强度,提高pytorch中有限内存的使用效率。
技术领域
本申请涉及计算机处理技术领域,尤其涉及一种内存越界检测方法、装置、电子设备及存储介质。
背景技术
随着机器学习的广泛应用,开发了具有强大的图形处理器(Graphics ProcessingUnit,GPU)加速的张量(tensor)计算的PyTorch。PyTorch是一个开源的Python机器学习库,其基于Torch,用于自然语言处理等应用程序。pytorch中的中央处理器(CentralProcessing Unit,CPU)具有CPU管理器(Allocator),其用于简单申请和释放内存;GPU中具有高速缓存管理器(Caching allocator),其用于将申请的内存缓存起来、避免频繁的调用内存分配(malloc)和空闲。同时pytorch支持一个新的allocator派生类Default MobileCPU Allocator,该类主要用于量化神经网络计算的加速库中针对可能发生的张量内存越界问题做的处理,其处理方式为在应该申请大小的内存前后再额外申请一些内存,作为内存越界的缓冲。
然而,目前pytorch中的CPU Allocator和Caching Allocator都不具备排除故障(debug)功能,CPU Allocator的内存异常检查由驱动层面进行,而Caching Allocator将内存缓存起来之后,需要驱动第三方对发生的内存越界等进行检查,Caching Allocator内部也缺乏相对应的检查工具。而Default Mobile CPU Allocator只能作为内存越界的预防,无法debug到哪一处内存发生的越界。因此,如何检测内存越界问题的方案是本领域技术人员的迫切任务。
发明内容
本申请实施例提供了一种内存越界检测方法、装置、电子设备及存储介质,能够主动检测内存越界,解决了内存越界难以定位的问题。
第一方面,本申请实施例提供一种内存越界检测方法,所述方法包括:获取目标张量的地址;根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,其中,所述目标内存块中包含检测字段;基于所述检测字段,判断所述目标内存块的检测字段是否被覆写,若所述检测字段被覆写,所述目标张量存在内存越界问题,否则,所述目标张量不存在内存越界问题。
第二方面,本申请实施例提供一种内存越界检测装置,所述装置包括:处理器,用于获取目标张量的地址;获取目标张量的地址;内存越界检测器,用于根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,其中,所述目标内存块中包含检测字段;基于所述检测字段,判断所述目标内存块的检测字段是否被覆写;若所述检测字段被覆写,所述检测结为所述目标张量存在内存越界问题;否则,所述目标张量不存在内存越界问题。
第三方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片用于执行如第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括存储器、处理器、通信总线和通信接口,其中,所述处理器、通信接口存储器通过通信总线完成相互间的通信;所述存储器用于存放计算机程序;所述处理器用于执行所述存储器上所存放的程序时,实现如上述第一方面所描述的部分或全部步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011585569.0/2.html,转载请声明来源钻瓜专利网。