ternary-sketch
Ternary sketch data structure for approximate GPU workload analysis. Count-Min sketch with ternary counters {-1,0,+1} for streaming frequency estimation.
Why This Matters
ternary-sketch
Ternary sketch for approximate GPU workload analysis. Count-Min sketch with ternary counters.
The Five-Layer Stack
This crate is part of the Oxide Stack — a distributed GPU runtime built on five layers:
┌─────────────────┐
│ cudaclaw │ Persistent GPU kernels, warp consensus, SmartCRDT
├─────────────────┤
│ cuda-oxide │ Flux → MIR → Pliron → NVVM → PTX compiler
├─────────────────┤
│ flux-core │ Bytecode VM + A2A agent protocol
├─────────────────┤
│ pincher │ "Vector DB as runtime, LLM as compiler"
├─────────────────┤
│ open-parallel │ Async runtime (tokio fork)
└─────────────────┘
The key insight: ternary values {-1, 0, +1} map directly to GPU compute. They pack 16× denser than FP32, enable XNOR+popcount matmul, and conservation laws become compile-time checks.
Design
Every value in this crate follows ternary algebra (Z₃):
| Value | Meaning | GPU Analog |
|---|---|---|
| +1 | Positive / Active / Healthy | Warp vote yes |
| 0 | Neutral / Pending / Balanced | Warp vote abstain |
| -1 | Negative / Failed / Overloaded | Warp vote no |
This isn't arbitrary — ternary is the natural encoding for:
- BitNet b1.58 (Microsoft) — ternary LLMs at 60% less power
- GPU warp voting — hardware ballot returns ternary consensus
- Conservation laws — {-1, 0, +1} preserves quantity
Key Types
Usage
[]
= "0.1.0"
use *;
// See src/lib.rs tests for complete working examples
Testing
Stats
| Metric | Value |
|---|---|
| Tests | 7 |
| Lines of Rust | 133 |
| Public API | 9 items |
License
Apache-2.0