chore: shorter build time
This commit is contained in:
@@ -46,7 +46,7 @@ git submodule update --init --recursive
|
|||||||
|
|
||||||
**macOS:**
|
**macOS:**
|
||||||
```bash
|
```bash
|
||||||
brew install llvm libomp boost protobuf
|
brew install llvm libomp boost protobuf zeromq
|
||||||
export CC=$(brew --prefix llvm)/bin/clang
|
export CC=$(brew --prefix llvm)/bin/clang
|
||||||
export CXX=$(brew --prefix llvm)/bin/clang++
|
export CXX=$(brew --prefix llvm)/bin/clang++
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ uv sync --extra diskann
|
|||||||
|
|
||||||
**Linux (Ubuntu/Debian):**
|
**Linux (Ubuntu/Debian):**
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install libomp-dev libboost-all-dev protobuf-compiler libabsl-dev libmkl-full-dev libaio-dev
|
sudo apt-get install libomp-dev libboost-all-dev protobuf-compiler libabsl-dev libmkl-full-dev libaio-dev libzmq3-dev
|
||||||
|
|
||||||
# Install with HNSW backend (default, recommended for most users)
|
# Install with HNSW backend (default, recommended for most users)
|
||||||
uv sync
|
uv sync
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# packages/leann-backend-diskann/CMakeLists.txt (最终简化版)
|
# packages/leann-backend-diskann/CMakeLists.txt (simplified version)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.20)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
project(leann_backend_diskann_wrapper)
|
project(leann_backend_diskann_wrapper)
|
||||||
|
|
||||||
# 告诉 CMake 直接进入 DiskANN 子模块并执行它自己的 CMakeLists.txt
|
# Tell CMake to directly enter the DiskANN submodule and execute its own CMakeLists.txt
|
||||||
# DiskANN 会自己处理所有事情,包括编译 Python 绑定
|
# DiskANN will handle everything itself, including compiling Python bindings
|
||||||
add_subdirectory(src/third_party/DiskANN)
|
add_subdirectory(src/third_party/DiskANN)
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ version = "0.1.0"
|
|||||||
dependencies = ["leann-core==0.1.0", "numpy"]
|
dependencies = ["leann-core==0.1.0", "numpy"]
|
||||||
|
|
||||||
[tool.scikit-build]
|
[tool.scikit-build]
|
||||||
# 关键:简化的 CMake 路径
|
# Key: simplified CMake path
|
||||||
cmake.source-dir = "third_party/DiskANN"
|
cmake.source-dir = "third_party/DiskANN"
|
||||||
# 关键:Python 包在根目录,路径完全匹配
|
# Key: Python package in root directory, paths match exactly
|
||||||
wheel.packages = ["leann_backend_diskann"]
|
wheel.packages = ["leann_backend_diskann"]
|
||||||
# 使用默认的 redirect 模式
|
# Use default redirect mode
|
||||||
editable.mode = "redirect"
|
editable.mode = "redirect"
|
||||||
cmake.build-type = "Release"
|
cmake.build-type = "Release"
|
||||||
build.verbose = true
|
build.verbose = true
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# 最终简化版
|
|
||||||
cmake_minimum_required(VERSION 3.24)
|
cmake_minimum_required(VERSION 3.24)
|
||||||
project(leann_backend_hnsw_wrapper)
|
project(leann_backend_hnsw_wrapper)
|
||||||
|
set(CMAKE_C_COMPILER_WORKS 1)
|
||||||
|
set(CMAKE_CXX_COMPILER_WORKS 1)
|
||||||
|
|
||||||
# Set OpenMP path for macOS
|
# Set OpenMP path for macOS
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
@@ -11,15 +12,9 @@ if(APPLE)
|
|||||||
set(OpenMP_omp_LIBRARY "/opt/homebrew/opt/libomp/lib/libomp.dylib")
|
set(OpenMP_omp_LIBRARY "/opt/homebrew/opt/libomp/lib/libomp.dylib")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Build ZeroMQ from source
|
# Use system ZeroMQ instead of building from source
|
||||||
set(ZMQ_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
find_package(PkgConfig REQUIRED)
|
||||||
set(ENABLE_DRAFTS OFF CACHE BOOL "" FORCE)
|
pkg_check_modules(ZMQ REQUIRED libzmq)
|
||||||
set(ENABLE_PRECOMPILED OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_PERF_TOOL OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_DOCS OFF CACHE BOOL "" FORCE)
|
|
||||||
set(BUILD_SHARED OFF CACHE BOOL "" FORCE)
|
|
||||||
set(BUILD_STATIC ON CACHE BOOL "" FORCE)
|
|
||||||
add_subdirectory(third_party/libzmq)
|
|
||||||
|
|
||||||
# Add cppzmq headers
|
# Add cppzmq headers
|
||||||
include_directories(third_party/cppzmq)
|
include_directories(third_party/cppzmq)
|
||||||
@@ -29,6 +24,7 @@ set(MSGPACK_USE_BOOST OFF CACHE BOOL "" FORCE)
|
|||||||
add_compile_definitions(MSGPACK_NO_BOOST)
|
add_compile_definitions(MSGPACK_NO_BOOST)
|
||||||
include_directories(third_party/msgpack-c/include)
|
include_directories(third_party/msgpack-c/include)
|
||||||
|
|
||||||
|
# Faiss configuration - streamlined build
|
||||||
set(FAISS_ENABLE_PYTHON ON CACHE BOOL "" FORCE)
|
set(FAISS_ENABLE_PYTHON ON CACHE BOOL "" FORCE)
|
||||||
set(FAISS_ENABLE_GPU OFF CACHE BOOL "" FORCE)
|
set(FAISS_ENABLE_GPU OFF CACHE BOOL "" FORCE)
|
||||||
set(FAISS_ENABLE_EXTRAS OFF CACHE BOOL "" FORCE)
|
set(FAISS_ENABLE_EXTRAS OFF CACHE BOOL "" FORCE)
|
||||||
@@ -36,4 +32,24 @@ set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
|
|||||||
set(FAISS_ENABLE_C_API OFF CACHE BOOL "" FORCE)
|
set(FAISS_ENABLE_C_API OFF CACHE BOOL "" FORCE)
|
||||||
set(FAISS_OPT_LEVEL "generic" CACHE STRING "" FORCE)
|
set(FAISS_OPT_LEVEL "generic" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
# Disable additional SIMD versions to speed up compilation
|
||||||
|
set(FAISS_ENABLE_AVX2 OFF CACHE BOOL "" FORCE)
|
||||||
|
set(FAISS_ENABLE_AVX512 OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# Additional optimization options from INSTALL.md
|
||||||
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
|
||||||
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) # Static library is faster to build
|
||||||
|
|
||||||
|
# Avoid building demos and benchmarks
|
||||||
|
set(BUILD_DEMOS OFF CACHE BOOL "" FORCE)
|
||||||
|
set(BUILD_BENCHS OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# NEW: Tell Faiss to only build the generic version
|
||||||
|
set(FAISS_BUILD_GENERIC ON CACHE BOOL "" FORCE)
|
||||||
|
set(FAISS_BUILD_AVX2 OFF CACHE BOOL "" FORCE)
|
||||||
|
set(FAISS_BUILD_AVX512 OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# IMPORTANT: Disable building AVX versions to speed up compilation
|
||||||
|
set(FAISS_BUILD_AVX_VERSIONS OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
add_subdirectory(third_party/faiss)
|
add_subdirectory(third_party/faiss)
|
||||||
@@ -16,3 +16,7 @@ editable.mode = "redirect"
|
|||||||
cmake.build-type = "Release"
|
cmake.build-type = "Release"
|
||||||
build.verbose = true
|
build.verbose = true
|
||||||
build.tool-args = ["-j8"]
|
build.tool-args = ["-j8"]
|
||||||
|
|
||||||
|
# CMake definitions to optimize compilation
|
||||||
|
[tool.scikit-build.cmake.define]
|
||||||
|
CMAKE_BUILD_PARALLEL_LEVEL = "8"
|
||||||
Submodule packages/leann-backend-hnsw/third_party/faiss updated: 2547df4377...954f1a3497
Reference in New Issue
Block a user