MATLAB: CUDA_ERROR_UNKNOWN When Using a CUDAKernel

32bitcudagathergpugpuarraykernelParallel Computing Toolbox

My system:
32bit Matlab (student) on win7 64bit machine.
GeForce GT555m, 2gb
Problem:
I'm trying to use a rotation kernel to rotate 3d pts, but once I use feval with that kernel, any further calls to the gpu (gpuArray, gather, etc.) get the following response, CUDA_ERROR_UNKNOWN.
When I load the kernel I get this response,
Warning: Expected pointer type for kernel argument
1 but found '.u64' in the PTX.
> In C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\distcomp\gpu\+parallel\+internal\+gpu\handleKernelArgs.p>iCheckPTXEntryAgainstCProto at 424
In C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\distcomp\gpu\+parallel\+internal\+gpu\handleKernelArgs.p>handleKernelArgs at 81
Warning: Expected pointer type for kernel argument
2 but found '.u64' in the PTX.
> In C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\distcomp\gpu\+parallel\+internal\+gpu\handleKernelArgs.p>iCheckPTXEntryAgainstCProto at 424
In C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\distcomp\gpu\+parallel\+internal\+gpu\handleKernelArgs.p>handleKernelArgs at 81
Since gpuArray and gather both work before calling feval with that kernel, I'm wondering if there is something wrong with the kernel or if the problem is else where. I have not tried loading a different kernel and running it. Any thoughts?

Best Answer

That warning means you are using 64-bit pointer types on the GPU, whereas the 32-bit host application is using 32-bit pointer types. You need to recompile your PTX code in 32-bit mode. It should work to add "-m 32" to your NVCC command line.
Related Question