Skip to content

Commit

Permalink
The thread pool size is related to the number of gpu.
Browse files Browse the repository at this point in the history
Signed-off-by: yusheng.ma <[email protected]>
  • Loading branch information
Presburger committed Feb 24, 2024
1 parent 643054b commit 7d122f6
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 12 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
include(GNUInstallDirs)
include(ExternalProject)
include(cmake/utils/utils.cmake)
include(cmake/utils/compile_flags.cmake)
include(cmake/utils/platform_check.cmake)

knowhere_option(WITH_RAFT "Build with RAFT indexes" OFF)
if (WITH_RAFT)
Expand Down Expand Up @@ -88,8 +90,6 @@ list( APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/)

add_definitions(-DNOT_COMPILE_FOR_SWIG)

include(cmake/utils/compile_flags.cmake)
include(cmake/utils/platform_check.cmake)
include(cmake/libs/libfaiss.cmake)
include(cmake/libs/libhnsw.cmake)

Expand Down
13 changes: 11 additions & 2 deletions src/index/gpu_raft/gpu_raft_brute_force.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,17 @@
#include "gpu_raft.h"
#include "knowhere/factory.h"
#include "knowhere/index_node_thread_pool_wrapper.h"
#include "raft/util/cuda_rt_essentials.hpp"

namespace knowhere {
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_BRUTE_FORCE, GpuRaftBruteForceIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_BRUTE_FORCE, GpuRaftBruteForceIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_BRUTE_FORCE, GpuRaftBruteForceIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_BRUTE_FORCE, GpuRaftBruteForceIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
} // namespace knowhere
13 changes: 11 additions & 2 deletions src/index/gpu_raft/gpu_raft_cagra.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,17 @@
#include "gpu_raft.h"
#include "knowhere/factory.h"
#include "knowhere/index_node_thread_pool_wrapper.h"
#include "raft/util/cuda_rt_essentials.hpp"

namespace knowhere {
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_CAGRA, GpuRaftCagraIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_CAGRA, GpuRaftCagraIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_CAGRA, GpuRaftCagraIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_CAGRA, GpuRaftCagraIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
} // namespace knowhere
15 changes: 11 additions & 4 deletions src/index/gpu_raft/gpu_raft_ivf_flat.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,16 @@
#include "gpu_raft.h"
#include "knowhere/factory.h"
#include "knowhere/index_node_thread_pool_wrapper.h"

#include "raft/util/cuda_rt_essentials.hpp"
namespace knowhere {
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_IVF_FLAT, GpuRaftIvfFlatIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_IVF_FLAT, GpuRaftIvfFlatIndexNode, fp32, cuda_concurrent_size);

KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_IVF_FLAT, GpuRaftIvfFlatIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_IVF_FLAT, GpuRaftIvfFlatIndexNode, fp32, []() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}());
} // namespace knowhere
19 changes: 17 additions & 2 deletions src/index/gpu_raft/gpu_raft_ivf_pq.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,23 @@
#include "gpu_raft.h"
#include "knowhere/factory.h"
#include "knowhere/index_node_thread_pool_wrapper.h"
#include "raft/util/cuda_rt_essentials.hpp"

namespace knowhere {
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_IVF_PQ, GpuRaftIvfPqIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_IVF_PQ, GpuRaftIvfPqIndexNode, fp32, cuda_concurrent_size);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_RAFT_IVF_PQ, GpuRaftIvfPqIndexNode, fp32,
[]() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}()

);
KNOWHERE_REGISTER_GLOBAL_WITH_THREAD_POOL(GPU_IVF_PQ, GpuRaftIvfPqIndexNode, fp32,
[]() {
int count;
RAFT_CUDA_TRY(cudaGetDeviceCount(&count));
return count * 8;
}()

);
} // namespace knowhere

0 comments on commit 7d122f6

Please sign in to comment.