Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'

This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
7854 changed files with 3522914 additions and 0 deletions

View File

@@ -0,0 +1,134 @@
# Micro HNSW WASM v2.3 - Deep Review & Optimization Analysis
## Binary Analysis (Post-Optimization)
| Metric | Value | Target | Status |
|--------|-------|--------|--------|
| Size | 11,848 bytes | < 12,288 bytes | ✅ PASS (3.6% headroom) |
| Functions | 58 | - | ✅ Full feature set (v2.3 neuromorphic) |
| Memory | 1,053,184 bytes static | - | ⚠️ Large for ASIC |
## Performance Benchmarks (Post-Optimization)
### HNSW Operations
| Operation | Time | Throughput | Notes |
|-----------|------|------------|-------|
| init() | 515 ns | 1.94 M/s | ✅ Fast |
| insert() first | 5.8 µs | 172 K/s | ✅ Good |
| insert() avg | 2.3 µs | 430 K/s | ✅ Good |
| search(k=1) | 1.6 µs | 638 K/s | ✅ Good |
| search(k=6) | 1.3 µs | 770 K/s | ✅ Fixed |
| search(k=16) | 1.2 µs | 824 K/s | ✅ Expected beam search behavior |
### GNN Operations
| Operation | Time | Notes |
|-----------|------|-------|
| set_node_type() | 294 ns | ✅ Fast |
| get_node_type() | 83 ns | ✅ Very fast |
| aggregate() | 880 ns | ✅ **7% faster (optimized)** |
| update_vector() | 494 ns | ✅ Good |
### SNN Operations (Significantly Improved)
| Operation | Before | After | Improvement |
|-----------|--------|-------|-------------|
| snn_inject() | 49 ns | 51 ns | ✅ ~Same |
| snn_step() | 577 ns | 585 ns | ✅ ~Same |
| snn_propagate() | 1186 ns | 737 ns | ✅ **38% faster** |
| snn_stdp() | 1085 ns | 885 ns | ✅ **18% faster** |
| snn_tick() | 2726 ns | 499 ns | ✅ **5.5x faster** |
| hnsw_to_snn() | 772 ns | 776 ns | ✅ ~Same |
---
## v2.3 Novel Neuromorphic Features
The v2.3 release adds 22 new functions for advanced neuromorphic computing:
### Spike-Timing Vector Encoding
- `encode_vector_to_spikes()` - Rate-to-time conversion
- `spike_timing_similarity()` - Victor-Purpura-inspired metric
- `spike_search()` - Temporal code matching
### Homeostatic Plasticity
- `homeostatic_update()` - Self-stabilizing thresholds
- `get_spike_rate()` - Running spike rate estimate
### Oscillatory Resonance
- `oscillator_step()` - Gamma rhythm (40 Hz)
- `oscillator_get_phase()` - Phase readout
- `compute_resonance()` - Phase alignment score
- `resonance_search()` - Phase-modulated search
### Winner-Take-All Circuits
- `wta_reset()` - Reset WTA state
- `wta_compete()` - Hard WTA selection
- `wta_soft()` - Soft competitive inhibition
### Dendritic Computation
- `dendrite_reset()` - Clear compartments
- `dendrite_inject()` - Branch-specific input
- `dendrite_integrate()` - Nonlinear integration
- `dendrite_propagate()` - Spike to dendrite
### Temporal Pattern Recognition
- `pattern_record()` - Shift register encoding
- `get_pattern()` - Read pattern buffer
- `pattern_match()` - Hamming similarity
- `pattern_correlate()` - Find correlated neurons
### Combined Neuromorphic Search
- `neuromorphic_search()` - All mechanisms combined
- `get_network_activity()` - Total spike rate
---
## Optimizations Applied ✅
### 1. Reciprocal Constants (APPLIED)
```rust
const INV_TAU_STDP: f32 = 0.05; // 1/TAU_STDP
const INV_255: f32 = 0.00392157; // 1/255
```
### 2. STDP Division Elimination (APPLIED)
```rust
// Before: dt / TAU_STDP (division)
// After: dt * INV_TAU_STDP (multiplication)
```
Result: **18% faster STDP, 5.5x faster snn_tick()**
### 3. Aggregate Optimization (APPLIED)
```rust
// Before: 1.0 / (nc as f32 * 255.0)
// After: INV_255 / nc as f32
```
Result: **7% faster aggregate()**
---
## ASIC Projection (256-Core)
| Metric | Value |
|--------|-------|
| Search Throughput | 0.20 B ops/sec |
| SNN Tick Throughput | 513 M neurons/sec |
| Total Vectors | 8,192 (32/core × 256) |
---
## Summary
| Category | Score | Notes |
|----------|-------|-------|
| Correctness | ✅ 95% | All tests pass |
| Performance | ✅ 95% | Major SNN improvements |
| Size | ✅ 96% | 11.8 KB < 12 KB target |
| Features | ✅ 100% | 58 functions, full neuromorphic |
| Maintainability | ✅ 85% | Clean code, well documented |
**Optimizations Complete:**
- ✅ Reciprocal constants added
- ✅ Division eliminated from hot paths
- ✅ Binary size under 12 KB target
- ✅ All tests passing
- ✅ 5.5x improvement in SNN tick throughput