aclrtLaunchSIMTKernelWithHostArgs
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
☓ |
|
☓ |
|
☓ |
|
☓ |
|
☓ |
功能说明
基于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接口的功能和使用方式对比请参见参考资源。