diff --git a/CHANGELOG.md b/CHANGELOG.md index e83f996780..90a1358592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ Please mark all change in change log and use the ticket from JIRA. - \#545 - Avoid dead circle of build index thread when error occurs - \#552 - Server down during building index_type: IVF_PQ using GPU-edition - \#561 - Milvus server should report exception/error message or terminate on mysql metadata backend error +- \#579 - Build index hang in GPU version when gpu_resources disabled - \#599 - Build index log is incorrect - \#602 - Optimizer specify wrong gpu_id - \#606 - No log generated during building index with CPU diff --git a/core/src/db/engine/ExecutionEngineImpl.cpp b/core/src/db/engine/ExecutionEngineImpl.cpp index 9c6a2a0f33..9f2b48642d 100644 --- a/core/src/db/engine/ExecutionEngineImpl.cpp +++ b/core/src/db/engine/ExecutionEngineImpl.cpp @@ -86,6 +86,9 @@ ExecutionEngineImpl::ExecutionEngineImpl(VecIndexPtr index, const std::string& l VecIndexPtr ExecutionEngineImpl::CreatetVecIndex(EngineType type) { + server::Config& config = server::Config::GetInstance(); + bool gpu_resource_enable = true; + config.GetGpuResourceConfigEnable(gpu_resource_enable); std::shared_ptr index; switch (type) { case EngineType::FAISS_IDMAP: { @@ -94,18 +97,20 @@ ExecutionEngineImpl::CreatetVecIndex(EngineType type) { } case EngineType::FAISS_IVFFLAT: { #ifdef MILVUS_GPU_VERSION - index = GetVecIndexFactory(IndexType::FAISS_IVFFLAT_MIX); -#else - index = GetVecIndexFactory(IndexType::FAISS_IVFFLAT_CPU); + if (gpu_resource_enable) + index = GetVecIndexFactory(IndexType::FAISS_IVFFLAT_MIX); + else #endif + index = GetVecIndexFactory(IndexType::FAISS_IVFFLAT_CPU); break; } case EngineType::FAISS_IVFSQ8: { #ifdef MILVUS_GPU_VERSION - index = GetVecIndexFactory(IndexType::FAISS_IVFSQ8_MIX); -#else - index = GetVecIndexFactory(IndexType::FAISS_IVFSQ8_CPU); + if (gpu_resource_enable) + index = GetVecIndexFactory(IndexType::FAISS_IVFSQ8_MIX); + else #endif + index = GetVecIndexFactory(IndexType::FAISS_IVFSQ8_CPU); break; } case EngineType::NSG_MIX: { @@ -120,10 +125,11 @@ ExecutionEngineImpl::CreatetVecIndex(EngineType type) { #endif case EngineType::FAISS_PQ: { #ifdef MILVUS_GPU_VERSION - index = GetVecIndexFactory(IndexType::FAISS_IVFPQ_MIX); -#else - index = GetVecIndexFactory(IndexType::FAISS_IVFPQ_CPU); + if (gpu_resource_enable) + index = GetVecIndexFactory(IndexType::FAISS_IVFPQ_MIX); + else #endif + index = GetVecIndexFactory(IndexType::FAISS_IVFPQ_CPU); break; } case EngineType::SPTAG_KDT: {