内存管理

参数名

描述

memory_config

用于配置系统内存使用方式,用户在创建NPURunConfig之前,可以实例化一个MemoryConfig类进行功能配置。MemoryConfig类的构造函数,请参见MemoryConfig构造函数

external_weight

是否将网络中Const/Constant节点的权重外置,取值包括:

  • False:权重不外置,保存在图中,默认为False。
  • True:权重外置,将网络中所有Const/Constant节点的权重落盘至临时目录“tmp_weight”下,并将其类型转换为FileConstant;模型卸载时,自动卸载“tmp_weight”目录下的权重文件。

说明:当网络中weight占用内存较大且对模型大小有限制时,建议将此配置项设置为“True”。

配置示例:
config = NPURunConfig(external_weight=True)

graph_memory_max_size

网络静态内存和最大动态内存,可根据网络大小指定。单位:Byte,取值范围:[0, 256*1024*1024*1024]或[0, 274877906944]。

不同型号的昇腾AI处理器,“graph_memory_max_size”和“variable_memory_max_size”支持的总和最大值不同,您可以通过npu-smi info -t memory -i id命令查询某设备下所有芯片的内存信息,回显的片上内存值即为支持设置的“graph_memory_max_size”和“variable_memory_max_size”的总和最大值。

如果不设置,“graph_memory_max_size”的默认值为:26/32*片上内存最大值。

配置示例:

config = NPURunConfig(graph_memory_max_size=str(26*1024 * 1024 * 1024))

variable_memory_max_size

变量内存,可根据网络大小指定。单位:Byte,取值范围:[0,256*1024*1024*1024]或[0, 274877906944]。

不同型号的昇腾AI处理器,“graph_memory_max_size”和“variable_memory_max_size”支持的总和最大值不同,您可以通过npu-smi info -t memory -i id命令查询某设备下所有芯片的内存信息,回显的片上内存值即为支持设置的“graph_memory_max_size”和“variable_memory_max_size”的总和最大值。

如果不设置,“variable_memory_max_size”的默认值为:5/32*片上内存最大值。

配置示例:

config = NPURunConfig(variable_memory_max_size=str(5*1024 * 1024 * 1024))