diff --git a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp index a5be1940bf..f6af73f13f 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp @@ -605,6 +605,9 @@ VirtualGPU::~VirtualGPU() { virtualQueue_->release(); } + // Lock the device to make the following thread safe + amd::ScopedLock lock(roc_device_.vgpusAccess()); + --roc_device_.numOfVgpus_; // Virtual gpu unique index decrementing roc_device_.vgpus_.erase(roc_device_.vgpus_.begin() + index()); for (uint idx = index(); idx < roc_device_.vgpus().size(); ++idx) {