aclrtLaunchKernelWithArgsArray
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
√ |
|
√ |
|
√ |
|
√ |
|
√ |
功能说明
基于参数数组的方式传递核函数入参,并启动对应算子的计算任务。异步接口。
函数原型
1 | aclError aclrtLaunchKernelWithArgsArray(void *func, uint32_t numBlocks, aclrtStream stream, aclrtLaunchKernelCfg *cfg, void **args) |
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
func |
输入 |
内核函数指针(可以是符号名或aclrtFuncHandle)。 |
numBlocks |
输入 |
指定核函数将会在几个核上执行。 |
stream |
输入 |
指定执行任务的Stream。类型定义请参见aclrtStream。 |
cfg |
输入 |
任务下发的配置信息。类型定义请参见aclrtLaunchKernelCfg。 不指定配置时,此处可传NULL。 |
args |
输入 |
参数数组指针。 参数数组中的每个元素均指向核函数参数数据在Host侧的内存地址。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
参数数组中的元素顺序需与核函数参数顺序保持一致,且参数数组大小需与核函数参数数量保持一致,否则会导致未定义行为。
参考资源
下表的几个接口都用于启用对应算子的计算任务,但功能和使用方式有所不同:
接口 |
核函数参数值的传入方式 |
核函数参数值的存放位置 |
是否可指定任务下发的配置信息 |
|---|---|---|---|
在接口中指定存放核函数所有入参数据的Device内存地址指针。 |
Device内存 |
否 |
|
在接口中指定存放核函数所有入参数据的Device内存地址指针。 |
Device内存 |
是 |
|
在接口中指定参数列表句柄aclrtArgsHandle。 |
Host内存 |
是 |
|
在接口中指定存放核函数所有入参数据的Host内存地址指针 |
Host内存 |
是 |
|
在接口中指定存放核函数所有入参数据的参数数组,参数数组中的每个元素指向一个核函数参数数据。 |
Host内存 |
是 |
父主题: Kernel加载与执行