DeviceMallocFuncHookReg

函数功能

注册自定义内存管理接口-Device内存申请。需与DeviceFreeFuncHookReg接口成对使用,若不匹配,或只注册了其一,会使用默认方式,直接申请/释放内存。该功能仅支持Atlas 推理系列产品

函数原型

APP_ERROR DeviceMallocFuncHookReg(g_deviceMallocFuncType pFun);

参数说明

参数名

输入/输出

说明

g_deviceMallocFuncType

输入

Device内存申请的函数类型。传入的函数需和以下函数类型保持一致:

APP_ERROR (*)(void**, unsigned int, MxMemMallocPolicy);

需要输入的参数依次为:

  • dev_ptr:“DVPP上已分配内存的指针”的指针。
  • Size:申请内存的大小,单位Byte。
  • Policy:内存分配规则,如果用户自定义Device内存分配函数中不涉及CANN底层Device内存的分配策略,可以传任意参数。

MxMemMallocPolicy结构定义:

typedef enum MxMemMallocPolicy {
     MX_MEM_MALLOC_HUGE_FIRST,
     MX_MEM_MALLOC_HUGE_ONLY,
     MX_MEM_MALLOC_NORMAL_ONLY,
     MX_MEM_MALLOC_HUGE_FIRST_P2P,
     MX_MEM_MALLOC_HUGE_ONLY_P2P,
     MX_MEM_MALLOC_NORMAL_ONLY_P2P,
     MX_MEM_TYPE_LOW_BAND_WIDTH = 0x0100,
     MX_MEM_TYPE_HIGH_BAND_WIDTH = 0x1000,
 } MxMemMallocPolicy;

返回参数说明

数据结构

说明

APP_ERROR

程序执行返回的错误码,请参考APP_ERROR说明