如何释放包含等待内核的命令队列?



在命令队列中,我有一个用户事件E和内核K1、K2和K3。

I队列K1,等待事件到e

I排队K2,等待事件设置为K1的完成事件。

对K3进行排队,等待事件设置为K2的完成事件。

假设我需要在E触发之前释放这个命令队列。我该怎么做呢?目前,release只是挂起。事件如果我将E上的事件状态设置为-1,仍然不释放。

没有办法做到这一点,至少在

我知道,这很糟糕。

释放队列将首先调用队列中的clFinish(),从而导致锁定情况。


我自己也遇到过这种情况,当我有足够的GPU资源时,CPU是瓶颈。所以我在GPU中排队等待下一个迭代,并根据CPU的结果,是否足够,我运行更多的迭代或丢弃GPU的结果。

如果能够在CPU知道不再需要的数据时立即停止排队执行,那就太好了。但是你要么稍后排队(导致一些GPU空闲时间),要么一直运行它,但如果不需要它就不要等待结果(导致额外的GPU使用)。

最新更新