aclRtMemPoolAttr
typedef enum aclRtMemPoolAttr{
ACL_RT_MEM_POOL_REUSE_FOLLOW_EVENT_DEPENDENCIES = 0x1,
ACL_RT_MEM_POOL_REUSE_ALLOW_OPPORTUNISTIC = 0x2,
ACL_RT_MEM_POOL_REUSE_ALLOW_INTERNAL_DEPENDENCIES = 0x3,
ACL_RT_MEM_POOL_ATTR_RELEASE_THRESHOLD = 0x4,
ACL_RT_MEM_POOL_ATTR_RESERVED_MEM_CURRENT = 0x5,
ACL_RT_MEM_POOL_ATTR_RESERVED_MEM_HIGH = 0x6,
ACL_RT_MEM_POOL_ATTR_USED_MEM_CURRENT = 0x7,
ACL_RT_MEM_POOL_ATTR_USED_MEM_HIGH = 0x8
} aclRtMemPoolAttr;
| 枚举项 | 说明 |
|---|---|
| ACL_RT_MEM_POOL_REUSE_FOLLOW_EVENT_DEPENDENCIES | 事件依赖内存复用开关。 在执行某个Stream任务时,系统会查找与该Stream通过Event关联的其他Stream,并复用这些关联Stream中的任务已归还到内存池中的内存。此机制适用于用户应用程序中通过Event实现Stream间任务同步的场景。 属性值类型为uint32_t,取值如下:
|
| ACL_RT_MEM_POOL_REUSE_ALLOW_OPPORTUNISTIC | 机会主义内存复用开关。 在执行某个Stream的任务时,系统会检索内存池中可复用的内存,但不保证内存复用一定成功。当内存复用失败时,程序会报错停止。 属性值类型为uint32_t,取值如下:
|
| ACL_RT_MEM_POOL_REUSE_ALLOW_INTERNAL_DEPENDENCIES | 隐式依赖流间内存复用特性开关。 在执行某个Stream的任务时,系统会检索内存池中可复用的内存。若这些内存曾被其他Stream使用,但相关Stream之间不存在任务依赖关系,则系统将自动在相关Stream之间增加Event同步等待逻辑,以确保前一个Stream中的任务对内存的访问已经结束,从而实现安全的内存复用。 属性值类型为uint32_t,取值如下:
|
| ACL_RT_MEM_POOL_ATTR_RELEASE_THRESHOLD | 释放空闲物理内存时,内存池中要保留的内存大小阈值,单位Byte。默认值为0。 当内存池中的空闲物理内存超过该阈值时,在下一次Stream同步(例如调用aclrtSynchronizeStream接口)时,系统将尝试释放空闲内存。 属性值类型为uint64_t。 |
| ACL_RT_MEM_POOL_ATTR_RESERVED_MEM_CURRENT | 内存池中当前被申请的内存总量,该属性只读。 属性值类型为uint64_t。 |
| ACL_RT_MEM_POOL_ATTR_RESERVED_MEM_HIGH | 内存池中当前被申请的内存总量的历史峰值。 属性值类型为uint64_t。 设置该属性时,属性值只能为0。 |
| ACL_RT_MEM_POOL_ATTR_USED_MEM_CURRENT | 内存池中实际正在使用的内存总量,该属性只读。 属性值类型为uint64_t。 |
| ACL_RT_MEM_POOL_ATTR_USED_MEM_HIGH | 内存池中实际正在使用的内存总量的历史峰值。 属性值类型为uint64_t。 设置该属性时,属性值只能为0。 |