Command to free Memory

Hi,

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?

Very thanks,

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.

Hi,

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.