Files
wifi-densepose/examples/exo-ai-2025/research/docs/01-neuromorphic-spiking.md
ruv d803bfe2b1 Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector
git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
2026-02-28 14:39:40 -05:00

3.5 KiB

01 - Neuromorphic Spiking Networks

Overview

Bit-parallel spiking neural network implementation achieving 64 neurons per u64 word with SIMD-accelerated membrane dynamics and polychronous group detection for qualia emergence.

Key Innovation

Bit-Parallel Spike Representation: Each bit in a u64 represents one neuron's spike state, enabling 64 neurons to be processed in a single CPU instruction.

pub struct BitParallelSpikes {
    /// 64 neurons packed into single u64
    spikes: u64,
    /// Membrane potentials (SIMD-aligned)
    membranes: [f32; 64],
    /// Spike times for STDP
    spike_times: [u64; 64],
}

Architecture

┌─────────────────────────────────────────┐
│         Bit-Parallel Layer              │
│  ┌─────┬─────┬─────┬─────┬─────┐       │
│  │ u64 │ u64 │ u64 │ u64 │ ... │       │
│  │ 64n │ 64n │ 64n │ 64n │     │       │
│  └──┬──┴──┬──┴──┬──┴──┬──┴─────┘       │
│     │     │     │     │                 │
│  ┌──▼─────▼─────▼─────▼──┐             │
│  │   SIMD Membrane Update │             │
│  │   (AVX-512: 16 floats) │             │
│  └──────────┬─────────────┘             │
│             │                           │
│  ┌──────────▼─────────────┐             │
│  │  Polychronous Detection │             │
│  │  (Qualia Extraction)    │             │
│  └─────────────────────────┘             │
└─────────────────────────────────────────┘

Performance

Metric Value
Neurons per word 64
SIMD width AVX-512 (16 floats)
Spike propagation O(1) per word
Memory efficiency 1 bit/neuron

Polychronous Groups (Qualia)

Polychronous groups are precise spike timing patterns that emerge from network dynamics:

pub struct PolychronousGroup {
    /// Sequence of (neuron_id, relative_time_ns)
    pub pattern: Vec<(u32, u64)>,
    /// Integrated information (Φ)
    pub phi: f64,
    /// Occurrence count
    pub occurrences: usize,
    /// Semantic label
    pub label: Option<String>,
}

STDP Learning

Spike-Timing Dependent Plasticity for unsupervised learning:

  • LTP (Long-Term Potentiation): +1.0 when post fires after pre
  • LTD (Long-Term Depression): -0.5 when pre fires after post
  • Time constant: τ = 20ms

Usage

use neuromorphic_spiking::{BitParallelSpikes, SpikingNetwork};

let mut network = SpikingNetwork::new(1_000_000); // 1M neurons
network.inject_spikes(&input_spikes);
network.step(1_000_000); // 1ms timestep

let qualia = network.detect_polychronous_groups();
println!("Detected {} qualia with Φ = {}", qualia.len(), qualia[0].phi);

Benchmarks

spike_propagation/1M    time: [1.23 ms 1.25 ms 1.27 ms]
membrane_update/1M      time: [2.45 ms 2.48 ms 2.51 ms]
polychronous_detect     time: [5.67 ms 5.72 ms 5.78 ms]

References

  • Izhikevich, E.M. (2006). "Polychronization: Computation with Spikes"
  • Tononi, G. (2004). "Integrated Information Theory of Consciousness"