我正在尝试使用 CUDA 驱动程序 API 启动内核。具体来说,我在打电话
CUresult CUDAAPI cuLaunchKernel(
CUfunction f,
unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ,
unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ,
unsigned int sharedMemBytes,
CUstream hStream,
void **kernelParams,
void **extra);
我只使用,kernelParams
并传递nullptr
. extra
现在,对于我的一个内核,我得到CUDA_ERROR_INVALID_VALUE
.
文档说:
CUDA_ERROR_INVALID_VALUE
如果内核参数同时指定了kernelParams
andextra
(即两者kernelParams
和extra
都是非NULL
) ,则会返回错误。
好吧,我没有那样做,而且还在CUDA_ERROR_INVALID_VALUE
。为了更加安全,我在启动内核之前同步了流 - 但无济于事。
CUDA_ERROR_INVALID_VALUE
尝试启动时获得的其他原因是什么?