System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() NPU内存管理方法、装置及芯片制造方法及图纸_技高网

NPU内存管理方法、装置及芯片制造方法及图纸

技术编号:44777488 阅读:5 留言:0更新日期:2025-03-26 12:56
本申请涉及一种NPU内存管理方法、装置及芯片。该方法包括:获取NPU指令所请求的内存资源大小;当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于或等于所述请求的内存资源大小时,通过所述当前节点为所述NPU指令分配内存,并将所述当前节点的使用状态配置为被使用状态。本申请提供的方案,能够避免分配的内存资源在空间上产生冲突。

【技术实现步骤摘要】

本申请涉及芯片,尤其涉及一种npu内存管理方法、装置及芯片。


技术介绍

1、随着计算机技术和芯片技术的不断发展,应用程序对内存资源的需求也越来越大。npu(neural processing unit,神经网络处理单元)是用于进行神经网络计算的处理器。在常见的npu架构中,在计算核心与片外内存之间还会设置一到两层片内缓存。片内缓存资源一般需要手动管理,也就是要在npu指令中分配要使用的缓存资源。

2、相关技术经常使用一种基于system verilog(sv语言)随机约束生成npu指令的方法。该方法能对单个npu指令内的内存地址字段进行随机分配。但是,在随机生成npu指令时,分配给当前npu使用的缓存资源可能已经被前面生成的npu指令占用或与前面生成的npu指令使用的缓存空间重叠,从而在空间上造成内存资源冲突。

3、因此,相关技术的npu内存管理方法,无法保证分配的内存资源在空间上不产生冲突。


技术实现思路

1、为解决或部分解决相关技术中存在的问题,本申请提供一种npu内存管理方法、装置及芯片,能够避免分配的内存资源在空间上产生冲突。

2、本申请第一方面提供一种npu内存管理方法,包括:

3、获取npu指令所请求的内存资源大小;

4、当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于或等于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点的使用状态配置为被使用状态。

5、在一实施方式中,所述预设的链表节点按照以下方式预先设置:

6、将未进行资源分配的全部内存资源抽象为链表节点;

7、其中所述链表节点中保存当前节点管理的内存资源的起始地址、当前节点的使用状态和与当前节点相邻的后继节点的指针。

8、在一实施方式中,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间等于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点的使用状态配置为被使用状态,包括:

9、当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间等于所述请求的内存资源大小时,将所述当前节点的内存资源的内存空间作为为所述npu指令分配的内存,并将所述当前节点的使用状态配置为被使用状态。

10、在一实施方式中,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点配置的使用状态为被使用状态,包括:

11、当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于所述请求的内存资源大小时,将所述当前节点的内存资源的内存空间拆分为请求空间和剩余空间,

12、将所述请求空间作为为所述npu指令分配的内存,并继续作为当前节点管理,将所述当前节点的使用状态配置为被使用状态;

13、将所述剩余空间作为一个新节点,将所述新节点配置为与当前节点相邻的后继节点。

14、在一实施方式中,所述方法还包括:

15、当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间小于所述请求的内存资源大小时,根据与当前节点相邻的后继节点的指针,获取与当前节点相邻的后继节点,通过所述后继节点为所述npu指令分配内存。

16、在一实施方式中,所述通过所述当前节点为所述npu指令分配内存,包括:

17、在预设内存管理表中查找为所述npu指令的指令地址所分配的内存地址符号;

18、在查找到所述内存地址符号后,确定所述预设内存管理表中记录的所述内存地址符号对应的当前节点,由所述当前节点为所述npu指令分配内存;在所述npu指令获取到分配的内存后,将所述指令地址修改为分配的内存地址;或,

19、在未查找到所述内存地址符号后,为所述npu指令分配新的节点,并将所述新的节点记录在所述预设内存管理表中。

20、在一实施方式中,在所述指令地址为有依赖关系的指令地址时,所述为所述npu指令的指令地址所分配的内存地址符号相同。

21、在一实施方式中,所述npu指令的指令地址包括数据搬运指令搬运数据的目的地址和计算指令获取数据的源地址。

22、在一实施方式中,所述方法还包括:

23、在为所述npu指令分配的内存资源使用结束后,释放内存资源和/或回收内存资源。

24、在一实施方式中,所述释放内存资源,包括:

25、将当前需要释放的节点的使用状态配置为可使用状态;和/或,

26、所述回收内存资源,包括:

27、在判断出链表节点中与所述当前需要释放的节点相邻的前继节点或后继节点已经不再被使用时,则将所述当前需要释放的节点与相邻的前继节点或后继节点进行合并。

28、本申请第二方面提供一种npu内存管理装置,包括:

29、获取模块,用于获取npu指令所请求的内存资源大小;

30、第一分配模块,用于当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于或等于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点的使用状态配置为被使用状态。

31、在一实施方式中,所述装置还包括:

32、第二分配模块,用于当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间小于所述请求的内存资源大小时,根据与当前节点相邻的后继节点的指针,获取与当前节点相邻的后继节点,通过所述后继节点为所述npu指令分配内存。

33、在一实施方式中,所述装置还包括:

34、释放回收模块,在为所述npu指令分配的内存资源使用结束后,释放内存资源和/或回收内存资源。

35、本申请第三方面提供一种芯片,包括如上所述的npu内存管理装置。

36、本申请第四方面提供一种电子设备,包括:

37、处理器;以及

38、存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。

39、本申请第五方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。

40、本申请提供的技术方案可以包括以下有益效果:

41、本申请的方法,通过构建链表节点来和使用链表数据结构对npu系统中的内存资源进行管理,当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于或等于请求的内存资源大小时,通过当前节点为npu指令分配内存,并将当前节点的使用状态配置为被使用状态。通过该处理,已经被分配使用的节点的内存空间直到释放前,不会被再次分配,这样就可以保证分配的内存资源在空间上不产生冲突。

42、进一步的,本申请通本文档来自技高网...

【技术保护点】

1.一种NPU内存管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述预设的链表节点按照以下方式预先设置:

3.根据权利要求1所述的方法,其特征在于,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间等于所述请求的内存资源大小时,通过所述当前节点为所述NPU指令分配内存,并将所述当前节点的使用状态配置为被使用状态,包括:

4.根据权利要求1所述的方法,其特征在于,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于所述请求的内存资源大小时,通过所述当前节点为所述NPU指令分配内存,并将所述当前节点配置的使用状态为被使用状态,包括:

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

6.根据权利要求1所述的方法,其特征在于,所述通过所述当前节点为所述NPU指令分配内存,包括:

7.根据权利要求6所述的方法,其特征在于:

8.根据权利要求7所述的方法,其特征在于:

9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:

10.根据权利要求9所述的方法,其特征在于,

11.一种NPU内存管理装置,其特征在于,包括:

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

13.一种芯片,其特征在于,包括权利要求11或12所述的NPU内存管理装置。

14.一种电子设备,其特征在于,包括:

15.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-10中任一项所述的方法。

...

【技术特征摘要】

1.一种npu内存管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述预设的链表节点按照以下方式预先设置:

3.根据权利要求1所述的方法,其特征在于,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间等于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点的使用状态配置为被使用状态,包括:

4.根据权利要求1所述的方法,其特征在于,所述当预设的链表节点中未被使用的当前节点所管理的内存资源的内存空间大于所述请求的内存资源大小时,通过所述当前节点为所述npu指令分配内存,并将所述当前节点配置的使用状态为被使用状态,包括:

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

6.根据权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:靳建宁
申请(专利权)人:广州小鹏汽车科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1