kernel launch failure

Hi All,

I am a CUDA newbie.

while making a call to my kernel function from the file ,i get the below error : error: expression must have integral or enum type

The error is repeated twice when i try to make the project.

Can Any one advice what i am missing/doing wrong here?

P S : Here is a snippet of the kernel call

while ((p<MaxP+1)&&(pass==0))
// calling kernel to be executed on Device
all req parameters);
CUT_CHECK_ERROR(“mainfactoronGPU() execution failed\n”);
CUDA_SAFE_CALL( cudaThreadSynchronize() );

some multiple if and for conditions


Thanks Much in Advance.


That is a compilation error, not a runtime error. Where is line 289 in your code? (I am guessing it is the call to the kernel you didn’t include using the arguments you didn’t show).

“ error: expression must have integral or enum type” suggest that nvcc expect integral type, One case of this will be when u declared an array in kernel whose dimension is not known at compile time.

Thanks , seems I had a couple of device inline undeclared in my main file and also jumbled up the kernel arguments called from host and the one’s referred in the actual _kernel file…will rectify…

Out of Curiosity : can i refer a constant value for an array as a parameter in my host call to kernel function.

something like


global void main_kernel(double *arr1,double arr2 *);


<<< MyKernelName >>>