VkCudaLaunchInfoNV
The VkCudaLaunchInfoNV
structure is very close to the parameters of
the CUDA-Driver function
cuLaunchKernel
documented in section
6.19
Execution Control of CUDA Driver API.
The structure is defined as:
typedef struct VkCudaLaunchInfoNV {
VkStructureType sType;
const void* pNext;
VkCudaFunctionNV function;
uint32_t gridDimX;
uint32_t gridDimY;
uint32_t gridDimZ;
uint32_t blockDimX;
uint32_t blockDimY;
uint32_t blockDimZ;
uint32_t sharedMemBytes;
size_t paramCount;
const void* const * pParams;
size_t extraCount;
const void* const * pExtras;
} VkCudaLaunchInfoNV;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.function
is the CUDA-Driver handle to the function being launched.gridDimX
is the number of local workgroups to dispatch in the X dimension. It must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[0]gridDimY
is the number of local workgroups to dispatch in the Y dimension. It must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[1]gridDimZ
is the number of local workgroups to dispatch in the Z dimension. It must be less than or equal toVkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[2]blockDimX
is block size in the X dimension.blockDimY
is block size in the Y dimension.blockDimZ
is block size in the Z dimension.sharedMemBytes
is the dynamic shared-memory size per thread block in bytes.paramCount
is the length of thepParams
table.pParams
is a pointer to an array ofparamCount
pointers, corresponding to the arguments offunction
.extraCount
is reserved for future use.pExtras
is reserved for future use.
Kernel parameters of function
are specified via pParams
, very
much the same way as described in
cuLaunchKernel
If function
has N parameters, then pParams
must be an array of
N pointers and paramCount
must be N. Each of kernelParams
[0]
through kernelParams
[N-1] must point to a region of memory from which
the actual kernel parameter will be copied.
The number of kernel parameters and their offsets and sizes are not
specified here as that information is stored in the VkCudaFunctionNV
object.
The application-owned memory pointed to by pParams
and
kernelParams
[0] through kernelParams
[N-1] are consumed
immediately, and may be altered or freed after
vkCmdCudaLaunchKernelNV has returned.
Valid Usage
VUID-VkCudaLaunchInfoNV-gridDimX-09406
gridDimX
must be less than or equal to
VkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[0]
VUID-VkCudaLaunchInfoNV-gridDimY-09407
gridDimY
must be less than or equal to
VkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[1]
VUID-VkCudaLaunchInfoNV-gridDimZ-09408
gridDimZ
must be less than or equal to
VkPhysicalDeviceLimits
::maxComputeWorkGroupCount
[2]
VUID-VkCudaLaunchInfoNV-paramCount-09409
paramCount
must be the total amount of parameters listed in the
pParams
table
VUID-VkCudaLaunchInfoNV-pParams-09410
pParams
must be a pointer to a table of paramCount
parameters, corresponding to the arguments of function
VUID-VkCudaLaunchInfoNV-extraCount-09411
extraCount
must be 0
VUID-VkCudaLaunchInfoNV-pExtras-09412
pExtras
must be NULL
Valid Usage (Implicit)
VUID-VkCudaLaunchInfoNV-sType-sType
sType
must be VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
VUID-VkCudaLaunchInfoNV-pNext-pNext
pNext
must be NULL
VUID-VkCudaLaunchInfoNV-function-parameter
function
must be a valid VkCudaFunctionNV handle