更新时间:2021-03-18 GMT+08:00
分享

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) {
    // 分配失败,进行异常处理
}
分享:

    相关文档

    相关产品