Buffer not realeased if cl_event referring to a write is still present

Buffer not realeased if cl_event referring to a write is still present

Hi everyone,

I wrote a little profiler for my application that collects cl_event objects to evaluate them after the application has done all its work, so not to have an impact on performance. I am also making use of clSetMemObjectDestructorCallback. This tells me that Buffers are not released until I release the cl_event objects which refer to a read or write to the buffers.

Is this desired behaviour? I couldn't find anything in the standard concerning this particular issue. Other implementations do behave differently. Is there may me any way to decouple the buffers from the events so they can be released in my application during "work-time" and not during "profiling-time"? Because this obviously consumes all my memory over runtime.

Best regards


3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello Metthias,

Could you please specify device type you are using and exact driver version?

We will very appriciate if you also could share your application.


Hello Evgeny.

The device is a Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz and I'm using the opencl-1.2-3.0.67279 SDK. Not sure where to find the driver version.

As to giving you the application, I first have to check. I attached my device-wrapper and the profiling class that stores the event objects. You should be able to use them and reproduce the behaviour. (You only need STL and boost::container::flat_map)

Thank you for your time on this.

Best regards,



Downloadapplication/zip oclwrapper.zip15.36 KB

Leave a Comment

Please sign in to add a comment. Not a member? Join today