From f5fa1725b7ed9474b8a2f136b0d7c18d4dc0e875 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 12 Sep 2025 15:31:31 +0800 Subject: [PATCH] [IPC] remove map for receiver --- .../csrc/core/npu/NPUCachingAllocator.cpp | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/torch_npu/csrc/core/npu/NPUCachingAllocator.cpp b/torch_npu/csrc/core/npu/NPUCachingAllocator.cpp index 40105094de..f51c0149c9 100644 --- a/torch_npu/csrc/core/npu/NPUCachingAllocator.cpp +++ b/torch_npu/csrc/core/npu/NPUCachingAllocator.cpp @@ -361,9 +361,6 @@ However, it is possible to temporarily disable (expandable_segments:False) the bevhavior for allocator tensors that need to be used cross-process. */ -std::mutex ipcHandleMutex; -ska::flat_hash_map ipcShareableHandle_to_handle; -ska::flat_hash_set ipcHandles; struct ExpandableSegment { ExpandableSegment( @@ -496,7 +493,6 @@ struct ExpandableSegment { c10::DeviceIndex device, std::istream& buf) { - std::lock_guard lock(ipcHandleMutex); ShareHeader header{}; buf.read((char*)&header, sizeof(ShareHeader)); auto segment = std::make_unique( @@ -509,20 +505,11 @@ struct ExpandableSegment { uint64_t shareableHandle = 0; buf.read((char*)&shareableHandle, sizeof(uint64_t)); - auto iter = ipcShareableHandle_to_handle.find(shareableHandle); - if (iter != ipcShareableHandle_to_handle.end()) { - aclrtDrvMemHandle handle = iter->second; - segment->handles_.emplace_back(Handle{handle, shareableHandle}); - continue; - } - int32_t deviceId = static_cast(device); aclrtDrvMemHandle handle; NPU_CHECK_ERROR(c10_npu::acl::AclrtMemImportFromShareableHandle( shareableHandle, deviceId, &handle)); segment->handles_.emplace_back(Handle{handle, shareableHandle}); - ipcShareableHandle_to_handle.insert(iter, {shareableHandle, handle}); - ipcHandles.insert(handle); } segment->mapAndSetAccess(0, header.num_handles); return segment; @@ -592,13 +579,6 @@ private: Handle h = handles_.at(i).value(); handles_.at(i) = c10::nullopt; NPU_CHECK_ERROR(c10_npu::acl::AclrtUnmapMem((char *)ptr_ + segment_size_ * i, getHcclComm())); - if (C10_UNLIKELY(h.shareableHandle)) { - std::lock_guard lock(ipcHandleMutex); - auto iter = ipcHandles.find(h.handle); - if (iter != ipcHandles.end()) { - continue; - } - } NPU_CHECK_ERROR(c10_npu::acl::AclrtFreePhysical(h.handle)); } ASCEND_LOGD("NPUCachingAllocator unmap: segment_size=%zu", segment_size_); @@ -3333,11 +3313,6 @@ public: void clearIpcHandles() override { - std::lock_guard lock(ipcHandleMutex); - for (auto &handle : ipcHandles) { - NPU_CHECK_ERROR(c10_npu::acl::AclrtFreePhysical(handle)); - } - ipcHandles.clear(); } void *getBaseAllocation(void *ptr, size_t *outSize) override -- Gitee