Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ Please mark all change in change log and use the ticket from JIRA. - \#658 - Milvus error out when building SQ8H index without GPU resources - \#668 - Update badge of README - \#670 - Random failure of unittest db_test::SEARCH_TEST - \#705 - Fix search SQ8H crash without GPU resource ## Feature - \#12 - Pure CPU version for Milvus Loading core/src/db/engine/ExecutionEngineImpl.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,7 @@ ExecutionEngineImpl::Init() { Status s = config.GetGpuResourceConfigBuildIndexResources(gpu_ids); if (!s.ok()) { gpu_num_ = knowhere::INVALID_VALUE; return s; } for (auto id : gpu_ids) { if (gpu_num_ == id) { Loading core/src/wrapper/VecIndex.cpp +17 −7 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ #include "knowhere/index/vector_index/IndexIVFSQ.h" #include "knowhere/index/vector_index/IndexNSG.h" #include "knowhere/index/vector_index/IndexSPTAG.h" #include "server/Config.h" #include "utils/Exception.h" #include "utils/Log.h" #ifdef MILVUS_GPU_VERSION Loading Loading @@ -145,6 +147,10 @@ GetVecIndexFactory(const IndexType& type, const Config& cfg) { index = std::make_shared<knowhere::GPUIVF>(gpu_device); break; } case IndexType::FAISS_IVFFLAT_MIX: { index = std::make_shared<knowhere::GPUIVF>(gpu_device); return std::make_shared<IVFMixIndex>(index, IndexType::FAISS_IVFFLAT_MIX); } case IndexType::FAISS_IVFPQ_GPU: { index = std::make_shared<knowhere::GPUIVFPQ>(gpu_device); break; Loading @@ -161,16 +167,20 @@ GetVecIndexFactory(const IndexType& type, const Config& cfg) { index = std::make_shared<knowhere::GPUIVFSQ>(gpu_device); break; } case IndexType::FAISS_IVFFLAT_MIX: { index = std::make_shared<knowhere::GPUIVF>(gpu_device); return std::make_shared<IVFMixIndex>(index, IndexType::FAISS_IVFFLAT_MIX); } #endif #ifdef CUSTOMIZATION case IndexType::FAISS_IVFSQ8_HYBRID: { server::Config& config = server::Config::GetInstance(); bool gpu_resource_enable = true; config.GetGpuResourceConfigEnable(gpu_resource_enable); if (gpu_resource_enable) { index = std::make_shared<knowhere::IVFSQHybrid>(gpu_device); return std::make_shared<IVFHybridIndex>(index, IndexType::FAISS_IVFSQ8_HYBRID); } else { throw Exception(DB_ERROR, "No GPU resources for IndexType::FAISS_IVFSQ8_HYBRID"); } } #endif #endif case IndexType::NSG_MIX: { // TODO(linxj): bug. index = std::make_shared<knowhere::NSG>(gpu_device); Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ Please mark all change in change log and use the ticket from JIRA. - \#658 - Milvus error out when building SQ8H index without GPU resources - \#668 - Update badge of README - \#670 - Random failure of unittest db_test::SEARCH_TEST - \#705 - Fix search SQ8H crash without GPU resource ## Feature - \#12 - Pure CPU version for Milvus Loading
core/src/db/engine/ExecutionEngineImpl.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,7 @@ ExecutionEngineImpl::Init() { Status s = config.GetGpuResourceConfigBuildIndexResources(gpu_ids); if (!s.ok()) { gpu_num_ = knowhere::INVALID_VALUE; return s; } for (auto id : gpu_ids) { if (gpu_num_ == id) { Loading
core/src/wrapper/VecIndex.cpp +17 −7 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ #include "knowhere/index/vector_index/IndexIVFSQ.h" #include "knowhere/index/vector_index/IndexNSG.h" #include "knowhere/index/vector_index/IndexSPTAG.h" #include "server/Config.h" #include "utils/Exception.h" #include "utils/Log.h" #ifdef MILVUS_GPU_VERSION Loading Loading @@ -145,6 +147,10 @@ GetVecIndexFactory(const IndexType& type, const Config& cfg) { index = std::make_shared<knowhere::GPUIVF>(gpu_device); break; } case IndexType::FAISS_IVFFLAT_MIX: { index = std::make_shared<knowhere::GPUIVF>(gpu_device); return std::make_shared<IVFMixIndex>(index, IndexType::FAISS_IVFFLAT_MIX); } case IndexType::FAISS_IVFPQ_GPU: { index = std::make_shared<knowhere::GPUIVFPQ>(gpu_device); break; Loading @@ -161,16 +167,20 @@ GetVecIndexFactory(const IndexType& type, const Config& cfg) { index = std::make_shared<knowhere::GPUIVFSQ>(gpu_device); break; } case IndexType::FAISS_IVFFLAT_MIX: { index = std::make_shared<knowhere::GPUIVF>(gpu_device); return std::make_shared<IVFMixIndex>(index, IndexType::FAISS_IVFFLAT_MIX); } #endif #ifdef CUSTOMIZATION case IndexType::FAISS_IVFSQ8_HYBRID: { server::Config& config = server::Config::GetInstance(); bool gpu_resource_enable = true; config.GetGpuResourceConfigEnable(gpu_resource_enable); if (gpu_resource_enable) { index = std::make_shared<knowhere::IVFSQHybrid>(gpu_device); return std::make_shared<IVFHybridIndex>(index, IndexType::FAISS_IVFSQ8_HYBRID); } else { throw Exception(DB_ERROR, "No GPU resources for IndexType::FAISS_IVFSQ8_HYBRID"); } } #endif #endif case IndexType::NSG_MIX: { // TODO(linxj): bug. index = std::make_shared<knowhere::NSG>(gpu_device); Loading