aclopSetKernelArgs
aclopUnregisterCompileFunc
函数功能
动态Shape场景下,取消注册算子选择器。
函数原型
aclError aclopUnregisterCompileFunc(const char *opType)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opType | 输入 | 算子类型的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 算子编译
aclopCreateKernel
函数功能
动态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 | 输入 | 表示算子执行引擎。 text<br>typedef enum aclEngineType {<br> ACL_ENGINE_SYS, //不关心具体执行引擎时填写<br> ACL_ENGINE_AICORE, //将算子编译成AI Core算子<br> ACL_ENGINE_VECTOR, //将算子编译成Vector Core算子<br>} aclopEngineType;<br> |
| deallocator | 输入 | 释放binData内存的回调函数,调用者根据binData的构造方法设置对应的释放函数。如果数据由调用者释放则设置为空。 函数签名为: typedef void (*aclDataDeallocator)(void *data, size_t length); |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 算子编译
aclopSetKernelArgs
函数功能
动态Shape场景下,设置算子Tiling参数、执行并发数。
函数原型
aclError aclopSetKernelArgs(aclopKernelDesc *kernelDesc,
const char *kernelId,
uint32_t blockDim,
const void *args,
uint32_t argSize)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| kernelDesc | 输入 | Kernel描述缓存,aclopKernelDesc类型的指针。 text<br>typedef struct aclopKernelDesc aclopKernelDesc;<br> |
| kernelId | 输入 | 算子执行时要指定的Kernel ID的指针,与调用aclopCreateKernel时传递的kernelId一致。 |
| blockDim | 输入 | Kernel执行的并发AI Core核数。 建议此处设置的blockDim和TIK算子实现时的使用的AI Core核数保持一致。 |
| args | 输入 | Tiling参数的指针。 |
| argSize | 输入 | Tiling参数内存大小,单位为Byte。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 算子编译
aclopSetKernelWorkspaceSizes
函数功能
动态Shape场景下,设置算子Workspace参数。为非必须接口,根据算子情况可选。
函数原型
aclError aclopSetKernelWorkspaceSizes(aclopKernelDesc *kernelDesc, int numWorkspaces, size_t *workspaceSizes)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| kernelDesc | 输入 | Kernel描述缓存,aclopKernelDesc类型的指针。 text<br>typedef struct aclopKernelDesc aclopKernelDesc<br> |
| numWorkspaces | 输入 | Workspaces个数。 |
| workspaceSizes | 输入 | Workspaces大小的数组地址指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 算子编译
aclopUpdateParams
函数功能
在算子动态Shape场景下,根据指定算子,触发调用算子选择器。
函数原型
aclError aclopUpdateParams(const char *opType,
int numInputs,
const aclTensorDesc *const inputDesc[],
int numOutputs,
const aclTensorDesc *const outputDesc[],
const aclopAttr *attr**)**
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opType | 输入 | 算子类型名称的指针。 |
| numInputs | 输入 | 算子输入tensor的数量。 |
| inputDesc | 输入 | 算子输入tensor的描述的指针数组。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 inputDesc数组中的元素个数必须与numInputs参数值保持一致。 |
| numOutputs | 输入 | 算子输出tensor的数量。 |
| outputDesc | 输入 | 算子输出tensor的描述的指针数组。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 outputDesc数组中的元素个数必须与numOutputs参数值保持一致。 |
| attr | 输入 | 算子属性的指针。 需提前调用aclopCreateAttr接口创建aclopAttr类型。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 算子编译
在线提单