<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zero_planck</title>
    <description>The latest articles on DEV Community by Zero_planck (@zeroextubcollab).</description>
    <link>https://dev.to/zeroextubcollab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4051410%2F04d85f37-4d6a-4c51-b237-413864031e9e.jpg</url>
      <title>DEV Community: Zero_planck</title>
      <link>https://dev.to/zeroextubcollab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeroextubcollab"/>
    <language>en</language>
    <item>
      <title>I Built a CUDA Engine That Streams 744B-Parameter AI Models on Consumer Hardware</title>
      <dc:creator>Zero_planck</dc:creator>
      <pubDate>Thu, 30 Jul 2026 14:30:16 +0000</pubDate>
      <link>https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-3on3</link>
      <guid>https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-3on3</guid>
      <description>&lt;h1&gt;
  
  
  I Built a CUDA Engine That Streams 744B-Parameter AI Models on Consumer Hardware
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ai #cuda #opensource #machinelearning
&lt;/h1&gt;

&lt;h2&gt;
  
  
  WISP — Stream What Shouldn't Run
&lt;/h2&gt;

&lt;p&gt;Last week, JustVugg released &lt;strong&gt;Colibrì&lt;/strong&gt; — a ~2,400-line pure-C inference engine demonstrating something I couldn't stop thinking about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A 744B-parameter MoE model doesn't necessarily need 744B parameters sitting in memory at once.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Colibrì showed how expert weights could be streamed from storage instead of forcing the entire model into RAM.&lt;/p&gt;

&lt;p&gt;So I started building on that idea.&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;WISP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;WISP is an experimental inference engine built around one principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't load the whole model. Load what the current token needs.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Frontier-scale open-weight models are becoming enormous.&lt;/p&gt;

&lt;p&gt;Models such as &lt;strong&gt;GLM-5.2&lt;/strong&gt;, &lt;strong&gt;DeepSeek-V3&lt;/strong&gt;, and emerging trillion-parameter MoE architectures can be far beyond the memory capacity of a normal workstation.&lt;/p&gt;

&lt;p&gt;The usual local-inference solution is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make the model smaller until it fits.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quantize it. Offload layers. Reduce context. Use a smaller model.&lt;/p&gt;

&lt;p&gt;But MoE models give us another option.&lt;/p&gt;

&lt;p&gt;They may contain hundreds of billions of total parameters while activating only a fraction of them for each token.&lt;/p&gt;

&lt;p&gt;So instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we fit the entire model into memory?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;WISP asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if we never load the entire model at all?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Core Insight
&lt;/h2&gt;

&lt;p&gt;Credit here goes to &lt;strong&gt;JustVugg and Colibrì&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mixture-of-Experts models contain many expert networks, but the router activates only a subset for each token.&lt;/p&gt;

&lt;p&gt;That changes the memory problem completely.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MODEL
↓
Load hundreds of billions of parameters
↓
Run inference
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we can do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Token
  ↓
Router selects experts
  ↓
VRAM cache?
  ├── HIT → use immediately
  ↓ MISS
RAM cache?
  ├── HIT → transfer to GPU
  ↓ MISS
NVMe SSD
  ↓
Stream expert into pinned RAM
  ↓
Promote frequently used experts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;WISP uses a hierarchical cache:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VRAM → RAM → NVMe&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;with LRU-based promotion and eviction.&lt;/p&gt;

&lt;p&gt;As workloads develop locality, frequently used experts migrate upward through the hierarchy automatically.&lt;/p&gt;

&lt;p&gt;No manually configured "coding mode."&lt;/p&gt;

&lt;p&gt;No "math expert preset."&lt;/p&gt;

&lt;p&gt;The workload shapes the cache.&lt;/p&gt;




&lt;h1&gt;
  
  
  What WISP Adds
&lt;/h1&gt;

&lt;p&gt;Colibrì demonstrated the core streaming idea.&lt;/p&gt;

&lt;p&gt;WISP attempts to generalize that architecture across multiple MoE families while combining &lt;strong&gt;Python, C, and CUDA&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Absorbed MLA Attention
&lt;/h2&gt;

&lt;p&gt;Models in the DeepSeek family use &lt;strong&gt;Multi-head Latent Attention (MLA)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of storing fully expanded K/V tensors for every token, WISP implements an absorbed MLA path built around the compressed latent representation.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional KV cache

Token → K tensor
      → V tensor
      → store both


Absorbed MLA

Token → compressed latent state
      → store latent representation
      → reconstruct/absorb projections during attention
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can dramatically reduce KV-cache memory requirements for architectures where MLA is supported.&lt;/p&gt;

&lt;p&gt;And that matters because once model weights are streamed, &lt;strong&gt;context memory becomes the next wall&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Double-Buffered Async Streaming
&lt;/h2&gt;

&lt;p&gt;SSD streaming sounds terrible for inference latency.&lt;/p&gt;

&lt;p&gt;And it is — if the GPU waits for it.&lt;/p&gt;

&lt;p&gt;So WISP overlaps I/O with compute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TOKEN N

GPU
████████████████████
Compute token N


CPU + I/O
      ████████████
      Prepare/fetch next experts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While CUDA is computing the current work, the C runtime can prepare upcoming expert data in pinned host memory.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hide transfers behind computation whenever possible.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;WISP doesn't require GPUDirect Storage for this design.&lt;/p&gt;

&lt;p&gt;Instead, it uses asynchronous I/O, pinned memory, CUDA streams, and double buffering to reduce idle time.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Same-Family Speculative Decoding
&lt;/h2&gt;

&lt;p&gt;Streaming solves memory.&lt;/p&gt;

&lt;p&gt;It doesn't automatically solve generation speed.&lt;/p&gt;

&lt;p&gt;So WISP also supports speculative decoding.&lt;/p&gt;

&lt;p&gt;A smaller draft model proposes several tokens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Draft model

→ token A
→ token B
→ token C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The larger model then verifies the proposal in parallel.&lt;/p&gt;

&lt;p&gt;Accepted tokens are committed immediately. Rejected tokens fall back to the target model.&lt;/p&gt;

&lt;p&gt;When acceptance is high enough, one expensive target-model pass can advance generation by multiple tokens.&lt;/p&gt;

&lt;p&gt;The important property:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the target model still determines the final output.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speculation changes how inference is executed, not which model ultimately validates the tokens.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Hardware Auto-Configuration
&lt;/h2&gt;

&lt;p&gt;I didn't want WISP to require this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--gpu-cache 8.7GB
--ram-cache 21.3GB
--io-workers 6
--buffer-size 512MB
--please-dont-crash-my-display
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the first-run profiler measures the machine and builds the configuration automatically.&lt;/p&gt;

&lt;p&gt;It considers things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VRAM
RAM
storage throughput
available memory
GPU configuration
cache capacity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The runtime can then determine how aggressively experts should be cached at each level.&lt;/p&gt;

&lt;p&gt;The idea is that you should point WISP at a model and let the engine figure out the machine.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Stack
&lt;/h1&gt;

&lt;p&gt;WISP intentionally uses three layers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────┐
│           PYTHON            │
│ Download / Convert / Config │
├─────────────────────────────┤
│              C              │
│ Cache / I/O / Hot Runtime   │
├─────────────────────────────┤
│            CUDA             │
│ Attention / FFN / GPU Math  │
└─────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; handles orchestration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt; handles the latency-sensitive runtime and expert streaming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CUDA&lt;/strong&gt; handles the math that belongs on the GPU.&lt;/p&gt;

&lt;p&gt;One job per layer.&lt;/p&gt;




&lt;h1&gt;
  
  
  Model Targets
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Total Parameters&lt;/th&gt;
&lt;th&gt;Active / Token&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GLM-5.2&lt;/td&gt;
&lt;td&gt;744B&lt;/td&gt;
&lt;td&gt;~40B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-V3&lt;/td&gt;
&lt;td&gt;671B&lt;/td&gt;
&lt;td&gt;~37B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-R1&lt;/td&gt;
&lt;td&gt;671B&lt;/td&gt;
&lt;td&gt;~37B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mixtral-8x7B&lt;/td&gt;
&lt;td&gt;47B&lt;/td&gt;
&lt;td&gt;~13B&lt;/td&gt;
&lt;td&gt;✅ Verified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mixtral-8x22B&lt;/td&gt;
&lt;td&gt;141B&lt;/td&gt;
&lt;td&gt;~39B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kimi K3&lt;/td&gt;
&lt;td&gt;2.8T&lt;/td&gt;
&lt;td&gt;~50B&lt;/td&gt;
&lt;td&gt;⏳ Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen3.8&lt;/td&gt;
&lt;td&gt;2.4T&lt;/td&gt;
&lt;td&gt;TBD&lt;/td&gt;
&lt;td&gt;⏳ Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  Real Benchmark: Mixtral-8x7B
&lt;/h1&gt;

&lt;p&gt;Test machine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CPU:     Ryzen 7 9800X3D
GPU:     RTX 5070 12GB
RAM:     32GB DDR5-6000
Storage: PCIe 4.0 NVMe
Measured sequential throughput: ~4.34 GB/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Measured cold throughput:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;0.75 tok/s&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After only 80 tokens:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;68.8% expert-cache hit rate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mixtral performs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 experts × 32 layers
= 64 expert activations/token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On this machine, all 256 experts can fit in RAM after warm-up, occupying roughly &lt;strong&gt;14.3GB&lt;/strong&gt; in the tested representation.&lt;/p&gt;

&lt;p&gt;At that point, the inference path can avoid cold SSD expert reads.&lt;/p&gt;

&lt;p&gt;That's exactly the behavior WISP is designed around.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Interesting Part: Bigger Can Behave Differently
&lt;/h1&gt;

&lt;p&gt;Here's one of the counterintuitive things I learned while building this.&lt;/p&gt;

&lt;p&gt;Model size alone doesn't determine streaming performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expert size matters enormously.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In my tested setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mixtral expert: ~99MB
GLM-class expert target: ~17.5MB

Difference: ~5.7×
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A much larger total model can therefore present a very different I/O profile if each routed expert is substantially smaller.&lt;/p&gt;

&lt;p&gt;For a streaming architecture, the important number isn't only:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How large is the model?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's also:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many bytes must move for each token?&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  What Building WISP Taught Me
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Storage Can Become the Real Bottleneck
&lt;/h2&gt;

&lt;p&gt;I initially expected CUDA optimization to dominate performance work.&lt;/p&gt;

&lt;p&gt;It didn't.&lt;/p&gt;

&lt;p&gt;Once compute becomes sufficiently fast, cold expert loading can dominate latency.&lt;/p&gt;

&lt;p&gt;That means an optimization that makes a matrix multiplication 20% faster may barely affect end-to-end generation if the runtime is still waiting on hundreds of megabytes of storage traffic.&lt;/p&gt;

&lt;p&gt;For this architecture, I keep coming back to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bytes moved / token
cache hit rate
I/O overlap
expert locality
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those can matter more than another optimized kernel.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Router Already Knows What the Model Needs
&lt;/h2&gt;

&lt;p&gt;I experimented with thinking about expert prediction and domain-specific preloading.&lt;/p&gt;

&lt;p&gt;But every MoE already contains something better:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;its router.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every token generates routing decisions.&lt;/p&gt;

&lt;p&gt;Those decisions provide a continuous stream of information about which experts the model is actually using.&lt;/p&gt;

&lt;p&gt;So WISP can let the model's own behavior drive cache adaptation rather than maintaining manually designed domain modes.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. GPU Memory Isn't Just Yours
&lt;/h2&gt;

&lt;p&gt;Consumer GPUs are often also driving the display.&lt;/p&gt;

&lt;p&gt;Inference code that assumes every byte of reported VRAM belongs to the model can create a terrible desktop experience.&lt;/p&gt;

&lt;p&gt;WISP therefore treats available VRAM as a dynamic resource and reserves headroom instead of blindly allocating everything it sees.&lt;/p&gt;

&lt;p&gt;This sounds boring compared with CUDA kernels.&lt;/p&gt;

&lt;p&gt;It also matters a lot when you're actually running the thing on your daily PC.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Benchmark Claims Need Context
&lt;/h2&gt;

&lt;p&gt;Large-model inference produces very tempting numbers.&lt;/p&gt;

&lt;p&gt;Estimated throughput.&lt;/p&gt;

&lt;p&gt;Theoretical bandwidth.&lt;/p&gt;

&lt;p&gt;Projected cache-hit rates.&lt;/p&gt;

&lt;p&gt;Best-case model sizes.&lt;/p&gt;

&lt;p&gt;So I made a rule for WISP:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Measured numbers are labeled measured. Estimates are labeled estimates.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Benchmarks should include the hardware, model, quantization/representation, cache state, context, and relevant runtime conditions.&lt;/p&gt;

&lt;p&gt;A boring number you can reproduce is more useful than an insane number nobody can.&lt;/p&gt;




&lt;h1&gt;
  
  
  Credit Where It's Due
&lt;/h1&gt;

&lt;p&gt;WISP started because &lt;strong&gt;JustVugg's Colibrì&lt;/strong&gt; demonstrated that this style of inference was worth exploring.&lt;/p&gt;

&lt;p&gt;Colibrì proved the core concept.&lt;/p&gt;

&lt;p&gt;WISP explores how far that concept can be generalized with a multi-model runtime, hierarchical caching, CUDA acceleration, asynchronous streaming, MLA support, and speculative decoding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Colibrì:&lt;/strong&gt;&lt;br&gt;
github.com/JustVugg/colibri&lt;/p&gt;

&lt;p&gt;Built on the shoulders of open-source work.&lt;/p&gt;


&lt;h1&gt;
  
  
  Getting Started
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;wisp-engine

wisp convert &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--model&lt;/span&gt; glm-5.2 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--output&lt;/span&gt; ./models/

wisp chat &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--model&lt;/span&gt; ./models/glm-5.2/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Typical target hardware:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;16GB+ system RAM
NVMe SSD with sufficient free storage
CUDA GPU with 8GB+ VRAM recommended
CPU-only execution supported
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don't need a datacenter.&lt;/p&gt;

&lt;p&gt;You need a memory hierarchy.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Next
&lt;/h1&gt;

&lt;p&gt;The next targets are focused on pushing streaming inference further:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Kimi K3 support
• KDA attention
• Quantile Balancing routing support
• Learning cache
• Persistent KV cache
• Conversation resume
• Expert heatmap dashboard
• ROCm support
• OpenAI-compatible API server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The learning cache is especially interesting.&lt;/p&gt;

&lt;p&gt;Instead of starting cold every session, WISP could preserve workload patterns and gradually optimize itself around how you actually use the model.&lt;/p&gt;

&lt;p&gt;Today the hierarchy is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VRAM
  ↓
RAM
  ↓
NVMe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eventually I want it to feel more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VRAM
  ↓
RAM
  ↓
NVMe
  ↓
Persistent workload intelligence
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;73 tests passing. MIT licensed. Open source.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WISP:&lt;/strong&gt;&lt;br&gt;
github.com/zeroextub-collab/wisp&lt;/p&gt;

&lt;p&gt;The goal isn't to pretend a consumer PC suddenly became an H100 cluster.&lt;/p&gt;

&lt;p&gt;It's to ask a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How much AI can we run when model size stops being limited by RAM?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Colibrì showed me that the answer might be much bigger than I thought.&lt;/p&gt;

&lt;p&gt;So I built WISP to find out.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>googlecloud</category>
      <category>software</category>
    </item>
    <item>
      <title>Please support guys !!!!!!!!</title>
      <dc:creator>Zero_planck</dc:creator>
      <pubDate>Tue, 28 Jul 2026 16:40:03 +0000</pubDate>
      <link>https://dev.to/zeroextubcollab/please-support-guys--3nee</link>
      <guid>https://dev.to/zeroextubcollab/please-support-guys--3nee</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g" class="crayons-story__hidden-navigation-link"&gt;I Built a CUDA Engine That Streams 744B Parameter AI Models on Consumer Hardware&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/zeroextubcollab" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4051410%2F04d85f37-4d6a-4c51-b237-413864031e9e.jpg" alt="zeroextubcollab profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/zeroextubcollab" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Zero_planck
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Zero_planck
                
              
              &lt;div id="story-author-preview-content-4255896" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/zeroextubcollab" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4051410%2F04d85f37-4d6a-4c51-b237-413864031e9e.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Zero_planck&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g" id="article-link-4255896"&gt;
          I Built a CUDA Engine That Streams 744B Parameter AI Models on Consumer Hardware
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cuda"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cuda&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I Built a CUDA Engine That Streams 744B Parameter AI Models on Consumer Hardware</title>
      <dc:creator>Zero_planck</dc:creator>
      <pubDate>Tue, 28 Jul 2026 16:39:05 +0000</pubDate>
      <link>https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g</link>
      <guid>https://dev.to/zeroextubcollab/i-built-a-cuda-engine-that-streams-744b-parameter-ai-models-on-consumer-hardware-147g</guid>
      <description>&lt;h1&gt;
  
  
  WISP — Stream What Shouldn't Run
&lt;/h1&gt;

&lt;p&gt;Last week JustVugg dropped Colibrì — a 2,400-line pure C &lt;br&gt;
engine that proved a 744B parameter model could run on 25GB &lt;br&gt;
of consumer RAM by streaming expert weights from disk.&lt;/p&gt;

&lt;p&gt;It blew my mind. So I built on top of that concept.&lt;/p&gt;

&lt;p&gt;This is WISP.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;The largest open source AI models in the world — GLM-5.2 &lt;br&gt;
(744B), DeepSeek-V3 (671B), Kimi K3 (2.8T) — require &lt;br&gt;
datacenter hardware to run. Most people trying to run them &lt;br&gt;
locally hit a wall immediately.&lt;/p&gt;

&lt;p&gt;The standard approaches all make the same tradeoff:&lt;br&gt;
quantize aggressively until the model fits, or don't run it.&lt;/p&gt;

&lt;p&gt;Both options sacrifice intelligence for accessibility.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Insight (Credit: JustVugg / Colibrì)
&lt;/h2&gt;

&lt;p&gt;MoE (Mixture-of-Experts) models don't activate all their &lt;br&gt;
parameters for every token. GLM-5.2 activates ~5.4% per &lt;br&gt;
token. Kimi K3 activates ~1.8%.&lt;/p&gt;

&lt;p&gt;This means you don't need to fit the whole model in RAM.&lt;br&gt;
You just need to stream the right experts fast enough.&lt;/p&gt;

&lt;p&gt;Token arrives&lt;br&gt;
↓&lt;br&gt;
Model's own router selects which experts to activate&lt;br&gt;
↓&lt;br&gt;
Check VRAM first → instant if cached&lt;br&gt;
↓&lt;br&gt;
Then RAM → fast if cached&lt;br&gt;
↓&lt;br&gt;
Then NVMe SSD → stream if cold&lt;br&gt;
↓&lt;br&gt;
LRU cache promotes hot experts upward automatically&lt;/p&gt;

&lt;p&gt;After 10-15 minutes in one domain, the cache self-organizes &lt;br&gt;
to 85-92% hit rate. No configuration. Fully automatic.&lt;/p&gt;




&lt;h2&gt;
  
  
  What WISP Adds on Top
&lt;/h2&gt;

&lt;p&gt;Colibrì proved the concept for one model (GLM-5.2) in pure C.&lt;/p&gt;

&lt;p&gt;WISP extends it to every major MoE model with full CUDA &lt;br&gt;
acceleration:&lt;/p&gt;

&lt;h3&gt;
  
  
  Absorbed MLA Attention
&lt;/h3&gt;

&lt;p&gt;GLM-5.2 and DeepSeek use Multi-head Latent Attention.&lt;br&gt;
WISP implements true absorbed MLA — storing compressed c_kv &lt;br&gt;
instead of expanded K,V tensors.&lt;/p&gt;

&lt;p&gt;Result: &lt;strong&gt;~70KB per token&lt;/strong&gt; KV cache instead of ~5MB.&lt;br&gt;
This is what makes 1M token context feasible in RAM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Double-Buffer Async Pipeline
&lt;/h3&gt;

&lt;p&gt;While the GPU computes token N (2-8ms), the C engine loads &lt;br&gt;
token N+1's predicted experts from SSD into pinned RAM &lt;br&gt;
(0.1-0.3ms). Transfer is fully hidden inside compute time.&lt;br&gt;
GPU never waits. No GPUDirect Storage needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Same-Family Speculative Decoding
&lt;/h3&gt;

&lt;p&gt;Small models from the same family draft 3 tokens &lt;br&gt;
simultaneously. The main model verifies all 3 in one &lt;br&gt;
parallel forward pass. At 39-55% acceptance rate this gives&lt;br&gt;
2.2-2.8x effective throughput with zero quality loss&lt;br&gt;
(Leviathan et al. 2023).&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto-Config Everything
&lt;/h3&gt;

&lt;p&gt;WISP profiles your hardware once on first run and &lt;br&gt;
calculates the optimal VRAM/RAM/SSD split automatically.&lt;br&gt;
It even detects whether your monitor is on the GPU or &lt;br&gt;
motherboard and reserves VRAM accordingly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;p&gt;Python → orchestration (download, convert, configure)&lt;br&gt;
C → hot path (64-1504 expert fetches per token)&lt;br&gt;
CUDA → math (attention, routing, FFN, speculation)&lt;/p&gt;

&lt;p&gt;Three layers. One job each.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Supported
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Parameters&lt;/th&gt;
&lt;th&gt;Active/token&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GLM-5.2&lt;/td&gt;
&lt;td&gt;744B&lt;/td&gt;
&lt;td&gt;40B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-V3&lt;/td&gt;
&lt;td&gt;671B&lt;/td&gt;
&lt;td&gt;37B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-R1&lt;/td&gt;
&lt;td&gt;671B&lt;/td&gt;
&lt;td&gt;37B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mixtral-8x7B&lt;/td&gt;
&lt;td&gt;47B&lt;/td&gt;
&lt;td&gt;13B&lt;/td&gt;
&lt;td&gt;✅ Verified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mixtral-8x22B&lt;/td&gt;
&lt;td&gt;141B&lt;/td&gt;
&lt;td&gt;39B&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kimi K3&lt;/td&gt;
&lt;td&gt;2.8T&lt;/td&gt;
&lt;td&gt;~50B&lt;/td&gt;
&lt;td&gt;⏳ July 27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen3.8&lt;/td&gt;
&lt;td&gt;2.4T&lt;/td&gt;
&lt;td&gt;TBD&lt;/td&gt;
&lt;td&gt;⏳ Soon&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Real Benchmark — Mixtral-8x7B on RTX 5070
&lt;/h2&gt;

&lt;p&gt;Verified on: R7 9800X3D | RTX 5070 12GB | &lt;br&gt;
32GB DDR5-6000 | PCIe 4.0 NVMe (4.34 GB/s)&lt;/p&gt;

&lt;p&gt;Cold tok/s: 0.75 tok/s (measured)&lt;br&gt;
Cache hit rate: 68.8% after only 80 tokens&lt;br&gt;
Expert fetches: 64 per token (2 experts × 32 layers)&lt;br&gt;
All 256 experts: Fit entirely in RAM (14.3GB)&lt;br&gt;
After warm-up: Zero SSD reads&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is Mixtral slower than GLM-5.2 will be?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mixtral experts = 99MB each.&lt;br&gt;
GLM-5.2 experts = 17.5MB each.&lt;/p&gt;

&lt;p&gt;5.7x smaller experts = 5.7x less data per token.&lt;br&gt;
GLM-5.2 is where WISP's architecture truly sings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons From Building This
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Lesson 1: The bottleneck is always the SSD&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every optimization that doesn't improve cache hit rate &lt;br&gt;
or reduce bytes-per-token is noise. CUDA for expert matmul &lt;br&gt;
gives near-zero benefit on a 9800X3D because the CPU is &lt;br&gt;
already fast enough — the NVMe is the wall.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson 2: The model's router is the best scheduler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We don't predict or preload experts manually. The model's &lt;br&gt;
own router fires on every token and tells us exactly what &lt;br&gt;
it needs. Our LRU cache learns from this automatically.&lt;br&gt;
No heuristics. No preset domain modes. Pure adaptation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson 3: Windows GPU display is a real problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Running inference on the same GPU that drives your monitor &lt;br&gt;
will black screen your display. The GPU tries to do both &lt;br&gt;
and the display loses. We ship display auto-detection that &lt;br&gt;
reserves VRAM and prevents this automatically.&lt;br&gt;
Learned this the hard way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson 4: Honest numbers matter more than impressive ones&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The README says "We do not publish a bold number we didn't &lt;br&gt;
measure." Every estimate is labeled as an estimate. Every &lt;br&gt;
measured number has the exact conditions listed.&lt;br&gt;
People trust projects that are honest about limitations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;WISP wouldn't exist without &lt;strong&gt;Colibrì&lt;/strong&gt; by JustVugg.&lt;br&gt;
He built the proof of concept. We built the generalization.&lt;/p&gt;

&lt;p&gt;Full credit: github.com/JustVugg/colibri&lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;wisp-engine
wisp convert &lt;span class="nt"&gt;--model&lt;/span&gt; glm-5.2 &lt;span class="nt"&gt;--output&lt;/span&gt; ./models/
wisp chat &lt;span class="nt"&gt;--model&lt;/span&gt; ./models/glm-5.2/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;16GB+ RAM&lt;/li&gt;
&lt;li&gt;Any NVMe SSD with 300GB+ free&lt;/li&gt;
&lt;li&gt;CUDA GPU with 8GB+ VRAM (optional, CPU-only works)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;July 27 — Kimi K3 day&lt;/strong&gt;&lt;br&gt;
Weights drop. Technical report publishes. We implement &lt;br&gt;
KDA attention and Quantile Balancing router. WISP streams &lt;br&gt;
2.8 trillion parameters on consumer hardware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning cache (gets faster with use)&lt;/li&gt;
&lt;li&gt;Persistent KV cache (resume conversations)&lt;/li&gt;
&lt;li&gt;Web dashboard with expert heatmap&lt;/li&gt;
&lt;li&gt;ROCm support (AMD R9700)&lt;/li&gt;
&lt;li&gt;OpenAI-compatible API server&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;73 tests passing. MIT license.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;github.com/zeroextub-collab/wisp&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built on the shoulders of Colibrì. &lt;br&gt;
JustVugg showed us what was possible.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cuda</category>
      <category>opensource</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
