diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 91c7b5286b48a957e9228bca7a2644e041a15226..bb15ddf075f780be799bb1dbc49e820c7c0d27aa 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -69,9 +69,6 @@ message(STATUS "Milvus version: " "${MILVUS_VERSION_MAJOR}.${MILVUS_VERSION_MINOR}.${MILVUS_VERSION_PATCH} " "(full: '${MILVUS_VERSION}')") -find_package(CUDA) -set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -Xcompiler -fPIC -std=c++11 -D_FORCE_INLINES -arch sm_60 --expt-extended-lambda") - set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED on) @@ -87,6 +84,9 @@ else() set(MILVUS_BUILD_ARCH unknown) endif() +find_package(CUDA) +set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -Xcompiler -fPIC -std=c++11 -D_FORCE_INLINES --expt-extended-lambda") + if(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fPIC -DELPP_THREAD_SAFE -fopenmp") set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -O3") diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index b7e719666b6cda2715b2bffaef7716c61127aacc..21a9f2bccb6a9f8cf4cd4536991eb7164ca0aaa7 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -27,55 +27,55 @@ foreach (dir ${CORE_INCLUDE_DIRS}) include_directories(${dir}) endforeach () -aux_source_directory(cache cache_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/cache cache_files) -aux_source_directory(config config_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/config config_files) -aux_source_directory(db db_main_files) -aux_source_directory(db/engine db_engine_files) -aux_source_directory(db/insert db_insert_files) -aux_source_directory(db/meta db_meta_files) -aux_source_directory(db/scheduler scheduler_files) -aux_source_directory(db/scheduler/context scheduler_context_files) -aux_source_directory(db/scheduler/task scheduler_task_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db db_main_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/engine db_engine_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/insert db_insert_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/meta db_meta_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler db_scheduler_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/context db_scheduler_context_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/task db_scheduler_task_files) set(db_scheduler_files - ${scheduler_files} - ${scheduler_context_files} - ${scheduler_task_files} + ${db_scheduler_files} + ${db_scheduler_context_files} + ${db_scheduler_task_files} ) set(grpc_service_files - grpc/gen-milvus/milvus.grpc.pb.cc - grpc/gen-milvus/milvus.pb.cc - grpc/gen-status/status.grpc.pb.cc - grpc/gen-status/status.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-milvus/milvus.grpc.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-milvus/milvus.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-status/status.grpc.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-status/status.pb.cc ) -aux_source_directory(metrics metrics_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/metrics metrics_files) -aux_source_directory(scheduler/action scheduler_action_files) -aux_source_directory(scheduler/event scheduler_event_files) -aux_source_directory(scheduler/job scheduler_job_files) -aux_source_directory(scheduler/resource scheduler_resource_files) -aux_source_directory(scheduler/task scheduler_task_files) -aux_source_directory(scheduler scheduler_root_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler scheduler_main_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/action scheduler_action_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/event scheduler_event_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/job scheduler_job_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/resource scheduler_resource_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/task scheduler_task_files) set(scheduler_files + ${scheduler_main_files} ${scheduler_action_files} ${scheduler_event_files} ${scheduler_job_files} ${scheduler_resource_files} ${scheduler_task_files} - ${scheduler_root_files} ) -aux_source_directory(server server_files) -aux_source_directory(server/grpc_impl grpc_server_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/server server_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/server/grpc_impl grpc_server_files) -aux_source_directory(utils utils_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/utils utils_files) -aux_source_directory(wrapper/knowhere knowhere_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/wrapper/knowhere wrapper_knowhere_files) -set(db_files +set(engine_files ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${cache_files} ${db_main_files} @@ -85,30 +85,32 @@ set(db_files ${db_scheduler_files} ${metrics_files} ${utils_files} - ${knowhere_files} + ${wrapper_knowhere_files} ) -include_directories(/usr/include) include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") -include_directories(grpc/gen-status) -include_directories(grpc/gen-milvus) +include_directories(${MILVUS_ENGINE_SRC}/grpc/gen-status) +include_directories(${MILVUS_ENGINE_SRC}/grpc/gen-milvus) set(client_grpc_lib grpcpp_channelz grpc++ grpc grpc_protobuf - grpc_protoc) + grpc_protoc + ) set(prometheus_lib prometheus-cpp-push prometheus-cpp-pull - prometheus-cpp-core) + prometheus-cpp-core + ) set(boost_lib boost_system_static boost_filesystem_static - boost_serialization_static) + boost_serialization_static + ) set(third_party_libs sqlite @@ -149,7 +151,7 @@ if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") ) endif () -cuda_add_library(milvus_engine STATIC ${db_files}) +cuda_add_library(milvus_engine STATIC ${engine_files}) target_link_libraries(milvus_engine ${engine_libs} ${third_party_libs}) add_library(metrics STATIC ${metrics_files}) diff --git a/cpp/src/sdk/CMakeLists.txt b/cpp/src/sdk/CMakeLists.txt index 5d6a1ea465134c22c82434fd192f753a32664695..e7bf989e96ad75533898c060afc877884f2cb469 100644 --- a/cpp/src/sdk/CMakeLists.txt +++ b/cpp/src/sdk/CMakeLists.txt @@ -20,23 +20,10 @@ aux_source_directory(interface interface_files) -include_directories(/usr/include) include_directories(include) -include_directories(/usr/local/include) - aux_source_directory(grpc grpc_client_files) -include_directories(${CMAKE_SOURCE_DIR}/src/grpc/gen-milvus) -include_directories(${CMAKE_SOURCE_DIR}/src/grpc/gen-status) - -set(grpc_service_files - ${CMAKE_SOURCE_DIR}/src/grpc/gen-milvus/milvus.grpc.pb.cc - ${CMAKE_SOURCE_DIR}/src/grpc/gen-milvus/milvus.pb.cc - ${CMAKE_SOURCE_DIR}/src/grpc/gen-status/status.grpc.pb.cc - ${CMAKE_SOURCE_DIR}/src/grpc/gen-status/status.pb.cc - ) - add_library(milvus_sdk STATIC ${interface_files} ${grpc_client_files} diff --git a/cpp/unittest/CMakeLists.txt b/cpp/unittest/CMakeLists.txt index 37dec9b0ace6a59b509ed4cc73bbbd88f9e12159..14ee2c5eb170a5666abe69ef1298a65a29b79c8c 100644 --- a/cpp/unittest/CMakeLists.txt +++ b/cpp/unittest/CMakeLists.txt @@ -28,37 +28,37 @@ aux_source_directory(${MILVUS_ENGINE_SRC}/db db_main_files) aux_source_directory(${MILVUS_ENGINE_SRC}/db/engine db_engine_files) aux_source_directory(${MILVUS_ENGINE_SRC}/db/insert db_insert_files) aux_source_directory(${MILVUS_ENGINE_SRC}/db/meta db_meta_files) -aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler scheduler_files) -aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/context scheduler_context_files) -aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/task scheduler_task_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler db_scheduler_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/context db_scheduler_context_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/db/scheduler/task db_scheduler_task_files) set(db_scheduler_files - ${scheduler_files} - ${scheduler_context_files} - ${scheduler_task_files} + ${db_scheduler_files} + ${db_scheduler_context_files} + ${db_scheduler_task_files} ) set(grpc_service_files - grpc/gen-milvus/milvus.grpc.pb.cc - grpc/gen-milvus/milvus.pb.cc - grpc/gen-status/status.grpc.pb.cc - grpc/gen-status/status.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-milvus/milvus.grpc.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-milvus/milvus.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-status/status.grpc.pb.cc + ${MILVUS_ENGINE_SRC}/grpc/gen-status/status.pb.cc ) aux_source_directory(${MILVUS_ENGINE_SRC}/metrics metrics_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler scheduler_main_files) aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/action scheduler_action_files) aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/event scheduler_event_files) aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/job scheduler_job_files) aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/resource scheduler_resource_files) aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler/task scheduler_task_files) -aux_source_directory(${MILVUS_ENGINE_SRC}/scheduler scheduler_root_files) set(scheduler_files + ${scheduler_main_files} ${scheduler_action_files} ${scheduler_event_files} ${scheduler_job_files} ${scheduler_resource_files} ${scheduler_task_files} - ${scheduler_root_files} ) aux_source_directory(${MILVUS_ENGINE_SRC}/server server_files) @@ -66,10 +66,7 @@ aux_source_directory(${MILVUS_ENGINE_SRC}/server/grpc_impl grpc_server_files) aux_source_directory(${MILVUS_ENGINE_SRC}/utils utils_files) -aux_source_directory(${MILVUS_ENGINE_SRC}/wrapper/knowhere knowhere_files) - -aux_source_directory(${MILVUS_ENGINE_SRC}/db db_srcs) -aux_source_directory(${MILVUS_ENGINE_SRC}/config config_files) +aux_source_directory(${MILVUS_ENGINE_SRC}/wrapper/knowhere wrapper_knowhere_files) set(unittest_files ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) @@ -83,7 +80,26 @@ set(helper_files ${MILVUS_ENGINE_SRC}/utils/easylogging++.cc ) +set(common_files + ${cache_files} + ${config_files} + ${db_main_files} + ${db_engine_files} + ${db_insert_files} + ${db_meta_files} + ${db_scheduler_files} + ${metrics_files} + ${scheduler_files} + ${wrapper_knowhere_files} + ${helper_files} + ) + set(unittest_libs + sqlite + boost_system_static + boost_filesystem_static + lz4 + mysqlpp yaml-cpp gtest gmock @@ -107,7 +123,7 @@ foreach(dir ${CORE_INCLUDE_DIRS}) endforeach() add_subdirectory(db) -add_subdirectory(knowhere) +add_subdirectory(wrapper) add_subdirectory(metrics) add_subdirectory(scheduler) add_subdirectory(server) \ No newline at end of file diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index 3ab33d3cc7c2b370691682b73bfbaa55e87d678b..ca6bad8824684601b33a718221183432445ea295 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -23,31 +23,13 @@ include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") set(db_test_files - ${cache_files} - ${config_files} - ${db_main_files} - ${db_engine_files} - ${db_insert_files} - ${db_meta_files} - ${db_scheduler_files} - ${metrics_files} - ${scheduler_files} - ${knowhere_files} - ${helper_files} + ${common_files} ${test_files} ) cuda_add_executable(db_test ${db_test_files}) -set(db_libs - sqlite - boost_system_static - boost_filesystem_static - lz4 - mysqlpp - ) - -target_link_libraries(db_test ${db_libs} knowhere ${unittest_libs}) +target_link_libraries(db_test knowhere ${unittest_libs}) install(TARGETS db_test DESTINATION unittest) diff --git a/cpp/unittest/metrics/CMakeLists.txt b/cpp/unittest/metrics/CMakeLists.txt index 9df30c4340a09ab8157175a52f97e38f6ab4668d..04eab826bc3f3451516cba92965f4219fb571011 100644 --- a/cpp/unittest/metrics/CMakeLists.txt +++ b/cpp/unittest/metrics/CMakeLists.txt @@ -19,35 +19,16 @@ aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} test_files) -include_directories(/usr/include) include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") set(metrics_test_files - ${cache_files} - ${config_files} - ${db_main_files} - ${db_engine_files} - ${db_insert_files} - ${db_meta_files} - ${db_scheduler_files} - ${metrics_files} - ${scheduler_files} - ${knowhere_files} - ${helper_files} + ${common_files} ${test_files} ) add_executable(metrics_test ${metrics_test_files}) -target_link_libraries(metrics_test - knowhere - sqlite - boost_system_static - boost_filesystem_static - lz4 - mysqlpp - ${unittest_libs} - ) +target_link_libraries(metrics_test knowhere ${unittest_libs}) install(TARGETS metrics_test DESTINATION unittest) \ No newline at end of file diff --git a/cpp/unittest/scheduler/CMakeLists.txt b/cpp/unittest/scheduler/CMakeLists.txt index 9386596da0371739e5e96af3212534c73e3a5b38..27ee11775c2420c8ab25ebfaef84c920c43b8603 100644 --- a/cpp/unittest/scheduler/CMakeLists.txt +++ b/cpp/unittest/scheduler/CMakeLists.txt @@ -23,31 +23,14 @@ include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") set(scheduler_test_files - ${cache_files} - ${config_files} - ${db_main_files} - ${db_engine_files} - ${db_insert_files} - ${db_meta_files} - ${db_scheduler_files} - ${scheduler_files} - ${knowhere_files} - ${helper_files} + ${common_files} ${unittest_files} ${test_files} ) cuda_add_executable(scheduler_test ${scheduler_test_files}) -set(scheduler_libs - sqlite - boost_system_static - boost_filesystem_static - lz4 - mysqlpp - ) - -target_link_libraries(scheduler_test ${scheduler_libs} knowhere ${unittest_libs}) +target_link_libraries(scheduler_test knowhere ${unittest_libs}) install(TARGETS scheduler_test DESTINATION unittest) diff --git a/cpp/unittest/server/CMakeLists.txt b/cpp/unittest/server/CMakeLists.txt index 395f2e40eccf8f6af7a0c29188c520163fa2671d..d5bbd6cc47f5783f89b4ffac7c30b3c5788a36e5 100644 --- a/cpp/unittest/server/CMakeLists.txt +++ b/cpp/unittest/server/CMakeLists.txt @@ -19,14 +19,13 @@ aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} test_files) -include_directories(/usr/include) include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") include_directories(${MILVUS_ENGINE_SRC}/grpc/gen-status) include_directories(${MILVUS_ENGINE_SRC}/grpc/gen-milvus) -set(helper_files ${helper_files} +set(util_files ${MILVUS_ENGINE_SRC}/utils/StringHelpFunctions.cpp ${MILVUS_ENGINE_SRC}/utils/LogUtil.cpp ${MILVUS_ENGINE_SRC}/utils/SignalUtil.cpp) @@ -39,19 +38,11 @@ set(grpc_service_files ) set(server_test_files - ${cache_files} - ${config_files} - ${db_main_files} - ${db_engine_files} - ${db_insert_files} - ${db_meta_files} - ${db_scheduler_files} - ${scheduler_files} + ${common_files} ${server_files} ${grpc_server_files} ${grpc_service_files} - ${knowhere_files} - ${helper_files} + ${util_files} ${unittest_files} ${test_files} ) @@ -65,22 +56,13 @@ set(client_grpc_lib grpc_protobuf grpc_protoc) -set(require_libs +target_link_libraries(server_test knowhere stdc++ - sqlite - mysqlpp - boost_system_static - boost_filesystem_static snappy bz2 zstd - lz4 ${client_grpc_lib} - ) - -target_link_libraries(server_test - ${require_libs} ${unittest_libs} ) diff --git a/cpp/unittest/knowhere/CMakeLists.txt b/cpp/unittest/wrapper/CMakeLists.txt similarity index 84% rename from cpp/unittest/knowhere/CMakeLists.txt rename to cpp/unittest/wrapper/CMakeLists.txt index 5606b3820c944dc8cb3e8eedfce9b103d55dbbe3..43ac0be9cecfc46f67d7b4918a7156bf21f77c09 100644 --- a/cpp/unittest/knowhere/CMakeLists.txt +++ b/cpp/unittest/wrapper/CMakeLists.txt @@ -20,12 +20,12 @@ include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") -set(knowhere_files +set(wrapper_knowhere_files ${MILVUS_ENGINE_SRC}/wrapper/knowhere/data_transfer.cpp ${MILVUS_ENGINE_SRC}/wrapper/knowhere/vec_impl.cpp ${MILVUS_ENGINE_SRC}/wrapper/knowhere/vec_index.cpp) -set(helper_files +set(util_files utils.cpp ${MILVUS_ENGINE_SRC}/utils/easylogging++.cc ) @@ -36,7 +36,7 @@ set(knowhere_libs cublas ) -add_executable(knowhere_test knowhere_test.cpp ${knowhere_files} ${helper_files}) -target_link_libraries(knowhere_test ${knowhere_libs} ${unittest_libs}) +add_executable(wrapper_test wrapper_test.cpp ${wrapper_knowhere_files} ${util_files}) +target_link_libraries(wrapper_test ${knowhere_libs} ${unittest_libs}) -install(TARGETS knowhere_test DESTINATION unittest) \ No newline at end of file +install(TARGETS wrapper_test DESTINATION unittest) \ No newline at end of file diff --git a/cpp/unittest/knowhere/utils.cpp b/cpp/unittest/wrapper/utils.cpp similarity index 100% rename from cpp/unittest/knowhere/utils.cpp rename to cpp/unittest/wrapper/utils.cpp diff --git a/cpp/unittest/knowhere/utils.h b/cpp/unittest/wrapper/utils.h similarity index 100% rename from cpp/unittest/knowhere/utils.h rename to cpp/unittest/wrapper/utils.h diff --git a/cpp/unittest/knowhere/knowhere_test.cpp b/cpp/unittest/wrapper/wrapper_test.cpp similarity index 100% rename from cpp/unittest/knowhere/knowhere_test.cpp rename to cpp/unittest/wrapper/wrapper_test.cpp