函数:free
函数:get_mem_info
| C函数原型 | aclError aclrtGetMemInfo(aclrtMemAttr attr, size_t *free, size_t *total) |
|---|---|
| Python函数 | free, total, ret = acl.rt.get_mem_info(attr) |
| 函数功能 | 获取指定属性的pyACL应用可用内存的空闲大小和总大小,不包括系统预留内存大小。同步接口。 请根据实际硬件支持的情况,选择对应属性的内存,否则调用本接口获取到的空闲大小和总大小都为0。 |
| 输入说明 | **attr:**int,需要查询的内存的属性值。 - 0:ACL_DDR_MEM,DDR内存,DDR上所有大页内存 + 普通内存。 - 1:ACL_HBM_MEM,片上内存,片上内存上所有大页内存 + 普通内存。 - 2:ACL_DDR_MEM_HUGE,DDR大页内存。 - 3:ACL_DDR_MEM_NORMAL,DDR普通内存。 - 4:ACL_HBM_MEM_HUGE,片上内存大页内存。 - 5:ACL_HBM_MEM_NORMAL,片上内存普通内存。 - 6:ACL_DDR_MEM_P2P_HUGE,DDR中用于Device间数据复制的大页内存。预留选项。 - 7:ACL_DDR_MEM_P2P_NORMAL,DDR中用于Device间数据复制的普通内存。预留选项。 - 8:ACL_HBM_MEM_P2P_HUGE,片上内存中用于Device间数据复制的大页内存。预留选项。 - 9:ACL_HBM_MEM_P2P_NORMAL,片上内存中用于Device间数据复制的普通内存。预留选项。 |
| 返回值说明 | - free:int,对应属性的内存的空闲大小,单位Byte。 - total:int,对应属性的内存的总大小,单位Byte。 - ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 调用本接口前是必须先指定用于计算的Device,因此本接口中不体现Device ID。 |
父主题: 内存管理
函数:free
| C函数原型 | aclError aclrtFree(void *devPtr) |
|---|---|
| Python函数 | ret= acl.rt.free(dev_ptr) |
| 函数功能 | 释放Device上的内存,同步接口。 acl.rt.free接口只能释放通过acl.rt.malloc接口申请的内存。 |
| 输入说明 | dev_ptr:int,待释放内存的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用示例,参见数据传输。 |
父主题: 内存管理
函数:malloc_host
| C函数原型 | aclError aclrtMallocHost(void **hostPtr, size_t size) |
|---|---|
| Python函数 | host_ptr, ret= acl.rt.malloc_host(size) |
| 函数功能 | 应用在Host上运行时,调用该接口申请的是Host内存,由系统保证内存首地址64字节对齐。 应用在Device上运行时,调用该接口申请的是Device内存,且Device上的内存按普通页申请,如需首地址64字节对齐,需要用户自行处理对齐。同步接口。 |
| 输入说明 | size:int,申请内存的大小,单位Byte。size不能为0。 |
| 返回值说明 | host_ptr:int,指向Host上已分配内存的指针的指针地址。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 使用acl.rt.malloc_host接口申请的内存,需要通过acl.rt.free_host接口释放内存。 - 频繁调用acl.rt.malloc_host接口申请内存、调用acl.rt.free_host接口释放内存,会损耗性能,建议用户提前做内存预先分配或二次管理,避免频繁申请/释放内存。 - 若用户使用本接口申请大块内存并自行划分、管理内存时,每段内存需同时满足以下需求: - 内存大小向上对齐成32整数倍加32字节(m = ALIGN_UP[len, 32] + 32字节)。 - 内存起始地址需满足64字节对齐(ALIGN_UP[m, 64])。(说明:len表示某段内存的大小,ALIGN_UP[len, k]表示向上按k字节对齐:((len - 1) / k + 1) * k。) |
| 参考资源 | 接口调用示例,参见数据传输。 |
父主题: 内存管理
函数:free_host
| C函数原型 | aclError aclrtFreeHost(void *hostPtr) |
|---|---|
| Python函数 | ret= acl.rt.free_host(host_ptr) |
| 函数功能 | 释放Host上的内存,同步接口。 acl.rt.free_host接口只能释放通过acl.rt.malloc_host接口申请的内存。 |
| 输入说明 | host_ptr:int,待释放内存的对象的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用示例,参见数据传输。 |
父主题: 内存管理
在线提单