Commit 128fea3e authored by jinhai's avatar jinhai
Browse files

Merge branch '0.5.1' into '0.5.1'

0.5.1

See merge request megasearch/milvus!808

Former-commit-id: 04bacaed9d48e95253b25d858800b25751bafea9
parents c9dc37e9 251d5cf4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -6,12 +6,13 @@ Please mark all change in change log and use the ticket from JIRA.

## Bug
- \#134 - JFrog cache error
- \#161 - Search IVFSQHybrid crash on gpu

## Feature
- \#90 - The server start error messages could be improved to enhance user experience
- \#104 - test_scheduler core dump
- \#115 - Using new structure for tasktable
- \#139 - New config opion use_gpu_threshold
- \#139 - New config option use_gpu_threshold
- \#146 - Add only GPU and only CPU version for IVF_SQ8 and IVF_FLAT

## Improvement
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ metadata:
spec:
  containers:
  - name: milvus-build-env
    image: registry.zilliz.com/milvus/milvus-build-env:v0.5.0-ubuntu18.04
    image: registry.zilliz.com/milvus/milvus-build-env:v0.5.1-ubuntu18.04
    env:
    - name: POD_IP
      valueFrom:
+2 −0
Original line number Diff line number Diff line
@@ -256,6 +256,7 @@ ExecutionEngineImpl::Load(bool to_cache) {

Status
ExecutionEngineImpl::CopyToGpu(uint64_t device_id, bool hybrid) {
#if 0
    if (hybrid) {
        const std::string key = location_ + ".quantizer";
        std::vector<uint64_t> gpus{device_id};
@@ -307,6 +308,7 @@ ExecutionEngineImpl::CopyToGpu(uint64_t device_id, bool hybrid) {
        }
        return Status::OK();
    }
#endif

    auto index = std::static_pointer_cast<VecIndex>(cache::GpuCacheMgr::GetInstance(device_id)->GetIndex(location_));
    bool already_in_cache = (index != nullptr);
+6 −14
Original line number Diff line number Diff line
@@ -84,22 +84,14 @@ IVFSQHybrid::CopyGpuToCpu(const Config& config) {

VectorIndexPtr
IVFSQHybrid::CopyCpuToGpu(const int64_t& device_id, const Config& config) {
    if (gpu_mode != 0) {
        KNOWHERE_THROW_MSG("Not a GpuIndex Type");
    }

    if (auto res = FaissGpuResourceMgr::GetInstance().GetRes(device_id)) {
        ResScope rs(res, device_id, false);
        faiss::gpu::GpuClonerOptions option;
        option.allInGpu = true;

        faiss::IndexComposition index_composition;
        index_composition.index = index_.get();
        index_composition.quantizer = nullptr;
        index_composition.mode = 0;  // copy all

        auto gpu_index = faiss::gpu::index_cpu_to_gpu(res->faiss_res.get(), device_id, &index_composition, &option);

        auto idx = dynamic_cast<faiss::IndexIVF*>(index_.get());
        idx->restore_quantizer();
        auto gpu_index = faiss::gpu::index_cpu_to_gpu(res->faiss_res.get(), device_id, index_.get(), &option);
        std::shared_ptr<faiss::Index> device_index = std::shared_ptr<faiss::Index>(gpu_index);
        auto new_idx = std::make_shared<IVFSQHybrid>(device_index, device_id, res);
        return new_idx;
+4 −0
Original line number Diff line number Diff line
@@ -213,6 +213,10 @@ TEST_P(IVFTest, clone_test) {
        }
    }

    if (index_type == "IVFSQHybrid") {
        return;
    }

    {
        // copy to gpu
        std::vector<std::string> support_idx_vec{"IVF", "GPUIVF", "IVFSQ", "GPUIVFSQ"};
Loading