MemoryConfig构造函数
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
x  | 
|
x  | 
|
x  | 
|
√  | 
 针对
功能说明
MemoryConfig类的构造函数,用于配置系统内存使用方式。
函数原型
1 2 3 4 5  | def __init__(self, atomic_clean_policy=0, static_memory_policy=0, variable_use_1g_huge_page=0 )  | 
参数说明
参数名  | 
输入/输出  | 
描述  | 
|---|---|---|
atomic_clean_policy  | 
输入  | 
是否集中清理网络中所有memset算子占用的内存(含有memset属性的算子都是memset算子),取值包括: 
  | 
static_memory_policy  | 
输入  | 
网络运行时使用的内存分配方式。 
 默认值是0。  说明:  
  | 
variable_use_1g_huge_page  | 
输入  | 
在推荐模型中,嵌入层(Embedding层)在TensorFlow中使用的是变量,当嵌入层作为索引类算子(Gather、ScatterNd等)的输入或输出地址时,若内存较大会存在大范围的离散访问,可能会出现算子性能下降问题。此时可尝试通过配置此参数,为变量和常量使用1G大页申请内存,从而提升访存性能。 该参数取值包括: 
 使用1G大页申请内存,可以有效降低页表数量,有效扩大TLB(Translation Lookaside Buffer)缓存的地址范围,从而提升离散访问的性能。TLB是昇腾AI处理器中用于高速缓存的硬件模块,用于存储最近使用的虚拟地址到物理地址的映射。  说明:  
此参数仅支持以下产品: 
  | 
返回值
返回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)  |