I got a problem concerning the gpu computing sdk 3.2. Before updating I used OpenCL 1.0 for my calculations and everything just worked fine. When updating to OpenCL 1.1 with the SDK 3.2 from Nvidia I get an OUT_OF_RESOURCE exception when trying to copy buffers from device to host via clEnqueueReadBuffer. When calling the nonblocking version of the function it doesn’t crash but I also don’t get correct results at all. Any ideas on how to fix this? Any big changes in OpenCL 1.1 compared to 1.0 that might cause this exception?
Using threaded access to the CPU with a command queue per thread.
If I use regular memory, I get silent errors (memory sent to the GPU is corrupted), no error given.
If I use pinned memory to write to the GPU. I will get an CL_MEM_OBJECT_ALLOCATION_FAILURE trying to get the SECOND buffer from the GPU (no matter which buffer I read from the GPU, it is the second read that fails).
To potentially answer your question,
With either case I will get an CL_OUT_OF_RESOURCES error if the buffer size is greater than as little as 9MB.
Which release of OpenCL 1.1 are you using? CUDA SDK 3.2 provides OpenCL 1.0 only. If you are talking about the OpenCL 1.1 pre-release, consider that it does not work with newer cards (reported multiple times in this forum) and I would not bet it is working with recent CUDA SDK releases.
Besides, you should check read/write access for your user to /dev/nvidia*, if you are running Linux.
I failed to find the reports of OpenCL 1.1 pre-release not functioning with newer cards. Could you point to one of the discussions? Given that all my problems are with a GTX 580, I am most interested in reading them.