Commit graph

6 commits

Author SHA1 Message Date
rUv
37ff1eb3c2 perf(postgres): Zero-copy HNSW insert path optimization
- Eliminate vector clone in insert() by searching first, then inserting
- Remove unused hybrid-search and filtered-search feature flags
- Bump versions: ruvector-postgres 0.2.2, @ruvector/postgres-cli 0.1.2

Performance: Insert operations now require zero vector copies for the common
case (non-empty index), reducing memory allocations in hot path.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 06:46:03 +00:00
rUv
2e42f3135e fix(postgres): HNSW performance and robustness improvements
- Add configurable max_layers (was hardcoded to 32)
- Add overflow protection for Node IDs
- Add #[inline] to hot path functions (calc_distance, search_layer, etc.)
- Optimize insert() with fast path for empty index (avoids clone)
- Improve typmod parsing with better error messages and null checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 06:09:38 +00:00
rUv
c039bf24b0 feat(simd): Add full AVX-512 SIMD support with ~2x speedup over AVX2
- Add SIMD feature detection functions (is_avx512_available, is_avx2_available, is_neon_available, simd_level)
- Implement AVX-512 distance functions processing 16 floats per iteration:
  - l2_distance_ptr_avx512: Euclidean distance with _mm512_fmadd_ps
  - cosine_distance_ptr_avx512: Cosine distance with full normalization
  - inner_product_ptr_avx512: Inner/dot product for normalized vectors
  - manhattan_distance_ptr_avx512: L1 distance with _mm512_abs_ps
  - cosine_distance_normalized_avx512: Optimized for pre-normalized vectors
- Add NEON Manhattan distance for ARM64 (manhattan_distance_ptr_neon)
- Update all dispatch functions to prefer AVX-512 > AVX2 > NEON > Scalar
- Add comprehensive AVX-512 test suite with remainder handling tests
- All functions use horizontal reduce (_mm512_reduce_add_ps) for efficient summation

Performance: AVX-512 processes 16 floats/iteration vs 8 for AVX2, yielding ~1.5-2x speedup on supported CPUs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 04:46:19 +00:00
rUv
ee40332ce1 fix(postgres): Resolve compilation errors and Docker build issues
- Fix simsimd Option/Result type mismatch in scaled_dot.rs
- Fix f32/f64 type conversions in poincare.rs and lorentz.rs
- Fix AVX512 missing wrapper functions by using AVX2 fallback
- Fix Vec<Vec<f32>> to JsonB for pgrx pg_extern compatibility
- Fix DashMap get() to get_mut() for mutable access
- Fix router.rs dereference for best_score comparison
- Update Dockerfile to copy pre-written SQL file for pgrx
- Simplify init.sql to use correct function names
- Add postgres-cli npm package for CLI tooling

All changes tested successfully in Docker with:
- Extension loads with AVX2 SIMD support (8 floats/op)
- Distance functions verified working
- PostgreSQL 16 container runs successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 01:17:50 +00:00
rUv
eb1227047d feat(postgres): Add 7 advanced AI modules to ruvector-postgres
Comprehensive implementation of advanced AI capabilities:

## New Modules (23,541 lines of code)

### 1. Self-Learning / ReasoningBank (`src/learning/`)
- Trajectory tracking for query optimization
- Pattern extraction using K-means clustering
- ReasoningBank for pattern storage and matching
- Adaptive search parameter optimization

### 2. Attention Mechanisms (`src/attention/`)
- Scaled dot-product attention (core)
- Multi-head attention with parallel heads
- Flash Attention v2 (memory-efficient)
- 10 attention types with PostgresEnum support

### 3. GNN Layers (`src/gnn/`)
- Message passing framework
- GCN (Graph Convolutional Network)
- GraphSAGE with mean/max aggregation
- Configurable aggregation methods

### 4. Hyperbolic Embeddings (`src/hyperbolic/`)
- Poincaré ball model
- Lorentz hyperboloid model
- Hyperbolic distance metrics
- Möbius operations

### 5. Sparse Vectors (`src/sparse/`)
- COO format sparse vector type
- Efficient sparse-sparse distance functions
- BM25/SPLADE compatible
- Top-k pruning operations

### 6. Graph Operations & Cypher (`src/graph/`)
- Property graph storage (nodes/edges)
- BFS, DFS, Dijkstra traversal
- Cypher query parser (AST-based)
- Query executor with pattern matching

### 7. Tiny Dancer Routing (`src/routing/`)
- FastGRNN neural network
- Agent registry with capabilities
- Multi-objective routing optimization
- Cost/latency/quality balancing

## Docker Infrastructure
- Dockerfile with pgrx 0.12.6 and PostgreSQL 16
- docker-compose.yml with test runner
- Initialization SQL with test tables
- Shell scripts for dev/test/benchmark

## Feature Flags
- `learning`, `attention`, `gnn`, `hyperbolic`
- `sparse`, `graph`, `routing`
- `ai-complete` and `graph-complete` bundles

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:12:48 +00:00
rUv
1cfc29f357
feat(postgres): Add ruvector-postgres extension with SIMD optimizations (#42) 2025-12-02 09:55:07 -05:00