<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: isaacimagine</title><link>https://news.ycombinator.com/user?id=isaacimagine</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 09 Sep 2026 09:28:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=isaacimagine" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Druids: Batteries-included library to coordinate and deploy coding agents]]></title><description><![CDATA[
<p>Article URL: <a href="https://druids.dev/welcome">https://druids.dev/welcome</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47541138">https://news.ycombinator.com/item?id=47541138</a></p>
<p>Points: 8</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 27 Mar 2026 10:57:38 +0000</pubDate><link>https://druids.dev/welcome</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=47541138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47541138</guid></item><item><title><![CDATA[New comment by isaacimagine in "A shortage of tenors"]]></title><description><![CDATA[
<p>I read this as "a shortage of tensors" and was curious as to the latest chicanery.<p>But yeah tenors right -- matches my experience.</p>
]]></description><pubDate>Wed, 11 Feb 2026 18:51:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46979105</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=46979105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46979105</guid></item><item><title><![CDATA[Bad Apple but it's Lean Tactics]]></title><description><![CDATA[
<p>Article URL: <a href="https://unnamed.website/posts/bad-apple-lean-tactic/">https://unnamed.website/posts/bad-apple-lean-tactic/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44497376">https://news.ycombinator.com/item?id=44497376</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 08 Jul 2025 05:32:46 +0000</pubDate><link>https://unnamed.website/posts/bad-apple-lean-tactic/</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44497376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44497376</guid></item><item><title><![CDATA[New comment by isaacimagine in "Q-learning is not yet scalable"]]></title><description><![CDATA[
<p>DT's reward-to-go vs. QL's Bellman incl. discount, not choice of architecture for policy. You could also do DTs with RNNs (though own problems w/ memory).<p>Apologies if we're talking past one another.</p>
]]></description><pubDate>Sun, 15 Jun 2025 18:51:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44284217</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44284217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44284217</guid></item><item><title><![CDATA[New comment by isaacimagine in "Q-learning is not yet scalable"]]></title><description><![CDATA[
<p>TFP: <a href="https://arxiv.org/abs/2506.04168" rel="nofollow">https://arxiv.org/abs/2506.04168</a><p>The DT citation [10] is used on a single line, in a paragraph listing prior work, as an "and more". Another paper that uses DTs [53] is also cited in a similar way. The authors do not test or discuss DTs.<p>> hardness of the credit assignment ... data sparsity.<p>That is true, but not the point I'm making. "Bypassing credit assignment", in the context of long-horizon task modeling, is a statement about using attention to allocate long-horizon reward without horizon-reducing discount, not architecture choice.<p>To expand: if I have an environment with a key that unlocks a door thousands of steps later, Q-Learning may not propagate the reward signal from opening the door to the moment of picking up the key, because of the discount of future reward terms over a long horizon. A decision transformer, however, can attend to the moment of picking up the key while opening the door, which bypasses the problem of establishing this long-horizon causal connection.<p>(Of course, attention cannot assign reward if the moment the key was picked up is beyond the extent of the context window.)</p>
]]></description><pubDate>Sun, 15 Jun 2025 17:58:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44283844</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44283844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44283844</guid></item><item><title><![CDATA[New comment by isaacimagine in "Q-learning is not yet scalable"]]></title><description><![CDATA[
<p>No mention of Decision Transformers or Trajectory Transformers? Both are offline approaches that tend to do very well at long-horizon tasks, as they bypass the credit assignment problem by virtue of having an attention mechanism.<p>Most RL researchers consider these approaches not to be "real RL", as they can't assign credit outside the context window, and therefore can't learn infinite-horizon tasks. With 1m+ context windows, perhaps this is less of an issue in practice? Curious to hear thoughts.<p>DT: <a href="https://arxiv.org/abs/2106.01345" rel="nofollow">https://arxiv.org/abs/2106.01345</a><p>TT: <a href="https://arxiv.org/abs/2106.02039" rel="nofollow">https://arxiv.org/abs/2106.02039</a></p>
]]></description><pubDate>Sun, 15 Jun 2025 15:30:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44282807</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44282807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44282807</guid></item><item><title><![CDATA[New comment by isaacimagine in "Sguaba: Hard-to-misuse rigid body transforms for engineers"]]></title><description><![CDATA[
<p>The article is about using nalgebra to create an intuitive library for tranforming between Earth's various coordinate systems. Not "another Rust matrix library".</p>
]]></description><pubDate>Sat, 31 May 2025 22:49:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44147480</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44147480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44147480</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Very cool, thank you for sharing!</p>
]]></description><pubDate>Thu, 29 May 2025 11:06:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44124827</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44124827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44124827</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>z3 has good python bindings, which I've messed around with before. My manual solution uses 42 gates, I would be interested to see how close to being optimal it is. I didn't ask the compiler to vectorize anything, doing that explicitly might yield a better speedup.<p>Re:neurosymbolics, I'm sympathetic to wake-sleep program synthesis and that branch of research; in a draft of this blog post, I had an aside about the possibility of extracting circuits and reusing them, and another about the possibility of doing student-teacher training to replace stable subnets of standard e.g. dense relu networks with optimized DLGNs during training, to free up parameters for other things.</p>
]]></description><pubDate>Thu, 29 May 2025 03:31:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44122856</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44122856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44122856</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Thank you, I'm glad you enjoyed it!<p>Well, I'm not an expert. I think that this research direction is very cool. I think that, at the limit, for some (but not all!) applications, we'll be training over the raw instructions available to the hardware, or perhaps even the hardware itself. Maybe something as in this short story[0]:<p>> A descendant of AutoML-Zero, “HQU” starts with raw GPU primitives like matrix multiplication, and it directly outputs binary blobs. These blobs are then executed in a wide family of simulated games, each randomized, and the HQU outer loop evolved to increase reward.<p>I also think that different applications will require different architectures and tools, much like how you don't write systems software in Lua, nor script games mods with Zsh. It's fun to speculate, but who knows.<p>[0]: <a href="https://gwern.net/fiction/clippy" rel="nofollow">https://gwern.net/fiction/clippy</a></p>
]]></description><pubDate>Thu, 29 May 2025 01:03:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44122073</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44122073</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44122073</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>+10 respect, thank you <3</p>
]]></description><pubDate>Thu, 29 May 2025 00:56:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44122037</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44122037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44122037</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>There are 163 lines of C. Of them, with -O3, 104 lines are present in the assembly output. So the C compiler is able to eliminate an additional ~36.2% of the instructions. It doesn't do anything fancy, like autovectorization.<p>I profiled just now:<p><pre><code>          | instrs (aarch64) | time 100k (s) | conway samples (%) | 
    | -O0 |              606 |        19.10s |             78.50% |
    | -O3 |              135 |          3.45 |             90.52% | 
</code></pre>
The 3.45s surprises me, because it's faster than the 4.09s I measured earlier. Maybe I had a P core vs an E core. For -O0, the compiler is emitting machine code like:<p><pre><code>    0000000100002d6c ldr x8, [sp, #0x4a0]
    0000000100002d70 ldr x9, [sp, #0x488]
    0000000100002d74 orn x8, x8, x9
    0000000100002d78 str x8, [sp, #0x470]
</code></pre>
Which is comically bad. If I try with e.g. -Og, I get the same disassembly as -O3. Even -01 gives me the same disassembly as -O3. The assembly (-0g, -01, -03) looks like a pretty direct translation of the C. Better, but also nothing crazy (e.g. no autovectorization):<p><pre><code>    0000000100003744 orr x3, x3, x10
    0000000100003748 orn x1, x1, x9
    000000010000374c and x1, x3, x1
    0000000100003750 orr x3, x8, x17
</code></pre>
Looking more closely, there's actually surprisingly little register spilling.<p>I think the real question you're asking is, as I wrote:<p>> If we assume instruction latency is 1 cycle, we should expect 2,590 fps. But we measure a number nearly 10× higher! What gives?<p>Part of this is due to counting the instructions in the dissassembly wrong. In the blogpost I used 349 instructions, going off Godbolt, but in reality it's 135. If I redo the calculations with this new numbers, I get 2.11 instructions per bit, 0.553 million instrs per step, dividing out 3.70 gcycles/s gives 6,690 fps. Which is better than 2,590 fps, but still 3.6x slower than 24,400. But I think 3.6x is a factor you can chalk up to instruction-level parallelism,.<p>Hope that answers your questions. Love your writing Gwern.</p>
]]></description><pubDate>Thu, 29 May 2025 00:53:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44122020</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44122020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44122020</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Glad you enjoyed it, and thanks for the tip!</p>
]]></description><pubDate>Thu, 29 May 2025 00:19:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44121804</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44121804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44121804</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Thank you! Good question, Here are the NN stats, before lowering to C:<p><pre><code>    total gates        | 2303 | 100.0%
    -------------------+------+-------
    passthrough        | 2134 |  92.7%
    gates w/ no effect | 1476 |  64.1%
</code></pre>
Note the rows aren't mutually exclusive.</p>
]]></description><pubDate>Wed, 28 May 2025 20:31:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44120383</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44120383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44120383</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Parameters and options, got it. I try to keep all configuration declarative and make building and running as deterministic as possible. Then I can commit whenever I do something interesting, that I can just checkout to revisit.</p>
]]></description><pubDate>Wed, 28 May 2025 20:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44120132</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44120132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44120132</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Yes and no. I wasn't expecting to be able to reproduce the work, so I'm just content that it works. I was very surprised by how much hyperparameter finagling I had to do to get the DLGN converging; the tiny relu network I trained at the beginning, in comparison, converged with dead-simple SGD in a third of the epochs.<p>The speedup was surprising in the sense that the bit-level parallelism fell out naturally: that 64× speedup alone was unexpected and pretty sweet. There's likely still a lot of speed left on the table. I just did the bare minimum to get the C code working: it's single-threaded, there's no vectorization, lots of register spilling, etc. Imagine the speedup you'd get running the circuit on e.g. an FPGA.<p>But no, it was not surprising in the sense that yeah, multiplying billions of floats is going to be much slower than a handful of parallel bitwise ops. Physics is physics, doesn't matter how good your optimizer is.</p>
]]></description><pubDate>Wed, 28 May 2025 19:47:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44119988</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44119988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44119988</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Agree, it's much better to write up a journal at times when your colleagues would be <a href="https://xkcd.com/303" rel="nofollow">https://xkcd.com/303</a></p>
]]></description><pubDate>Wed, 28 May 2025 19:35:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44119864</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44119864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44119864</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Chaotic energy haha, I like it. Thanks for the tips re: keeping a journal, I will do this more in the future. I usually keep development notes, though normally in markdown files scattered across the codebase or in comments, never by date in the README. In the future, I might make JOURNAL.md a standard practice in my projects? re:w&b, I used w&b when it first came out and I liked it but I'm sure it's come a <i>lot</i> further in the time since then. I will have to take a look!<p>Also lol "pretentious perfectionist" I'm glad to finally have some words to describe my design aesthetic. I like crisp fonts, what can I say.</p>
]]></description><pubDate>Wed, 28 May 2025 19:33:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44119840</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44119840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44119840</guid></item><item><title><![CDATA[New comment by isaacimagine in "Compiling a neural net to C for a speedup"]]></title><description><![CDATA[
<p>Author here. Any questions, ask away.</p>
]]></description><pubDate>Wed, 28 May 2025 18:42:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44119241</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44119241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44119241</guid></item><item><title><![CDATA[New comment by isaacimagine in "AniSora: Open-source anime video generation model"]]></title><description><![CDATA[
<p><a href="https://dihulvhqvmoxyhkxovko.supabase.co/storage/v1/object/public/husbando-land/app_media/videos/f874b707-bcce-482d-9660-40b171c512ae.mp4" rel="nofollow">https://dihulvhqvmoxyhkxovko.supabase.co/storage/v1/object/p...</a></p>
]]></description><pubDate>Sun, 18 May 2025 12:10:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44020743</link><dc:creator>isaacimagine</dc:creator><comments>https://news.ycombinator.com/item?id=44020743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44020743</guid></item></channel></rss>