如何处理内存不足

问题现象

TensorFlow训练场景下调优时,可能会出现如下类似报错。

解决方案

修改sess.run模式下的session配置项或者Estimator模式下的npu_bridge.estimator.npu.npu_config。具体修改方法如下。

表1 配置项说明

配置项

说明

graph_memory_max_size

网络静态内存和最大动态内存,可根据网络大小指定。单位:Byte,取值范围:[0, 256*1024*1024*1024]或[0, 274877906944]。当前受昇腾AI处理器硬件限制,graph_memory_max_size和variable_memory_max_size总和为31GB。如果不设置,默认为26GB。

配置示例:

  • sess.run模式
    custom_op.parameter_map["graph_memory_max_size"].s = tf.compat.as_bytes(str(26*1024 * 1024 * 1024))
  • Estimator模式
    config = NPURunConfig(graph_memory_max_size=str(26*1024 * 1024 * 1024))
    variable_memory_max_size

variable_memory_max_size

变量内存,可根据网络大小指定。单位:Byte,取值范围:[0,256*1024*1024*1024]或[0, 274877906944]。当前受昇腾AI处理器硬件限制,graph_memory_max_size和variable_memory_max_size总和为31GB。如果不设置,默认为5GB。

配置示例:

  • sess.run模式
    custom_op.parameter_map["variable_memory_max_size"].s = tf.compat.as_bytes(str(5*1024 * 1024 * 1024))
  • Estimator模式
    config = NPURunConfig(variable_memory_max_size=str(5*1024 * 1024 * 1024))