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) |