GpuEventSynchronizer improvements
GpuEventSynchronizer needs the following changes/improvements:
-
While OpenCL correctly can assume 1:1 producer-consumer relationship, hence it can call releaseEvent()
at consumption, we need to relax this to allow 1:N relationship. Instead, we should: i) release before marking an event ii) optionally construct the GpuEventSynchronizer with a counter of consumers that we can assert on at release(). -
Extend the implementation with a query feature needed for CUDA polling wait) -
As noted below, a new and better name may be useful.
Archive from user: Aleksei Iupinov
https://gerrit.gromacs.org/#/c/7768/ introduces GpuEventSynchronizer
class, but there are still doubts about its naming.
The class can also later grow methods to query its state (to allow
polling), and to provide the raw underlying GPU events handle to be
modified elsewhere.
The naming should probably reflect that.
HostGpuSynchronizer comes to mind.
(from redmine: issue id 2527, created on 2018-05-28 by gmxdefault)
- Relations:
- relates #2521 (closed)
- parent #3311 (closed)
Edited by Artem Zhmurov