开发者
下载

aclrtLaunchSIMTKernelWithHostArgs

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

功能说明

基于Host内存参数的方式传递SIMT(Single Instruction Multiple Thread)核函数入参,并启动对应算子的计算任务。异步接口。

函数原型

1
aclError aclrtLaunchSIMTKernelWithHostArgs(void *func, dim3 gridDim, dim3 blockDim, size_t dynUbufSize, aclrtStream stream, aclrtLaunchKernelCfg *cfg, void *hostArgs, size_t argsSize, aclrtPlaceHolderInfo *placeHolderArray, size_t placeHolderNum)

参数说明

参数名

输入/输出

说明

func

输入

核函数指针。

此处可以是__global__声明的核函数名(比如myKernel),也可以是aclrtFuncHandle类型的核函数句柄。

gridDim

输入

线程块网格,由多个线程块(Thread Block)组成。Grid采用三维结构,其维度x、y和z分别表示不同维度下线程块的大小。类型定义请参见dim3

blockDim

输入

线程块(Thread Block),采用三维结构,其维度x、y和z分别表示线程块中三个维度的线程数。类型定义请参见dim3

dynUbufSize

输入

用于指定SIMT(Single Instruction Multiple Thread)算子执行时需要的UB(Unified Buffer,统一缓冲区)动态内存大小,单位Byte。若cfg中同时设置了ACL_RT_LAUNCH_KERNEL_ATTR_DYN_UBUF_SIZE属性,本参数值优先级更高。

stream

输入

指定执行任务的Stream。类型定义请参见aclrtStream

cfg

输入

任务下发的配置信息。类型定义请参见aclrtLaunchKernelCfg

不指定配置时,此处可传NULL。

hostArgs

输入

存放核函数所有入参数据的Host内存地址指针。

argsSize

输入

hostArgs参数值的大小,单位为Byte。

placeHolderArray

输入

placeholder参数数组。类型定义请参见aclrtPlaceHolderInfo

placeHolderNum

输入

placeholder参数数组的大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError

约束说明

  • hostArgs内存需按核函数参数顺序紧凑排列,且argsSize需与实际参数总大小一致。
  • placeHolderArray中的地址偏移必须与hostArgs中placeholder参数的实际位置对应。

参考资源

各Launch接口的功能和使用方式对比请参见参考资源