After months i discovered a bug into NVidia boards.
When i do any change in kernel, -30 INVALID_VALUE error or CL_OUT_OF_HOST_MEMORY error occurs. But, this problem is not of my code, i don’t know why run don’t update either bitstream that is send for GPU or same GPU memory.
Anyone knows a command outside kernel and inside kernel that i can use to free memory?
There is no function for freeing memory inside a kernel. Those errors indicate that the Nvidia implementation ran into a problem with its own internal memory and there aren’t any functions that you can use to free any of that memory. Could you post a basic kernel that demonstrates the problem and what GPU you are using? You could also try using different driver versions.
Thanks for your help.
It’s happening some strange thing.
I give up honestly, i really don’t know what’s happening.
For instance, my code works fine, so i modified a constant (#define) that is in a .h file that my kernel calls. The kernel run with old value and don’t update inside the code and show the old results.
And the big problem is that If i make any alteration in kernel code, a simple blank space, return execution error, either CL_OUT_OF_HOST_MEMORY or CL_INVALID_VALUE. And don’t have any pattern that define what time one or other error happening.
always check the __private’s memory comsumtion of each __kernel will help
Also always keep this in mind:
5.1 (Unavailable devices)
o If a device(s) becomes unavailable after a context and command-queues that use
this device(s) have been created and commands have been queued to them, the
implementation will fail with the CL_OUT_OF_RESOURCES error for further API
calls. The state of the commands enqueued so far is left undefined.
The application should destroy the objects associated with such a context and
re-query the available device list.