【技术实现步骤摘要】
内存越界检测方法、装置、电子设备及存储介质
[0001]本申请涉及计算机处理
,尤其涉及一种内存越界检测方法、装置、电子设备及存储介质。
技术介绍
[0002]随着机器学习的广泛应用,开发了具有强大的图形处理器(Graphics Processing Unit,GPU)加速的张量(tensor)计算的PyTorch。PyTorch是一个开源的Python机器学习库,其基于Torch,用于自然语言处理等应用程序。pytorch中的中央处理器(Central Processing Unit,CPU)具有CPU管理器(Allocator),其用于简单申请和释放内存;GPU中具有高速缓存管理器(Caching allocator),其用于将申请的内存缓存起来、避免频繁的调用内存分配(malloc)和空闲。同时pytorch支持一个新的allocator派生类Default Mobile CPU Allocator,该类主要用于量化神经网络计算的加速库中针对可能发生的张量内存越界问题做的处理,其处理方式为在应该申请大小的内存前后 ...
【技术保护点】
【技术特征摘要】
1.一种内存越界检测方法,其特征在于,所述方法包括:获取目标张量的地址;根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,其中,所述目标内存块中包含检测字段;基于所述检测字段,判断所述目标内存块的检测字段是否被覆写;若所述检测字段被覆写,则所述目标张量存在内存越界问题;否则,所述目标张量不存在内存越界问题。2.根据权利要求1所述的方法,其特征在于,所述已分配的内存块与张量的地址存在映射关系;所述根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块,包括:根据所述映射关系,从所述已分配的内存块中获取所述目标张量的地址对应的所述目标内存块。3.根据权利要求1或2所述的方法,其特征在于,在根据所述目标张量的地址,在所述已分配的内存块中获取对应的目标内存块之前,所述方法还包括:判断所述目标张量的地址是否存在于所述已分配内存中;若所述目标张量的地址未存在于所述已分配内存块中,上报所述目标张量的地址为非法地址。4.根据权利要求3所述的方法,其特征在于,申请所述目标内存块具体包括:判断第一内存申请释放管理器是否开启所述内存越界检测器;若所述第一内存申请释放管理器开启所述内存越界检测器,将第一空闲内存块划分成所述目标内存块和第二空闲内存块;在所述目标内存块和所述第二空闲内存块添加所述检测字段,并保存所述目标内存块的调用栈信息;将所述目标内存块放入所述已分配内存块中。5.根据权利要求4所述的方法,其特征在于,释放所述目标内存块具体包括:判断所述第一内存申请释放管理器是否开启所述内存越界检测器;若所述第一内存申请释放管理器开启所述内存越界检测器,根据所述目标张量的地址从所述已分配内存块中查找对应...
【专利技术属性】
技术研发人员:ꢀ七四专利代理机构,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。