开发者
资源

aclrtMemPoolAttr

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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;
表1 枚举项说明

枚举项

说明

ACL_RT_MEM_POOL_REUSE_FOLLOW_EVENT_DEPENDENCIES

事件依赖内存复用开关。

在执行某个Stream的任务时,系统会查找与该Stream通过Event关联的其他Stream,并复用这些关联Stream中的任务已归还到内存池中的内存。此机制适用于用户应用程序中通过Event实现Stream间任务同步的场景。

属性值类型为uint32_t,取值如下:

  • 1:启用事件依赖内存复用。
  • 0:关闭事件依赖内存复用。

ACL_RT_MEM_POOL_REUSE_ALLOW_OPPORTUNISTIC

机会主义内存复用开关。

在执行某个Stream的任务时,系统会检索内存池中可复用的内存,但不保证内存复用一定成功。当内存复用失败时,程序会报错停止

属性值类型为uint32_t,取值如下:

  • 1:启用机会主义内存复用
  • 0:关闭机会主义内存复用

ACL_RT_MEM_POOL_REUSE_ALLOW_INTERNAL_DEPENDENCIES

隐式依赖内存复用开关。

在执行某个Stream的任务时,系统会检索内存池中可复用的内存。若这些内存曾被其他Stream使用,但相关Stream之间不存在任务依赖关系,则系统将自动在相关Stream之间增加Event同步等待逻辑,以确保前一个Stream中的任务对内存的访问已经结束,从而实现安全的内存复用。

属性值类型为uint32_t,取值如下:

  • 1:启用隐式依赖内存复用。
  • 0:关闭隐式依赖内存复用。

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。