HIAIMemory::HIAI_DVPP_DMalloc
用于分配内存, 该接口主要用于分配内存给Device端的DVPP使用。该接口在ai_memory.h中定义。调用该接口申请内存后,必须使用HIAIMemory::HIAI_DVPP_DFree接口释放内存。
函数格式
HIAI_StatusT HIAI_DVPP_DMalloc(const uint32_t dataSize, void*& dataBuffer)
参数说明
参数 |
说明 |
取值范围 |
---|---|---|
dataSize |
内存块大小。 |
0~(256M Bytes-96 Bytes),不包含0。推荐使用(256K Bytes-96 Byte)~(256M Bytes-96 Bytes)。 Device侧模型管家会占用96 Bytes。 |
dataBuffer |
分配出来的内存地址,如果分配失败,为nullptr。 |
- |
返回值
返回的部分错误码请参见“错误码示例”中的“错误码”列。
错误码示例
序号 |
错误码 |
错误码描述 |
---|---|---|
1 |
HIAI_OK |
running ok |
2 |
HIAI_GRAPH_NOT_EXIST |
graph not exist |
3 |
HIAI_GRAPH_MEMORY_POOL_NOT_EXISTED |
memory pool is not existed |
4 |
HIAI_GRAPH_MALLOC_LARGER |
failed to malloc buffer due to the size larger than 256M |
5 |
HIAI_MEMORY_POOL_UPDATE_FAILED |
failed to update memory pool |
6 |
HIAI_GRAPH_SENDMSG_FAILED |
hdc send msg failed |
7 |
HIAI_GRAPH_MEMORY_POOL_INITED |
memory pool has inited |
8 |
HIAI_GRAPH_NO_MEMORY |
no memory |
使用说明
HIAIMemory::HIAI_DVPP_DMalloc是专门为了给DVPP分配内存而新增的一个接口,通过该接口申请的内存能够满足DVPP对内存的各种限制及要求。
如果您在旧版本中使用HIAIMemory::HIAI_DMalloc(1000, buffer, 1000, HIAI_MEMORY_HUGE_PAGE )方式为DVPP申请内存,则需要修改为使用HIAIMemory::HIAI_DVPP_DMalloc接口申请内存。关于HIAIMemory::HIAI_DMalloc接口,请参见HIAIMemory::HIAI_DMalloc。
使用范例:
// 使用HIAI_DVPP_DMalloc申请内存 uint32_t allocSize = 1000; char* allocBuffer = nullptr; HIAI_StatusT ret = hiai::HIAIMemory::HIAI_DVPP_DMalloc(allocSize, (void*&)allocBuffer); if (ret != HIAI_OK || allocBuffer == nullptr) { // 分配失败,进行异常处理 }