mirror of https://github.com/milvus-io/milvus.git
Put union of index_build_device and search resources to gpu_pool
Former-commit-id: 8e8f3b081c3af8152cddb1c250a1261f475c7f8apull/191/head
parent
e13c01d9ec
commit
98e5830e14
|
@ -53,26 +53,35 @@ load_simple_config() {
|
||||||
config.GetResourceConfigSearchResources(pool);
|
config.GetResourceConfigSearchResources(pool);
|
||||||
|
|
||||||
// get resources
|
// get resources
|
||||||
bool use_cpu_to_compute = false;
|
|
||||||
for (auto& resource : pool) {
|
|
||||||
if (resource == "cpu") {
|
|
||||||
use_cpu_to_compute = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
auto gpu_ids = get_gpu_pool();
|
auto gpu_ids = get_gpu_pool();
|
||||||
|
|
||||||
|
int32_t build_gpu_id;
|
||||||
|
config.GetResourceConfigIndexBuildDevice(build_gpu_id);
|
||||||
|
|
||||||
// create and connect
|
// create and connect
|
||||||
ResMgrInst::GetInstance()->Add(ResourceFactory::Create("disk", "DISK", 0, true, false));
|
ResMgrInst::GetInstance()->Add(ResourceFactory::Create("disk", "DISK", 0, true, false));
|
||||||
|
|
||||||
auto io = Connection("io", 500);
|
auto io = Connection("io", 500);
|
||||||
ResMgrInst::GetInstance()->Add(ResourceFactory::Create("cpu", "CPU", 0, true, use_cpu_to_compute));
|
ResMgrInst::GetInstance()->Add(ResourceFactory::Create("cpu", "CPU", 0, true, true));
|
||||||
ResMgrInst::GetInstance()->Connect("disk", "cpu", io);
|
ResMgrInst::GetInstance()->Connect("disk", "cpu", io);
|
||||||
|
|
||||||
auto pcie = Connection("pcie", 12000);
|
auto pcie = Connection("pcie", 12000);
|
||||||
|
bool find_build_gpu_id = false;
|
||||||
for (auto& gpu_id : gpu_ids) {
|
for (auto& gpu_id : gpu_ids) {
|
||||||
ResMgrInst::GetInstance()->Add(ResourceFactory::Create(std::to_string(gpu_id), "GPU", gpu_id, true, true));
|
ResMgrInst::GetInstance()->Add(ResourceFactory::Create(std::to_string(gpu_id), "GPU", gpu_id, true, true));
|
||||||
ResMgrInst::GetInstance()->Connect("cpu", std::to_string(gpu_id), pcie);
|
ResMgrInst::GetInstance()->Connect("cpu", std::to_string(gpu_id), pcie);
|
||||||
|
if (build_gpu_id == gpu_id) {
|
||||||
|
find_build_gpu_id = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not find_build_gpu_id) {
|
||||||
|
ResMgrInst::GetInstance()->Add(ResourceFactory::Create(std::to_string(build_gpu_id),
|
||||||
|
"GPU",
|
||||||
|
build_gpu_id,
|
||||||
|
true,
|
||||||
|
true));
|
||||||
|
ResMgrInst::GetInstance()->Connect("cpu", std::to_string(build_gpu_id), pcie);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -187,8 +187,8 @@ Action::SpecifiedResourceLabelTaskScheduler(ResourceMgrWPtr res_mgr, ResourcePtr
|
||||||
Status stat = config.GetResourceConfigIndexBuildDevice(build_index_gpu);
|
Status stat = config.GetResourceConfigIndexBuildDevice(build_index_gpu);
|
||||||
|
|
||||||
bool find_gpu_res = false;
|
bool find_gpu_res = false;
|
||||||
for (uint64_t i = 0; i < compute_resources.size(); ++i) {
|
if (res_mgr.lock()->GetResource(ResourceType::GPU, build_index_gpu) != nullptr) {
|
||||||
if (res_mgr.lock()->GetResource(ResourceType::GPU, build_index_gpu) != nullptr) {
|
for (uint64_t i = 0; i < compute_resources.size(); ++i) {
|
||||||
if (compute_resources[i]->name() ==
|
if (compute_resources[i]->name() ==
|
||||||
res_mgr.lock()->GetResource(ResourceType::GPU, build_index_gpu)->name()) {
|
res_mgr.lock()->GetResource(ResourceType::GPU, build_index_gpu)->name()) {
|
||||||
find_gpu_res = true;
|
find_gpu_res = true;
|
||||||
|
|
Loading…
Reference in New Issue