<?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: Roy Mu</title>
    <description>The latest articles on DEV Community by Roy Mu (@nalaginrut).</description>
    <link>https://dev.to/nalaginrut</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%2F470655%2F030aa535-cdce-40a8-b090-00fb6b1ce6d2.jpeg</url>
      <title>DEV Community: Roy Mu</title>
      <link>https://dev.to/nalaginrut</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nalaginrut"/>
    <language>en</language>
    <item>
      <title>SonicBoom: 52 tok/s decode on a laptop RTX 3050 (llama.cpp: 45) with the same quantized kernels, the difference is a graph compiler. No Python.</title>
      <dc:creator>Roy Mu</dc:creator>
      <pubDate>Tue, 13 Oct 2026 18:16:49 +0000</pubDate>
      <link>https://dev.to/nalaginrut/sonicboom-52-toks-decode-on-a-laptop-rtx-3050-llamacpp-45-with-the-same-quantized-kernels-24kj</link>
      <guid>https://dev.to/nalaginrut/sonicboom-52-toks-decode-on-a-laptop-rtx-3050-llamacpp-45-with-the-same-quantized-kernels-24kj</guid>
      <description>&lt;p&gt;I’ve been building SonicBoom, a native tensor runtime written in C++/CUDA with a C ABI and no Python anywhere in the stack. I just tagged v0.0.1, and the first target is local LLM inference on consumer GPUs.&lt;/p&gt;

&lt;p&gt;Numbers (Gemma 4 E4B-it Q3_K_M on a laptop RTX 3050 8 GB, both runtimes using the same GGUF on the same machine, llama.cpp at commit 43fe9c64281):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       SonicBoom                    llama.cpp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Decode (tg64)           51.65 tok/s         45.20 tok/s&lt;br&gt;
Decode @ depth 2048 47.13 tok/s         45.21 tok/s&lt;br&gt;
Prefill 4100 tokens 1051 tok/s          ~1944 tok/s&lt;br&gt;
TTFT, 4000-token prefix + 100 new   503 ms (prefix reuse)   &lt;/p&gt;

&lt;p&gt;Why it matters: the quantized matmul kernels (MMVQ/MMQ) are ported from ggml, so the kernels are the same ones llama.cpp uses. The 14% decode lead comes entirely from the layer above them. A graph planner rewrites the model before it runs: activations are quantized once and reused, norm and activation are fused with quantization, dead computation is removed, and each decode step is captured and replayed as a single CUDA Graph. Code derived from ggml is about 8% of the core. The rest is the runtime.&lt;/p&gt;

&lt;p&gt;Prefix reuse is exact: a continuation is token-for-token identical to a full prefill, which makes multi-turn chat and coding-assistant workloads cheap.&lt;/p&gt;

&lt;p&gt;What it can’t do yet:&lt;/p&gt;

&lt;p&gt;Prefill is about half of llama.cpp. It is a real batched path (int8 tensor-core plus cuBLAS), but there’s more to close.&lt;br&gt;
One verified model: Gemma 4 E4B. The quant formats are Q3_K, Q4_K and Q5_K only, so most Q4_K_M files from Hugging Face won’t load yet because they mix in Q6_K and Q8_0. Those formats are next, along with Qwen.&lt;br&gt;
It has only been tested on sm_86 (RTX 30-series), and sampling is greedy only.&lt;/p&gt;

&lt;p&gt;It’s not a drop-in llama.cpp replacement yet. The point of v0.0.1 is to show that the architecture works: once a graph compiler sits on top of the same kernels, the remaining gains come from the compiler instead of more hand-written kernels. Next on the roadmap are MLIR GPU codegen, speculative decoding, and more formats.&lt;/p&gt;

&lt;p&gt;GPL-3.0. Benchmark conditions, reproduce commands and the model sha256 are in the README:&lt;br&gt;
&lt;a href="https://github.com/hardenedlinux/SonicBoom" rel="noopener noreferrer"&gt;https://github.com/hardenedlinux/SonicBoom&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>computerscience</category>
      <category>sonicboom</category>
      <category>compiler</category>
    </item>
  </channel>
</rss>
