Hypura: Storage-tier-aware LLM inference scheduler for Apple Silicon

What Hypura does
Hypura is a storage-tier-aware LLM inference scheduler for Apple Silicon that places model tensors across GPU, RAM, and NVMe tiers based on access patterns, bandwidth costs, and hardware capabilities. This enables models that exceed physical memory to run without crashing the system.
Key features and how it works
Hypura reads GGUF files, profiles your hardware (GPU working set, RAM, NVMe bandwidth), and solves a placement optimization that assigns every tensor to a tier:
- GPU (Metal) — Attention layers, norms, embeddings
- RAM — Overflow layers that don't fit in the GPU working set, accessed via mmap
- NVMe — Remaining layers loaded on-demand via direct I/O (
F_NOCACHE + pread), prefetched ahead of the forward pass
For MoE models like Mixtral, Hypura implements expert-streaming: only non-expert tensors (~1 GB) stay on GPU, while expert tensors stream from NVMe through a pool buffer on demand. It includes a neuron cache with 99.5% hit rate that eliminates most I/O after warmup, router interception to identify selected experts, and co-activation tracking to predict which experts will fire next for speculative prefetch.
For dense models like Llama 70B, it uses dense FFN-streaming: attention + norms stay on GPU (~8 GB) while FFN tensors (~32 GB) stream from NVMe through a dynamically-sized pool buffer with scaled prefetch lookahead.
Performance benchmarks
All benchmarks on M1 Max, 32 GB unified memory, ~5.1 GB/s NVMe sequential read:
- Qwen 2.5 14B Q4_K_M (8.4 GB): Full-resident mode, 21 tok/s (same as llama.cpp)
- Mixtral 8x7B Q5_K_M (30.9 GB): Expert-streaming mode, 2.2 tok/s (llama.cpp OOM)
- Llama 3.3 70B Q4_K_M (39.6 GB): Dense-FFN-streaming mode, 0.3 tok/s (llama.cpp OOM)
Pool buffer size, prefetch depth, and memory budgets are computed automatically from your hardware profile — no manual tuning needed.
Installation
Hypura builds from source with Cargo. You'll need Rust 1.75+ and CMake.
📖 Read the full source: HN AI Agents
👀 See Also

SoulPrint: Local Tool for Searching Claude and ChatGPT History Together
SoulPrint is an open-source Python tool that imports conversation exports from Claude (.json) and ChatGPT (.zip) into a local SQLite archive, enabling full-text search across both providers simultaneously with BM25 ranking and highlighted snippets.

Local Terminal CRM with Built-in MCP Server for Claude Integration
A developer built a personal CRM that runs in the terminal with local SQLite storage and includes a built-in MCP server, giving Claude access to 18 tools for managing contacts, deals, and follow-ups.

KV Cache Reuse for Long Conversations on Apple Silicon Delivers 200x Speedup
A developer implemented session-based KV cache reuse for local LLM inference using Apple's MLX framework, achieving a 200x improvement in time-to-first-token at 100K context length. The approach keeps the KV cache in memory across conversation turns, processing only new tokens.

Artificial-life: A 300-line Python reproduction of Computational Life research
A Python implementation reproducing the Computational Life paper, where 240x135 grid of Brainfuck-like programs interact and evolve self-replicating code through random pairing and instruction tape concatenation.