<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: i_am_rocoe</title><link>https://news.ycombinator.com/user?id=i_am_rocoe</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 24 Jul 2026 02:29:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=i_am_rocoe" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by i_am_rocoe in "Ask HN: What Are You Working On? (July 2026)"]]></title><description><![CDATA[
<p>I'm working on a variation of MTP that recovers PP TPS (back to the same as with MTP disabled), keeping most of MTP's benefits to TG TPS.<p><a href="https://news.ycombinator.com/item?id=48700782">https://news.ycombinator.com/item?id=48700782</a><p>Will propose a patch back to llama.cpp or provide it as a fork.</p>
]]></description><pubDate>Mon, 13 Jul 2026 03:09:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887400</link><dc:creator>i_am_rocoe</dc:creator><comments>https://news.ycombinator.com/item?id=48887400</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887400</guid></item><item><title><![CDATA[New comment by i_am_rocoe in "I patched llama.cpp to gain 20% prompt processing TPS. Help me make a PR"]]></title><description><![CDATA[
<p>Thank you!</p>
]]></description><pubDate>Sat, 27 Jun 2026 19:34:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48701017</link><dc:creator>i_am_rocoe</dc:creator><comments>https://news.ycombinator.com/item?id=48701017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48701017</guid></item><item><title><![CDATA[I patched llama.cpp to gain 20% prompt processing TPS. Help me make a PR]]></title><description><![CDATA[
<p>I've been running Qwen3.6-35B-A3B locally on llama.cpp and noticed that prompt processing throughput gets too low with MTP. I got nerd-sniped.<p>What started as curiosity turned into a two-week rabbit hole of experiments and ended with a PoC that fully recovers the MTP PP overhead on GPU, above any expectation I had.<p>TL;DR: instead of processing the last layer MoE FFN for the entire ubatch tokens (usually 512-2048 tokens), this PoC processes only the output row (usually 1 token during prefill). The result is PP TPS is back to the same as with MTP disabled, keeping most of MTP's benefits to TG TPS, even with a slight drop in draft acceptance rate in one of the benchs.<p>I'm not opening a PR to llama.cpp because this is AI-generated code, which goes against their contribution policy, which I support. If you know C++ and llama.cpp internals, I invite to work together with me to open a PR with a more mature implementation.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48700782">https://news.ycombinator.com/item?id=48700782</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Sat, 27 Jun 2026 19:03:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48700782</link><dc:creator>i_am_rocoe</dc:creator><comments>https://news.ycombinator.com/item?id=48700782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48700782</guid></item><item><title><![CDATA[New comment by i_am_rocoe in "As; HN: I was curious why MTP affects PP TPS in llama.cpp. My PoC recovers it?"]]></title><description><![CDATA[
<p>If you want to run the PoC locally to replicate:<p>Clone the masked-nextn-skip-catchup branch:<p><a href="https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn-skip-catchup" rel="nofollow">https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn...</a><p>Run llama-server with at least --n-gpu-layers 99 --spec-type draft-mtp --spec-draft-n-max 2 --parallel 1 --no-cache-prompt.<p>I used Qwen3.6-35B-A3B-UD-Q2_K_XL MTP:<p><a href="https://huggingface.co/unsloth/Qwen3.6-35B-A3B-MTP-GGUF?show_file_info=Qwen3.6-35B-A3B-UD-Q2_K_XL.gguf" rel="nofollow">https://huggingface.co/unsloth/Qwen3.6-35B-A3B-MTP-GGUF?show...</a><p>I tested on a L40S (using Modal).<p>About the parameters:<p>--parallel 1, see Code review findings:<p><a href="https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn-skip-catchup/README.md#code-review-findings" rel="nofollow">https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn...</a><p>--no-cache-prompt, see Known limitations:<p><a href="https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn-skip-catchup/README.md#known-limitations" rel="nofollow">https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn...</a></p>
]]></description><pubDate>Thu, 25 Jun 2026 14:22:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48673871</link><dc:creator>i_am_rocoe</dc:creator><comments>https://news.ycombinator.com/item?id=48673871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48673871</guid></item><item><title><![CDATA[As; HN: I was curious why MTP affects PP TPS in llama.cpp. My PoC recovers it?]]></title><description><![CDATA[
<p>I've been running Qwen3.6-35B-A3B locally on llama.cpp and noticed that prompt processing throughput gets too low with MTP. I got nerd-sniped.<p>I'm not a C++ dev, I know almost nothing about ML, and I'm only scratching the surface of how LLMs work. What started as curiosity turned into a two-week rabbit hole of experiments and ended with a PoC that fully recovers the MTP PP overhead on GPU, above any expectation I had.<p>TL;DR: instead of processing the last layer MoE FFN for the entire ubatch tokens (usually 512-2048 tokens), this PoC processes only the output row (usually 1 token during prefill). The result is PP TPS is back to the same as with MTP disabled, in my bench that was an uplift of 20%, keeping most of MTP's benefits to TG TPS, even with a slight drop in draft acceptance rate in one of the benchs. More details in the branch readme: https://codeberg.org/rocoe/llama.cpp/src/branch/masked-nextn-skip-catchup/README.md<p>I worked with GLM 5.1 to write the code, Minimax M3 ran the tests and benchmarks on Modal and GLM 5.2 reviewed the work. GLM 5.1 is very smart and GLM 5.2 is capable of spotting deep side-effects in the code, no surprise it's at the top. Minimax M2.x were fast but lazy, M3 is a real leap and deserves more attention: it is smart, proactive, follows instructions and auto-corrects.<p>I'm not opening a PR to llama.cpp because this is AI-generated code, which goes against their contribution policy, which I support. If you know llama.cpp internals, you're invited to take a look at the PoC. I'll be happy to work alongside you to open a PR with a more mature implementation. This work is released under MIT, same as llama.cpp.<p>Happy to answer questions in the comments.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48673852">https://news.ycombinator.com/item?id=48673852</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 25 Jun 2026 14:21:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48673852</link><dc:creator>i_am_rocoe</dc:creator><comments>https://news.ycombinator.com/item?id=48673852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48673852</guid></item></channel></rss>