10 #include <rapidsmpf/cuda_event.hpp>
33 template <
typename Range1,
typename Range2>
35 Range1
const& downstreams, Range2
const& upstreams,
CudaEvent* event =
nullptr
41 if (upstream.value() != downstream.value()) {
55 std::unique_ptr<CudaEvent> tmp_event;
56 if (event ==
nullptr) {
57 tmp_event = std::make_unique<CudaEvent>();
58 event = tmp_event.get();
63 event->record(upstream);
65 if (upstream.value() != downstream.value()) {
66 event->stream_wait(downstream);
97 std::views::single(downstream), std::views::single(upstream), event
RAII wrapper for a CUDA event with convenience methods.
RAPIDS Multi-Processor interfaces.
void cuda_stream_join(Range1 const &downstreams, Range2 const &upstreams, CudaEvent *event=nullptr)
Make downstream CUDA streams wait on upstream CUDA streams.