From f5c6a14b54c092769063d2faa51116ce6fa04d24 Mon Sep 17 00:00:00 2001 From: xujiaqi01 Date: Wed, 20 Mar 2019 14:01:32 +0800 Subject: [PATCH] fix runtime error --- paddle/fluid/framework/fleet/fleet_wrapper.cc | 6 ++++-- paddle/fluid/framework/fleet/fleet_wrapper.h | 1 + python/paddle/fluid/incubate/fleet/base/role_maker.py | 1 + .../incubate/fleet/parameter_server/optimizer_factory.py | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/paddle/fluid/framework/fleet/fleet_wrapper.cc b/paddle/fluid/framework/fleet/fleet_wrapper.cc index 1497628e64..be359ad332 100644 --- a/paddle/fluid/framework/fleet/fleet_wrapper.cc +++ b/paddle/fluid/framework/fleet/fleet_wrapper.cc @@ -170,7 +170,8 @@ void FleetWrapper::PullDenseVarsAsync( const std::vector& var_names, std::vector<::std::future>* pull_dense_status) { #ifdef PADDLE_WITH_PSLIB - std::vector regions; + auto& regions = _regions[tid]; + regions.clear(); regions.resize(var_names.size()); for (auto i = 0u; i < var_names.size(); ++i) { Variable* var = scope.FindVar(var_names[i]); @@ -189,7 +190,8 @@ void FleetWrapper::PullDenseVarsSync( const Scope& scope, const uint64_t tid, const std::vector& var_names) { #ifdef PADDLE_WITH_PSLIB - std::vector regions; + auto& regions = _regions[tid]; + regions.clear(); regions.reserve(var_names.size()); for (auto& t : var_names) { Variable* var = scope.FindVar(t); diff --git a/paddle/fluid/framework/fleet/fleet_wrapper.h b/paddle/fluid/framework/fleet/fleet_wrapper.h index ed3217b376..9e08ef6474 100644 --- a/paddle/fluid/framework/fleet/fleet_wrapper.h +++ b/paddle/fluid/framework/fleet/fleet_wrapper.h @@ -146,6 +146,7 @@ class FleetWrapper { private: static std::shared_ptr s_instance_; + std::map> _regions; protected: static bool is_initialized_; diff --git a/python/paddle/fluid/incubate/fleet/base/role_maker.py b/python/paddle/fluid/incubate/fleet/base/role_maker.py index baaeb1abef..d7088d2b01 100644 --- a/python/paddle/fluid/incubate/fleet/base/role_maker.py +++ b/python/paddle/fluid/incubate/fleet/base/role_maker.py @@ -74,6 +74,7 @@ class MPIRoleMaker(RoleMakerBase): """ def __init__(self): + super(MPIRoleMaker, self).__init__() from mpi4py import MPI self.comm_ = MPI.COMM_WORLD self.MPI = MPI diff --git a/python/paddle/fluid/incubate/fleet/parameter_server/optimizer_factory.py b/python/paddle/fluid/incubate/fleet/parameter_server/optimizer_factory.py index c292881140..461aac8e1e 100644 --- a/python/paddle/fluid/incubate/fleet/parameter_server/optimizer_factory.py +++ b/python/paddle/fluid/incubate/fleet/parameter_server/optimizer_factory.py @@ -141,9 +141,9 @@ class DistributedAdam(DistributedOptimizerImplBase): data_norm_params, data_norm_grads) #program_config.pull_dense_table_id.extend([dense_table_index]) #program_config.push_dense_table_id.extend([dense_table_index]) - program_config[program_id]["pull_dense"].extend( + program_configs[program_id]["pull_dense"].extend( [dense_table_index]) - program_config[program_id]["push_dense"].extend( + program_configs[program_id]["push_dense"].extend( [dense_table_index]) dense_table_index += 1 #program_configs.append(program_config) -- GitLab