#include #include namespace c10 { // Return whether all asynchronous work previously enqueued on this stream // has completed running on the device. bool Stream::query() const { impl::VirtualGuardImpl impl{device_.type()}; return impl.queryStream(*this); } // Wait (by blocking the calling thread) until all asynchronous work enqueued // on this stream has completed running on the device. void Stream::synchronize() const { impl::VirtualGuardImpl impl{device_.type()}; impl.synchronizeStream(*this); } // Not very parsable, but I don't know a good compact syntax for streams. // Feel free to change this into something more compact if needed. std::ostream& operator<<(std::ostream& stream, const Stream& s) { stream << "stream " << s.id() << " on device " << s.device(); return stream; } } // namespace c10