#579 when gpu resources disabled, use cpu index instead

pull/624/head
yudong.cai 2019-11-30 11:26:40 +08:00
parent 299e245d97
commit dcbe1a0c3f
2 changed files with 16 additions and 9 deletions

View File

@ -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

View File

@ -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<VecIndex> 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: {