Commit 8eaed609 authored by jinhai's avatar jinhai
Browse files

Merge branch 'branch-0.5.0-yk' into '0.5.0'

Put union of index_build_device and search resources to gpu_pool

See merge request megasearch/milvus!765

Former-commit-id: 0937e90d2cfa840180a73f02a97b8a98ecf19810
parents e13c01d9 f29bad61
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ Please mark all change in change log and use the ticket from JIRA.
- MS-626 - Refactor DataObj to support cache any type data
- MS-648 - Improve unittest
- MS-655 - Upgrade SPTAG
- \#42 - Put union of index_build_device and search resources to gpu_pool

## New Feature
- MS-614 - Preload table at startup
+17 −8
Original line number Diff line number Diff line
@@ -53,26 +53,35 @@ load_simple_config() {
    config.GetResourceConfigSearchResources(pool);

    // 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();

    int32_t build_gpu_id;
    config.GetResourceConfigIndexBuildDevice(build_gpu_id);

    // create and connect
    ResMgrInst::GetInstance()->Add(ResourceFactory::Create("disk", "DISK", 0, true, false));

    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);

    auto pcie = Connection("pcie", 12000);
    bool find_build_gpu_id = false;
    for (auto& gpu_id : gpu_ids) {
        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);
        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);
    }
}

+2 −2
Original line number Diff line number Diff line
@@ -187,8 +187,8 @@ Action::SpecifiedResourceLabelTaskScheduler(ResourceMgrWPtr res_mgr, ResourcePtr
            Status stat = config.GetResourceConfigIndexBuildDevice(build_index_gpu);

            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) {
                for (uint64_t i = 0; i < compute_resources.size(); ++i) {
                    if (compute_resources[i]->name() ==
                        res_mgr.lock()->GetResource(ResourceType::GPU, build_index_gpu)->name()) {
                        find_gpu_res = true;