文档
注册

MemoryConfig构造函数

功能说明

MemoryConfig类的构造函数,用于配置系统内存使用方式。

函数原型

def __init__(self,
atomic_clean_policy=0,
static_memory_policy=0
)

参数说明

参数名

输入/输出

描述

atomic_clean_policy

输入

是否集中清理网络中所有atomic算子占用的内存,取值包括:

  • 0:集中清理,默认为0。
  • 1:单独清理,对网络每一个atomic算子进行单独清零。当网络中内存超限时,可尝试此种清理方式,但可能会导致一定的性能损耗。

static_memory_policy

输入

网络运行时使用的内存分配方式。
  • 0:动态分配内存,即按照实际大小动态分配。
  • 2:动态扩展内存。训练与在线推理场景下,可以通过此取值实现同一session中多张图之间的内存复用,即以最大图所需内存进行分配。例如,假设当前执行图所需内存超过前一张图的内存时,直接释放前一张图的内存,按照当前图所需内存重新分配。
  • 3:仅动态shape支持内存动态扩展,解决内存动态分配时的碎片问题,降低动态shape网络内存占用。
  • 4:静态shape和动态shape同时支持内存动态扩展。

默认值是0。

说明:
  • 多张图并发执行时,不支持配置为“2”。
  • 为兼容历史版本配置,配置为“1”的场景下,系统会按照“2”动态扩展内存的方式进行处理。

返回值

返回MemoryConfig类对象,作为NPURunConfig的参数传入。

约束说明

无。

调用示例

1
2
3
4
5
from npu_bridge.npu_init import *
...
mem_config = MemoryConfig(atomic_clean_policy=0, static_memory_policy=0)
session_config=tf.ConfigProto(allow_soft_placement=True)
config = NPURunConfig(memory_config=mem_config, session_config=session_config)
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词