diff --git a/projects/clr/hipamd/src/hip_stream.cpp b/projects/clr/hipamd/src/hip_stream.cpp index 583770ec8a..22b509c439 100644 --- a/projects/clr/hipamd/src/hip_stream.cpp +++ b/projects/clr/hipamd/src/hip_stream.cpp @@ -292,11 +292,14 @@ public: ~stream_per_thread() { if (m_stream != nullptr && hip::isValid(m_stream)) { delete reinterpret_cast(m_stream); + m_stream = nullptr; } } hipStream_t& get() { - if (m_stream == nullptr) { + // There is a scenario where hipResetDevice destroys stream per thread + // hence isValid check is required to make sure only valid stream is used + if (m_stream == nullptr || !hip::isValid(m_stream)) { ihipStreamCreate(&m_stream, hipStreamDefault, hip::Stream::Priority::Normal); } return m_stream;