HIAI_DMalloc
通过Matrix接口申请Host侧或Device侧的内存块,配合高效数据传输使用。该接口在c_graph.h中定义。
若要给Device端分配DVPP使用的内存,您需要参考HIAI_DVPP_DMalloc。
使用场景:
通过Matrix框架,将大数据从Host端搬运到Device端,该接口需要配合宏:HIAI_REGISTER_SERIALIZE_FUNC使用。
例如:需要将1080P或者4K图像发送到Device端,如果需要提升传输性能,则必须通过HIAI_REGISTER_SERIALIZE_FUNC注册结构体转换和反转函数,另外,大数据块内存则通过HIAI_DMalloc接口申请内存,使用该方式,传输性能将得到很大提升。
该接口主要用于Host与Device的搬运大数据的性能问题,如无性能要求或非传输场景,不建议使用本接口。
函数格式
void* HIAI_DMalloc (const uint32_t dataSize, const uint32_t timeOut, uint32_t flag)
参数说明
参数 |
说明 |
取值范围 |
---|---|---|
dataSize |
内存块大小。 |
|
timeOut |
当内存申请失败时,提供时延进行阻塞等待有空余内存,默认值为500毫秒。 |
- |
flag |
|
typedef enum { MEMORY_ATTR_NONE = 0, //框架自行释放DMalloc内存 MEMORY_ATTR_AUTO_FREE = (0x1 << 1), //需要手动调用DFree释放内存 MEMORY_ATTR_MANUAL_FREE = (0x1 << 2), MEMORY_ATTR_MAX } HIAI_MEMORY_ATTR; |
返回值
使用HIAI_DMalloc接口申请到的内存地址。如果申请失败,则返回空指针。