From 3e8b6bbcb25156650e0a1faa0d02119f9006f4d8 Mon Sep 17 00:00:00 2001 From: Baibaifan <39549453+Baibaifan@users.noreply.github.com> Date: Tue, 19 Apr 2022 19:21:12 +0800 Subject: [PATCH] fix_nccl_barrier (#41970) --- .../collective/ProcessGroupNCCL.cc | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/paddle/fluid/distributed/collective/ProcessGroupNCCL.cc b/paddle/fluid/distributed/collective/ProcessGroupNCCL.cc index 12de7d116e..86cc5b5db7 100644 --- a/paddle/fluid/distributed/collective/ProcessGroupNCCL.cc +++ b/paddle/fluid/distributed/collective/ProcessGroupNCCL.cc @@ -353,21 +353,8 @@ std::shared_ptr ProcessGroupNCCL::Broadcast( std::shared_ptr ProcessGroupNCCL::Barrier( const BarrierOptions& opts) { - std::vector places; - - if (!opts.place_ids.empty()) { - for (auto place_id : opts.place_ids) { - places.emplace_back(place_id); - } - } else if (!used_place_ids_.empty()) { - for (auto place_id : used_place_ids_) { - places.emplace_back(place_id); - } - } else { - auto numGPUs = GetSize(); - int place_id = static_cast(rank_ % numGPUs); - places.emplace_back(place_id); - } + // Only support single card single process + std::vector places = {place_}; std::vector barrierTensors; barrierTensors.reserve(places.size()); @@ -375,7 +362,7 @@ std::shared_ptr ProcessGroupNCCL::Barrier( platform::CUDADeviceGuard gpuGuard; for (auto& place : places) { gpuGuard.SetDeviceIndex(place.GetDeviceId()); - auto dt = full({1}, 0, phi::DataType::FLOAT32, phi::GPUPlace()); + auto dt = full({1}, 0, phi::DataType::FLOAT32, place); barrierTensors.push_back( *std::dynamic_pointer_cast(dt.impl())); } -- GitLab