diff --git a/core/src/scheduler/selector/BuildIndexPass.cpp b/core/src/scheduler/selector/BuildIndexPass.cpp index 42a0736b0f..4047f2b999 100644 --- a/core/src/scheduler/selector/BuildIndexPass.cpp +++ b/core/src/scheduler/selector/BuildIndexPass.cpp @@ -47,13 +47,9 @@ BuildIndexPass::Run(const TaskPtr& task) { LOG_SERVER_WARNING_ << "BuildIndexPass cannot get build index gpu!"; return false; } - - if (specified_gpu_id_ >= build_gpus_.size()) { - specified_gpu_id_ = specified_gpu_id_ % build_gpus_.size(); - } - LOG_SERVER_DEBUG_ << "Specify gpu" << specified_gpu_id_ << " to build index!"; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, build_gpus_[specified_gpu_id_]); - specified_gpu_id_ = (specified_gpu_id_ + 1) % build_gpus_.size(); + LOG_SERVER_DEBUG_ << "Specify gpu" << build_gpus_[idx_] << " to build index!"; + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, build_gpus_[idx_]); + idx_ = (idx_ + 1) % build_gpus_.size(); } auto label = std::make_shared(std::weak_ptr(res_ptr)); diff --git a/core/src/scheduler/selector/BuildIndexPass.h b/core/src/scheduler/selector/BuildIndexPass.h index 7f3b8047fc..220ac69049 100644 --- a/core/src/scheduler/selector/BuildIndexPass.h +++ b/core/src/scheduler/selector/BuildIndexPass.h @@ -40,7 +40,7 @@ class BuildIndexPass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - uint64_t specified_gpu_id_ = 0; + uint64_t idx_ = 0; }; using BuildIndexPassPtr = std::shared_ptr; diff --git a/core/src/scheduler/selector/FaissFlatPass.cpp b/core/src/scheduler/selector/FaissFlatPass.cpp index c3b86ee99b..01b21b9a14 100644 --- a/core/src/scheduler/selector/FaissFlatPass.cpp +++ b/core/src/scheduler/selector/FaissFlatPass.cpp @@ -61,11 +61,10 @@ FaissFlatPass::Run(const TaskPtr& task) { "search", 0); res_ptr = ResMgrInst::GetInstance()->GetResource("cpu"); } else { - auto best_device_id = count_ % search_gpus_.size(); - LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissFlatPass: nq > gpu_search_threshold, specify gpu %d to search!", - "search", 0, best_device_id); - ++count_; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[best_device_id]); + LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissFlatPass: nq >= gpu_search_threshold, specify gpu %d to search!", + "search", 0, search_gpus_[idx_]); + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[idx_]); + idx_ = (idx_ + 1) % search_gpus_.size(); } auto label = std::make_shared(res_ptr); task->label() = label; diff --git a/core/src/scheduler/selector/FaissFlatPass.h b/core/src/scheduler/selector/FaissFlatPass.h index a1ebeb9b47..54231c4b16 100644 --- a/core/src/scheduler/selector/FaissFlatPass.h +++ b/core/src/scheduler/selector/FaissFlatPass.h @@ -41,7 +41,7 @@ class FaissFlatPass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - int64_t count_ = 0; + int64_t idx_ = 0; }; using FaissFlatPassPtr = std::shared_ptr; diff --git a/core/src/scheduler/selector/FaissIVFFlatPass.cpp b/core/src/scheduler/selector/FaissIVFFlatPass.cpp index 6ba62b3a0c..25ea7f0f49 100644 --- a/core/src/scheduler/selector/FaissIVFFlatPass.cpp +++ b/core/src/scheduler/selector/FaissIVFFlatPass.cpp @@ -62,11 +62,10 @@ FaissIVFFlatPass::Run(const TaskPtr& task) { "search", 0); res_ptr = ResMgrInst::GetInstance()->GetResource("cpu"); } else { - auto best_device_id = count_ % search_gpus_.size(); - LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFFlatPass: nq > gpu_search_threshold, specify gpu %d to search!", - "search", 0, best_device_id); - count_++; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[best_device_id]); + LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFFlatPass: nq >= gpu_search_threshold, specify gpu %d to search!", + "search", 0, search_gpus_[idx_]); + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[idx_]); + idx_ = (idx_ + 1) % search_gpus_.size(); } auto label = std::make_shared(res_ptr); task->label() = label; diff --git a/core/src/scheduler/selector/FaissIVFFlatPass.h b/core/src/scheduler/selector/FaissIVFFlatPass.h index dda315c64a..2c1b4e7ebb 100644 --- a/core/src/scheduler/selector/FaissIVFFlatPass.h +++ b/core/src/scheduler/selector/FaissIVFFlatPass.h @@ -41,7 +41,7 @@ class FaissIVFFlatPass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - int64_t count_ = 0; + int64_t idx_ = 0; }; using FaissIVFFlatPassPtr = std::shared_ptr; diff --git a/core/src/scheduler/selector/FaissIVFPQPass.cpp b/core/src/scheduler/selector/FaissIVFPQPass.cpp index de213f4079..32acc0c4bc 100644 --- a/core/src/scheduler/selector/FaissIVFPQPass.cpp +++ b/core/src/scheduler/selector/FaissIVFPQPass.cpp @@ -64,11 +64,10 @@ FaissIVFPQPass::Run(const TaskPtr& task) { "search", 0); res_ptr = ResMgrInst::GetInstance()->GetResource("cpu"); } else { - auto best_device_id = count_ % search_gpus_.size(); - LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFPQPass: nq > gpu_search_threshold, specify gpu %d to search!", - "search", 0, best_device_id); - ++count_; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[best_device_id]); + LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFPQPass: nq >= gpu_search_threshold, specify gpu %d to search!", + "search", 0, search_gpus_[idx_]); + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[idx_]); + idx_ = (idx_ + 1) % search_gpus_.size(); } auto label = std::make_shared(res_ptr); task->label() = label; diff --git a/core/src/scheduler/selector/FaissIVFPQPass.h b/core/src/scheduler/selector/FaissIVFPQPass.h index f4fca581d2..b4fa296537 100644 --- a/core/src/scheduler/selector/FaissIVFPQPass.h +++ b/core/src/scheduler/selector/FaissIVFPQPass.h @@ -41,7 +41,7 @@ class FaissIVFPQPass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - int64_t count_ = 0; + int64_t idx_ = 0; }; using FaissIVFPQPassPtr = std::shared_ptr; diff --git a/core/src/scheduler/selector/FaissIVFSQ8HPass.cpp b/core/src/scheduler/selector/FaissIVFSQ8HPass.cpp index e1f79a1650..7dc3546ef0 100644 --- a/core/src/scheduler/selector/FaissIVFSQ8HPass.cpp +++ b/core/src/scheduler/selector/FaissIVFSQ8HPass.cpp @@ -62,11 +62,10 @@ FaissIVFSQ8HPass::Run(const TaskPtr& task) { "search", 0); res_ptr = ResMgrInst::GetInstance()->GetResource("cpu"); } else { - auto best_device_id = count_ % search_gpus_.size(); - LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFSQ8HPass: nq > gpu_search_threshold, specify gpu %d to search!", - "search", 0, best_device_id); - ++count_; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[best_device_id]); + LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFSQ8HPass: nq >= gpu_search_threshold, specify gpu %d to search!", + "search", 0, search_gpus_[idx_]); + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[idx_]); + idx_ = (idx_ + 1) % search_gpus_.size(); } auto label = std::make_shared(res_ptr); task->label() = label; diff --git a/core/src/scheduler/selector/FaissIVFSQ8HPass.h b/core/src/scheduler/selector/FaissIVFSQ8HPass.h index c9da0f5829..1050352c01 100644 --- a/core/src/scheduler/selector/FaissIVFSQ8HPass.h +++ b/core/src/scheduler/selector/FaissIVFSQ8HPass.h @@ -41,7 +41,7 @@ class FaissIVFSQ8HPass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - int64_t count_ = 0; + int64_t idx_ = 0; }; using FaissIVFSQ8HPassPtr = std::shared_ptr; diff --git a/core/src/scheduler/selector/FaissIVFSQ8Pass.cpp b/core/src/scheduler/selector/FaissIVFSQ8Pass.cpp index 28a210a61b..c93adbfbe4 100644 --- a/core/src/scheduler/selector/FaissIVFSQ8Pass.cpp +++ b/core/src/scheduler/selector/FaissIVFSQ8Pass.cpp @@ -62,11 +62,10 @@ FaissIVFSQ8Pass::Run(const TaskPtr& task) { "search", 0); res_ptr = ResMgrInst::GetInstance()->GetResource("cpu"); } else { - auto best_device_id = count_ % search_gpus_.size(); - LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFSQ8Pass: nq > gpu_search_threshold, specify gpu %d to search!", - "search", 0, best_device_id); - count_++; - res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[best_device_id]); + LOG_SERVER_DEBUG_ << LogOut("[%s][%d] FaissIVFSQ8Pass: nq >= gpu_search_threshold, specify gpu %d to search!", + "search", 0, search_gpus_[idx_]); + res_ptr = ResMgrInst::GetInstance()->GetResource(ResourceType::GPU, search_gpus_[idx_]); + idx_ = (idx_ + 1) % search_gpus_.size(); } auto label = std::make_shared(res_ptr); task->label() = label; diff --git a/core/src/scheduler/selector/FaissIVFSQ8Pass.h b/core/src/scheduler/selector/FaissIVFSQ8Pass.h index b3207763f7..99530c7635 100644 --- a/core/src/scheduler/selector/FaissIVFSQ8Pass.h +++ b/core/src/scheduler/selector/FaissIVFSQ8Pass.h @@ -41,7 +41,7 @@ class FaissIVFSQ8Pass : public Pass, public server::GpuResourceConfigHandler { Run(const TaskPtr& task) override; private: - int64_t count_ = 0; + int64_t idx_ = 0; }; using FaissIVFSQ8PassPtr = std::shared_ptr;