diff --git a/projects/clr/rocclr/platform/memory.cpp b/projects/clr/rocclr/platform/memory.cpp index 5a42a435ed..737bffa0c4 100644 --- a/projects/clr/rocclr/platform/memory.cpp +++ b/projects/clr/rocclr/platform/memory.cpp @@ -457,12 +457,11 @@ bool Memory::setDestructorCallback(DestructorCallBackFunction callback, void* da } void Memory::signalWrite(const Device* writer) { - // Disable cache coherency layer for HIP - if (!amd::IS_HIP) { - // (the potential race condition below doesn't matter, no critical - // section needed) - ++version_; - lastWriter_ = writer; + // The potential race condition below doesn't matter, no critical section needed + ++version_; + lastWriter_ = writer; + // Keep subbuffers tracking only for multiple devices and it's not system memory + if ((numDevices() > 1) && (nullptr == getHostMem())) { // Update all subbuffers for this object for (auto buf : subBuffers_) { buf->signalWrite(writer);