Native kernels and GPUs

Discussion created by rücsök on May 8, 2011
Latest reply on May 9, 2011 by LeeHowes

Hi all!

I am quite new to GPU programming and OpenCL, so I am sorry in advance if I ask something stupid. My problem is the following.

I was trying to run native C/C++ kernel on a GPU. Actually, it should have worked, since when I queried CL_DEVICE_EXECUTION_CAPABILITIES by calling clGetDeviceInfo() the result was CL_EXEC_NATIVE_KERNEL | CL_EXEC_KERNEL. However, when I tried to run my simple C++ code on my GPU device by calling clEnqueueNativeKernel(), it returned CL_INVALID_OPERATION. (According to the specification it returns this value "if device cannot execute the native kernel.") Anyway, can I execute native C/C++ code on GPU devices? Of course, if I tried this on a CPU device, it worked well, but then, I can't understand why CL_DEVICE_EXECUTION_CAPABILITIES was set to CL_EXEC_NATIVE_KERNEL | CL_EXEC_KERNEL.

Technical background:

 Graphics: ATI Mobility Radeon HD5470 1GB
 Library: AMD APP SDK v.2.4 (64 bit)
 Operating system: Ubuntu Linux (64 bit) with kernel version 2.6.38, latest ATI Catalyst driver installed (fglrx).

Thank you for your help!