Pinned Tweet
UchenML links:
Browser demo - AlphaZero-style Dots: uchenml.tech/demos/dots
Overview: uchenml.tech/introducing-uch…
Using SIMD: uchenml.tech/simd-softmax-go…
Making inference fast: uchenml.tech/uchenml-optimiz…
Finally. Stage 0. Connected Pico2 to my favorite toy - Rokenbok. The next step is making the computer control the toy. Then time for AI - I want to be able to tell this toy what to do!
First click selects a vehicle. It is possible to have up to 8 vehicles, so excited to play...
Me, telling Claude that its firmware modifications were fine and the issues where caused by me messing up the wiring.
My kids said I got a really expensive Magic card yesterday - “The Theorist, Jace Beleren” They can’t understand why I don’t care about it and just give it to them… Oh, to be young again…
Valve is the worst company in gaming. In a world that has EA.
They live off rent - 30% of every sale, paid by the people who actually make the games we love.
They don’t make games. They only make hardware as a hedge against Microsoft. Everything is about defending the monopoly that collects the rent.
The Airbnb/eBay of gaming.
Tim's making a really important point here and I think people fundamentally misunderstand it.
Let's paint a scenario. You are an indie developer and you want to make a game.
Traditional game development will take you 1 year and cost you $200,000 in outsourcing costs to buy art, animation, and additional programming resources.
AI assisted game development will take you 3 months and cost you $50,000 in credits + some additional resources.
In a good scenario your game could make $200,000 and break even, but in many scenarios you mortgage your house and no one sees your game and you are out your savings.
Now, with the anti-AI mania, Valve is forcing real economic harm on you because you get the equivalent of hate mobs at your door for your choice of tooling.
Your economic viability is harmed because Valve chooses to put a label on you that generates negative attention. It makes your economics worse.
Anti-AI proponents will point out that this proves their hate campaigns work. The appeal is not to them, because they are morons, but to developers to stand up to Valve and say remove these labels so that we can have livelihoods. And Valve makes money of you either way.
Stand up for your rights, devs!
Readers added context they thought people might want to know
Valve has developed numerous games including Half-Life, Portal, Counter-Strike 2, Dota 2 and Team Fortress 2, contrary to the claim.
valvesoftware.com/about
en.wikipedia.org/wiki/List_of_V…
steam.fandom.com/wiki/List_of_g…
C++ is very clear and unambiguous. Nothing to be confused about.
T& - lvalue reference
T&& - rvalue reference
T&& - forwarding reference
T&& - universal reference (in some books; the standard doesn’t call it that)
See, easy. Worst case if you pick wrong is a silent copy, a heap allocation, maybe a lock. Nothing a debugger can’t fix.
Went to my first mtg draft in 20 years or so. I’m pretty sure I’m the oldest one at the table. My son, 14, is the youngest.
Watched new Factorio trailer. My hands kept twitching to press Alt. I know it's just a trailer - but I need to see what's inside those chests and trains.
youtu.be/oF1zCD7NwNY?si=sn7R…
I'd be lying if I said Bazel does not have its faults. Careful with your git work trees - Bazel creates a cache for each!
If this isn't a technological marvel, I don't know what is. I decided to confirm that school is closed tomorrow so I just asked Siri using my voice. I had to follow up to confirm it actually did web search - because the response was too quick.
Bane of my existence: no fused multiply-add on some SIMD targets. SSE/AVX pre-FMA3 and ARMv7 NEON vmla round a*b+c twice; ARM64 FMLA and x86 FMA3 round once. WASM SIMD128 has no FMA at all.
How am I supposed to do stable distributed training across architectures?
There’s a hidden dagger in almost every PC game from 1995-2005 that murders ARM processors.
It’s kind of an accident, and it all has to do with floating points.
x87 was Intel’s floating point extension to x86. I won’t get into all the historical drama, but Intel decided that all internal float math would be at 80-bit extended precision to reduce rounding errors.
Of course, today no one in their right mind uses 80-bit; standard 64-bit doubles are just too convenient. Modern ARM64 doesn’t have any 80-bit hardware!
This creates a nasty problem for emulation. How much x87 arithmetic can you replace with say, native ARM64 floating point (losing precision!) without breaking behavior?
It’s not so simple; dropping 16-bits of precision can cause funny physics glitches and such. But boy, if you need all 80-bits, the software fallback REALLY stinks.
With all the decomp/recomp hype lately, porting OG Xbox and PC games to mobile / ARM devices is extra tricky. Not impossible, but you’d be amazed at how much x87 code is in old games!
Another example of things that I believe are only possible in C++. This is a hand-written inner matmul loop.
It compiles 4x (fp16, fp32, for matrices with size matching SIMD width and not). It targets WASM SIMD, Neon, SSE2/AVX/AVX2/AVX512.
There's no branching in the inner loop (e.g. to check for tail). UchenLoad* is template magic that does load for fp32 and load/promote for fp16.
"C++ is so complex".
This code mmaps a file and checks that all went well. Payload is the user data type.
1. map file will get unmmaped when it leaves the visibility.
2. map file is movable, can be put into a hash map, vector, etc.
3. Most compilers will highlight if the payload reference outlives the map file (power of "[[clang::lifetimebound]]" and such)
I knew BioWare was toast when they released Anthem. I was so hyped to play “Destiny but you’re an Iron Man, story from Mass Effect developers” - only to see something so vanilla…






















