NVBIO
|
Implements a WorkQueue using persistent warps to fetch more work at a warp's granularity. with dynamic work assignment (see Work-Queues). Each work-unit is assigned to a single thread, which runs until completion of all its continuations. Useful if some warps finish much earlier than others, but all threads within a warp execute roughly the same amount of work. Potentially destroys intra-CTA memory coherence, although it maintains any warp-level coherence in the input stream. Very low continuation overhead.
see Work-Queues
Definition at line 57 of file work_queue_persistent.h.
#include <work_queue_persistent.h>
Public Types | |
typedef WorkUnitT | WorkUnit |
Public Methods | |
WorkQueue () | |
void | set_capacity (const uint32 capacity) |
template<typename WorkStream > | |
void | consume (const WorkStream stream, WorkQueueStats *stats=NULL) |
template<typename WorkStream , typename WorkMover > | |
void | consume (const WorkStream stream, const WorkMover mover, WorkQueueStats *stats=NULL) |