Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
95e6968
Add deployment automation and CI/CD workflows
MingqiWang-coder Nov 30, 2025
9823284
Fix CI/CD: upgrade deprecated actions to latest versions
MingqiWang-coder Nov 30, 2025
57bea4b
Fix CI/CD: remove virtual environment cache
MingqiWang-coder Nov 30, 2025
e5c9a35
Enable torch and pytest in requirements, fix quick-build test
MingqiWang-coder Nov 30, 2025
a1f6e1e
Remove --skip-system-deps from CI to test full deployment
MingqiWang-coder Nov 30, 2025
c98972c
Fix build error handling and torch CMake path detection
MingqiWang-coder Nov 30, 2025
ceb6471
Remove redundant test-quick-build job
MingqiWang-coder Nov 30, 2025
a364dba
Fix torch CUDA dependency issue - install CPU version
MingqiWang-coder Nov 30, 2025
d7f7312
Add Intel MKL installation for Puck support
MingqiWang-coder Nov 30, 2025
507488e
Add algorithms_impl/DiskANN directory to repository
MingqiWang-coder Nov 30, 2025
70fc328
Update CMakeLists.txt, build.sh and vsag_hnsw configurations
MingqiWang-coder Nov 30, 2025
97c4cd5
Fix missing system dependencies and library conflicts
MingqiWang-coder Nov 30, 2025
00f9199
Fix all CMake dependency issues
MingqiWang-coder Nov 30, 2025
74a2796
fix: install libfmt-dev before building GTI
MingqiWang-coder Nov 30, 2025
74302e4
fix: install all missing dependencies (fmt, pybind11, numa, glog)
MingqiWang-coder Nov 30, 2025
0190468
fix: add libunwind-dev dependency to build.sh
MingqiWang-coder Nov 30, 2025
8ba46e5
fix: add libspdlog-dev dependency for GTI build
MingqiWang-coder Nov 30, 2025
bbea828
fix: add libgoogle-perftools-dev dependency for GTI
MingqiWang-coder Nov 30, 2025
219bf4c
fix: add libaio-dev dependency for DiskANN
MingqiWang-coder Nov 30, 2025
a3d1b32
feat: add comprehensive dependency checks from Dockerfile
MingqiWang-coder Nov 30, 2025
9151551
fix: exclude DiskANN module.cpp to prevent PYBIND11_MODULE conflict
MingqiWang-coder Nov 30, 2025
1a9440b
fix: ensure glog is linked before DiskANN and make it required
MingqiWang-coder Nov 30, 2025
c4bcfdc
fix: improve glog detection and fix install permission issues
MingqiWang-coder Nov 30, 2025
d36bb71
fix: resolve faiss undefined symbol by adjusting link order
MingqiWang-coder Nov 30, 2025
9285f61
fix: add IndexHNSWOptimized.cpp to faiss build sources
MingqiWang-coder Nov 30, 2025
87d5b67
fix: remove duplicate hnsw_stats definition from IndexHNSWOptimized.cpp
MingqiWang-coder Dec 1, 2025
9af7ede
fix: make libaio a required dependency for PyCANDYAlgo
MingqiWang-coder Dec 1, 2025
ce0d4aa
fix: remove accidentally added nested git repository
MingqiWang-coder Dec 1, 2025
7da7914
fix: ensure Makefile exists before running make in build.sh
MingqiWang-coder Dec 1, 2025
2533e73
Fix PyCANDYAlgo build: resolve faiss symbol undefined and module expo…
MingqiWang-coder Dec 1, 2025
0816915
Add SAGE-DB-Bench to gitignore - keep as local reference only
MingqiWang-coder Dec 1, 2025
aec6a69
Comprehensive fix: improve MKL detection, fix CMake configuration, an…
MingqiWang-coder Dec 1, 2025
bd31a50
feat: enhance Dockerfile for complete build and testing
MingqiWang-coder Dec 1, 2025
bb50e0b
chore: remove SAGE-DB-Bench directory from git tracking
MingqiWang-coder Dec 1, 2025
dd2a3f4
Fix PyCANDYAlgo build issues
MingqiWang-coder Dec 1, 2025
618cfba
Fix PyCANDYAlgo runtime library dependencies
MingqiWang-coder Dec 1, 2025
33aa3c6
Change GitHub Actions runner from ubuntu-22.04 to ubuntu-latest
MingqiWang-coder Dec 1, 2025
0a5578f
Fix build failure handling and restore ubuntu-22.04
MingqiWang-coder Dec 1, 2025
f7bf0b0
Fix PyCANDYAlgo module suffix to generate correct Python extension
MingqiWang-coder Dec 1, 2025
db07ee0
fix: 修复所有测试并添加 pytest-benchmark 依赖
MingqiWang-coder Dec 1, 2025
a113d9f
fix: 在 CI 环境中跳过 VSAG 构建
MingqiWang-coder Dec 1, 2025
80aabdd
fix: deploy.sh 导入测试添加 algorithms_impl 到 Python 路径
MingqiWang-coder Dec 1, 2025
a1312da
perf: 优化 CI/CD 性能,所有分支跳过 VSAG 构建
MingqiWang-coder Dec 1, 2025
c2a2cd3
fix: 修复 CI 中 PyCANDYAlgo 导入测试的语法错误
MingqiWang-coder Dec 1, 2025
919cfd0
fix: 修复 CI/CD 构建问题
MingqiWang-coder Dec 1, 2025
f17b2b9
fix: 修复 PyCANDYAlgo PyInit 符号导出问题
MingqiWang-coder Dec 1, 2025
a253fef
chore: 更新 gti 子模块到最新版本(添加 .gitignore)
MingqiWang-coder Dec 1, 2025
c3cd486
feat: 添加 IndexHNSWFlatOptimized 支持和构建系统简化
MingqiWang-coder Dec 2, 2025
7b97bd2
fix: 修复 CI/CD workflow YAML 语法错误
MingqiWang-coder Dec 2, 2025
74fc6a9
fix: 修复 YAML 缩进问题
MingqiWang-coder Dec 2, 2025
f7fec53
fix: 添加 libunwind-dev 依赖并修复 YAML 缩进
MingqiWang-coder Dec 2, 2025
377fee6
fix: 简化 Python 测试命令避免 YAML 缩进问题
MingqiWang-coder Dec 2, 2025
d0676ca
fix: 简化 deploy.sh 中的 Python 验证逻辑
MingqiWang-coder Dec 2, 2025
13b6458
fix: 简化 PyCANDYAlgo 安装流程,直接复制 .so 文件
MingqiWang-coder Dec 2, 2025
acf21db
fix: 移除意外添加的嵌入仓库,忽略 temp 目录
MingqiWang-coder Dec 2, 2025
794e6d3
fix: 设置 RPATH 让 PyCANDYAlgo 自动找到 MKL 库,无需设置 LD_LIBRARY_PATH
MingqiWang-coder Dec 2, 2025
3ce3432
feat: 添加 GTI、IP-DiskANN、PLSH 构建到部署脚本和 CI/CD
MingqiWang-coder Dec 2, 2025
851f252
fix: 修复 GTI/IP-DiskANN/PLSH 构建配置
MingqiWang-coder Dec 2, 2025
2c01311
fix: GTI 构建流程 - 先构建主项目再构建 bindings
MingqiWang-coder Dec 2, 2025
326096f
fix: GTI 主项目构建也需要 pybind11 cmake 路径
MingqiWang-coder Dec 2, 2025
02a1707
fix: 添加 libeigen3-dev 依赖用于 GTI 构建
MingqiWang-coder Dec 2, 2025
c46e792
fix: 添加 libspdlog-dev 依赖并修复 GTI 构建流程
MingqiWang-coder Dec 2, 2025
8acb6c5
fix: n2 库使用 Makefile 而非 CMake
MingqiWang-coder Dec 2, 2025
3fce719
chore: 更新 GTI submodule (修复 spdlog API 兼容性)
MingqiWang-coder Dec 2, 2025
1561e9b
fix: 修复 GTI 构建问题 - spdlog 兼容性和 ABI 匹配
MingqiWang-coder Dec 2, 2025
5979bdf
fix: resolve VSAG and GTI build issues in CI/CD
MingqiWang-coder Dec 2, 2025
71ff8a7
fix: persist MKL library path in virtual environment
MingqiWang-coder Dec 3, 2025
d611f23
feat: 支持参数化结果文件夹命名,添加VSAG HNSW三种优化模式配置,更新gti子模块
MingqiWang-coder Dec 3, 2025
6618e27
feat: 支持参数组合排列运行,自动遍历配置中所有参数组合执行测试
MingqiWang-coder Dec 3, 2025
d2f0605
feat: 增强export_results支持参数化目录结构
MingqiWang-coder Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,25 @@ dist/
*.egg-info/
algorithms_impl/build/
algorithms_impl/*/build/
algorithms_impl/build-release/
algorithms_impl/vsag/build/
algorithms_impl/vsag/build-release/
algorithms_impl/vsag/wheelhouse/
algorithms_impl/vsag/.venv/
algorithms_impl/PyCANDYAlgo*.so

# 数据文件(太大)
raw_data/
results/
datasets/
*.data
*.fvecs
*.ivecs
*.bvecs
*.hdf5
*.h5
*.index
*.bin

# 日志
logs/
Expand Down
145 changes: 145 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Build and Test All Modules

on:
push:
branches: [ main, main-dev, test ]
pull_request:
branches: [ main, main-dev, test ]
workflow_dispatch: # 允许手动触发

jobs:
build-all:
runs-on: ubuntu-22.04

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Cache pip packages
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-torch-numpy
restore-keys: |
${{ runner.os }}-pip-

- name: Cache CMake build
uses: actions/cache@v4
with:
path: |
algorithms_impl/build
algorithms_impl/vsag/build-release
algorithms_impl/gti/GTI/build
algorithms_impl/ipdiskann/build
algorithms_impl/plsh/build
key: ${{ runner.os }}-cmake-all-${{ hashFiles('algorithms_impl/CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-cmake-all-

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
git \
pkg-config \
libunwind-dev \
libgflags-dev \
libgoogle-glog-dev \
libfmt-dev \
libboost-all-dev \
libomp-dev \
libnuma-dev \
libaio-dev \
libeigen3-dev \
libspdlog-dev

- name: Install Intel MKL
run: |
wget -qO - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add -
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install -y intel-oneapi-mkl-devel || echo "MKL installation warning (non-fatal)"

- name: Run deployment script
run: |
chmod +x deploy.sh
./deploy.sh --skip-system-deps
timeout-minutes: 60

- name: Verify PyCANDYAlgo import
run: |
source sage-db-bench/bin/activate
echo "=== Test PyCANDYAlgo Import ==="
python3 -c "import PyCANDYAlgo; print('PyCANDYAlgo:', PyCANDYAlgo.__version__)"

- name: Verify VSAG (pyvsag) import
run: |
source sage-db-bench/bin/activate
echo "=== Test pyvsag Import ==="
python3 -c "import pyvsag; print('pyvsag:', pyvsag.__version__)" || echo "pyvsag: SKIPPED (optional)"

- name: Verify GTI (gti_wrapper) import
run: |
source sage-db-bench/bin/activate
echo "=== Test gti_wrapper Import ==="
python3 -c "import gti_wrapper; print('gti_wrapper: OK')" || echo "gti_wrapper: SKIPPED (optional)"

- name: Verify IP-DiskANN (ipdiskann) import
run: |
source sage-db-bench/bin/activate
echo "=== Test ipdiskann Import ==="
python3 -c "import ipdiskann; print('ipdiskann: OK')" || echo "ipdiskann: SKIPPED (optional)"

- name: Verify PLSH (plsh_python) import
run: |
source sage-db-bench/bin/activate
echo "=== Test plsh_python Import ==="
python3 -c "import plsh_python; print('plsh_python: OK')" || echo "plsh_python: SKIPPED (optional)"

- name: Test core dependencies
run: |
source sage-db-bench/bin/activate
python3 -c "import numpy; import torch; print('numpy:', numpy.__version__); print('torch:', torch.__version__)"

- name: Upload build logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: build-logs
path: |
algorithms_impl/build/cmake_config.log
algorithms_impl/build/CMakeFiles/CMakeError.log
algorithms_impl/build/CMakeFiles/CMakeOutput.log
algorithms_impl/vsag/build-release/CMakeFiles/CMakeError.log
algorithms_impl/gti/GTI/build/CMakeFiles/CMakeError.log
algorithms_impl/ipdiskann/build/CMakeFiles/CMakeError.log
algorithms_impl/plsh/build/CMakeFiles/CMakeError.log
retention-days: 7

lint:
runs-on: ubuntu-22.04

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install linting tools
run: pip install flake8

- name: Run flake8 (syntax errors only)
run: |
flake8 bench/ datasets/ --count --select=E9,F63,F7,F82 --show-source --statistics || true
97 changes: 0 additions & 97 deletions .github/workflows/ci.yml

This file was deleted.

69 changes: 0 additions & 69 deletions .github/workflows/cmake.yml

This file was deleted.

39 changes: 37 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,41 @@ commit_info
commit.sh
data/
raw_data/
DiskANN/
/DiskANN/
!algorithms_impl/DiskANN/
results/
algorithms_impl/build
algorithms_impl/build

# Python 虚拟环境
.venv/
sage-db-bench/
venv/
env/
ENV/

# Python 缓存和构建产物
*.pyc
*.pyo
*.egg-info/
__pycache__/
.pytest_cache/

# 算法构建产物
algorithms_impl/build/
algorithms_impl/build-release/
algorithms_impl/vsag/build/
algorithms_impl/vsag/build-release/
algorithms_impl/vsag/wheelhouse/
algorithms_impl/vsag/.venv/
algorithms_impl/gti/GTI/build/
algorithms_impl/ipdiskann/build/
algorithms_impl/plsh/build/
algorithms_impl/*.so
algorithms_impl/*.log

# 测试和日志
*.log
test_report_*.txt
.coverage
htmlcov/SAGE-DB-Bench/
temp/
Loading