aclrtGetMemInfo

函数功能

获取指定属性的AscendCL应用可用内存的空闲大小和总大小,不包括系统预留内存大小。同步接口。

请根据实际硬件支持的情况,选择对应属性的内存,否则调用本接口获取到的空闲大小和总大小都为0。

约束说明

调用本接口前是必须先指定用于计算的Device(例如调用aclrtSetDevice接口指定用于计算的Device),因此本接口中不体现Device ID。

函数原型

aclError aclrtGetMemInfo(aclrtMemAttr attr, size_t *free, size_t *total)

参数说明

参数名

输入/输出

说明

attr

输入

需要查询的内存的属性值。

typedef enum aclrtMemAttr {
    ACL_DDR_MEM, //DDR内存,DDR上所有大页内存+普通内存
    ACL_HBM_MEM, //HBM内存,HBM上所有大页内存+普通内存
    ACL_DDR_MEM_HUGE,  //DDR大页内存
    ACL_DDR_MEM_NORMAL,  //DDR普通内存
    ACL_HBM_MEM_HUGE,  //HBM大页内存
    ACL_HBM_MEM_NORMAL,  //HBM普通内存
    ACL_DDR_MEM_P2P_HUGE,  //DDR中用于Device间数据复制的大页内存
    ACL_DDR_MEM_P2P_NORMAL,  //DDR中用于Device间数据复制的普通内存
    ACL_HBM_MEM_P2P_HUGE,  //HBM中用于Device间数据复制的大页内存
    ACL_HBM_MEM_P2P_NORMAL,  //HBM中用于Device间数据复制的普通内存
} aclrtMemAttr;

free

输出

对应属性内存空闲大小的指针,单位Byte。

total

输出

对应属性内存总大小的指针,单位Byte。

返回值说明

返回0表示成功,返回其它值表示失败。