动态Shape场景下,将算子注册到系统内部,运行算子时使用。
aclError aclopCreateKernel(const char *opType,
const char *kernelId,
const char *kernelName,
void *binData,
int binSize,
aclopEngineType enginetype,
aclDataDeallocator deallocator)
参数名 |
输入/输出 |
说明 |
---|---|---|
opType |
输入 |
算子类型的指针。 |
kernelId |
输入 |
算子执行时要指定的Kernel ID的指针。 |
kernelName |
输入 |
算子Kernel名称的指针,和算子二进制文件中的kernelName保持一致。 |
binData |
输入 |
算子Kernel文件的内存地址指针。 |
binSize |
输入 |
算子Kernel文件的内存大小,单位为Byte。 |
enginetype |
输入 |
表示算子执行引擎。 typedef enum aclEngineType { ACL_ENGINE_SYS, //不关心具体执行引擎时填写 ACL_ENGINE_AICORE, //将算子编译成AI Core算子 ACL_ENGINE_VECTOR, //将算子编译成Vector Core算子 } aclopEngineType; |
deallocator |
输入 |
释放binData内存的回调函数,调用者根据binData的构造方法设置对应的释放函数。如果数据由调用者释放则设置为空。 函数签名为: typedef void (*aclDataDeallocator)(void *data, size_t length); |
返回0表示成功,返回其它值表示失败。
接口调用流程及示例,参见执行动态Shape算子示例代码(注册算子选择器)。