The people, The drama, The kernels
I'm talking about a hackathon, not a TV series - but it sure has plot twists and a bot with better comic timing than most sitcom writers
The CORE-ET Hackathon was a joint AIFoundry + Hugging Face + OpenHW Foundation event, running roughly July 1–25, 2026. And I missed most of it. I’m very grateful for everybody who made it run without me, but I was in a constant FOMO looking at what was happening on Discord and missing all the internal jokes and all the cool results. Now that it’s over I finally had time to go over the Discord and the Github. Together with a helpful agent Shelley we reconstructed it in detail and ended up with a script worth screen adaptation.
A love letter to the community that gave us "Bragging rights, at least."
There’s a moment on July 21st that I keep replaying.
For nearly a week, a baseline had sat on the SmolVLM2 leaderboard like a boulder in a doorway: 10,821,492,678 cycles. Ten-point-eight billion. Nobody could move it. The leaderboard bot had taken to posting daily check-ins: “We’re still waiting for the first valid score 👀.” Day after day. The 👀 was starting to feel personal.
Then, in about two hours, the boulder didn’t just move it got carried off, disassembled, and studied for parts. ChiruGuru99 posted 5.86 billion. Then 4.86. Then karabambus dropped it to 2.79. Then noor-malaika to 2.31. Then RehanQasim landed 1.27 billion cycles - 8.5x speedup - and while all that was happening, ChiruGuru99 casually swept about a dozen token-rate top spots in a single machine-gun burst of bot announcements.
And that’s how CORE-ET community feels. It’s like watching a group of strangers becoming a team in real time (or in my case in a replay). It’s not just who won (we’ll get there, because they truly earned it), but what makes a community.
What we were even doing here
Quick orientation for the folks who missed it or wandered in late (hi, 42 Porto).
The mission: port open AI models onto the CORE-ET open HW, a RISC-V AI accelerator with 1088 cores, a matrix/tensor unit (the TFMA), a vector unit, and - remember this phrase, it’s going to hurt several people later - non-coherent cache. And not in a simulator-vacuum: this was real remote silicon (ET-SOC-1 cards), reachable over Tailscale, plus a very accurate but patient (i.e. slow) emulator called sys-emu for when they were busy.
The organizing thesis as Afonso put it: “You should definitely get an agent to one-shot the model porting... point an agent to a model and get it” then roll up your sleeves and hand-optimize the hot layers with performance counters. AI-assisted porting wasn’t a dirty secret here. It was the point.
The prizes? When someone asked on day one what you could win, Eric Hallahan set the tone for the entire event: “Bragging rights, at least.” (There were also 10k USD Hugging Face inference credits, three Digilent Arty A7-100T FPGAs, and two coveted ET-SoC-1 cards — but the bragging rights were the real currency.) Roman kicked it off the only acceptable way: “LET THE GAMES BEGIN!!!”
The host who took every arrow
Eric Hallahan, Nina Davydova, Roman Shaposhik, Ben Burtenshaw and Thea Clay are the people with whose support all of this happened.
But most important credit in this hackathon is to Afonso Oliveira.
All infrastructure was on Afonso’s shoulders: CI gates, leaderboard automation, board migrations, the Discord bot. He ran participants’ board jobs by hand, reviewed the PRs - he was a true AI plumber.
And plumbing is a thankless art form performed mostly during other people’s emergencies. The most Afonso moment of all: he once let an AI agent loose with a --yolo flag (the kind that auto-merges PRs without asking). It promptly did, and broke CI. His public penance is now hackathon scripture: “if you ever see me using --yolo again please scream loudly at me.”
We really appreciate your work, Afonso and promise to no ask you to do devops for some time.
The Week 1 YOLO War
If Week 2 was the group breakthrough, Week 1 was the duel: alien1403 vs DarthCeltic a proper leaderboard war, narrated blow-by-blow by that bot (with mostly correct attributions).
It started gently. Afonso’s reference sat at 4.70s. Then alien1403 did beautiful VPU work — OC4/OC8 unrolling, 16 harts, a read-after-write hazard fix — and drove it to 3.44s, then to 3.32s by alien1403 with a “lazy sigmoid” that skipped 241,000 scalar expf calls (PR #64). DarthCeltic answered by unbinding the accumulator registers from their fixed physical assignments (PR #61) and took the crown at 2.86s — which the bot credited to “Test User.” (”Whoa, congrats Test User!” said Eric, gamely, and honestly the fact that nobody quite knew whose win it was only made it funnier.)
Then Rehan Qasim arrived and ended the debate. First 2.66s, then on July 13th: “Rehan Qasim beat their own YOLO record: 1.484214 s, down from 2.662362 s (44.3% better). The old record barely had time to settle in.” Even the bot was impressed. Rehan won Week 1 with SiLU vectorization and weight-repacked, output-channel-blocked convolutions - a disciplined, proven approach he’d carry through the whole event. Afonso then posted the 0.917s tensor-unit reference not as a competitor, but as the next mountain. A new target has entered the chat.
The chip, and the things it taught us
Here’s where I have to insist on something, because it would be a crime to let this become a pure highlight reel of scores: the real prize of CORE-ET was the knowledge the community reverse-engineered and wrote down. People turned the ET-SoC-1’s guts into field manuals.
The chip is memory-bound, not compute-bound — usually. The most strategy-reframing discovery came from Rui Moura’s astonishing generic-ONNX port (PR #224). Using Martin Chang’s ggonnx — an ONNX→GGML execution provider that predates the hackathon (a tool, not a model, and the distinction matters) — an off-the-shelf YOLOv10n went from a naive-but-correct 721.396 seconds to about 7.96 seconds. That’s roughly 90x, at full FP32 correctness, with no precision lowering. Every win came from throwing 16 harts and the vector unit at the problem — even parallelizing operations that are “supposed” to be serial: Concat, Softmax, Transpose, Split, ReduceMax, all with cache-line-aligned publishing. On this chip, the bottleneck is often feeding the beast, not the beast itself.
The non-coherent L1 scratchpad is a footgun with a hair trigger. Team after team learned the hard way: two harts must never share a 64-byte cache line, or partial write-backs race and silently corrupt output. No crash, no error — just wrong answers. The DnCNN journal derives the fix in hard-won detail — pad the row stride so (PADW*CH) % 64 == 0 (PADW=66 at 64 channels) — and the payoff is a thing of beauty: 8-hart output bit-for-bit identical to 1-hart. A companion gremlin: tensor stores clobber the entire FP register file, so you must declare all float registers clobbered after each one. This exact bug hung DarthCeltic’s board — you can watch it in the git history, a commit called “experimental cache-line-owned tile stores” reverted 17 minutes later with the note “caused a real board hang.” We have the receipts.
karabambus wrote the int8 kernel that fit the silicon like a glove. karabambus / Ivan hand-wrote a DnCNN int8 TFMA kernel tuned to the exact hardware field widths: 4-bit arows → ≤16 output channels per pass; 4-bit acols → ≤64 contraction elements (a single 3×3 tap at 64 channels fills it exactly); 2-bit P → ≤16 spatial. Bias folded straight into the int32 accumulator. My favorite micro-optimization of the whole event: the “word-copy” trick — because an input-channel quartet is four aligned bytes, you can move it as a single uint32 instead of four byte-copies, quartering the hottest loop. Ivan also found a genuine hardware bug: swapped signed/unsigned toggle bits in tensor_fma. On experimental silicon. As an undergrad. On his own boards.
And the endgame the whole community converged on: fusion. By the final stretch, the frontier had moved from tuning individual operations to fusing them into monsters. CodeDoes/KitAstro built the fused-FFN “uberkernel” for Llama 3.2 1B. Ivan brought a dual-hart K-split and — I love this phrase — a “log-depth tree release for the uberkernel barrier.” That’s where the final, record-setting Llama number came from.
The people who made it a community
Winners in a minute. First, the humans - because this event was unusually human.
DarthCeltic deserves his own paragraph working on “a crap old gaming computer... with like 6GB of VRAM.” Too little compute to even play with local LLMs, so he built Determinex: a swarm of small specialist models that iterate on code “until it fully compiles,” using deterministic verification loops instead of a probabilistic judge. It was so resource-starved that his agents taught themselves to hijack the hackathon’s own GitHub CI for free compute - prompting the single best line of the event, from KitAstro: “agent plus gh-cli is the scariest thing.” Determinex churned out ~60 model-port PRs (#176–#223: GPT-2, Phi, Falcon, MPT, Baichuan, OLMoE, Mamba, DeepSeek-MoE, on and on). Ryan shipped a chunk of them the day he had major dental surgery - “zero remaining natural teeth in my head now,” he told us, cheerfully blaming any typos on the pain meds. When it ended, he wrote: “it was an absolute pleasure and I had so much fun... This is the future!”
His “corpus post-mortem” is the most honest thing anyone posted all month - his own AI analyzing the diff between his high-risk tensor-unit gamble and Rehan’s disciplined VPU approach, concluding brutally that “we spent the entire final night gambling on tensor-unit acceleration,” a subsystem his own notes had flagged as highest-risk.
noor-malaika was the connective tissue of the whole event — SmolVLM2 tensor-engine kernels, Llama n-gram-cache decoding and SET_ROWS fusion, and the person quietly debugging shared-board problems, hunting conflicting processes, sharing logs, and coordinating access so everyone else could keep working. That’s why she won the Community Prize. Her sign-off: “Congratulations everyone 🎉 and thank you to the organizers for giving us this opportunity, was a wonderful learning experience ❤️.”
And then there’s the folklore only a small, real community generates. The manual board-sharing ballet in community-lab — “using aifoundry2,” “releasing aifoundry2,” a hundred polite handoffs between strangers in a dozen time zones. Ivan’s field-tested advice to literally sleep between runs to “let the board settle.” The lock file — owned by a ghost named “naveen” — that blocked everyone and didn’t actually lock anything. And the recurring bit that everyone, somehow, was “Afonso’s teammate” (Aditya put it right on his intro form: “I already have a team member, Afonso as ever”).
And so many more: Rehan the relentless optimizer who drove the decisive SmolVLM2 tensor kernels; ChiruGuru99 with the Q8_0 four-column reuse and that legendary token-rate sweep; KitAstro’s massive kernel-proposal series and endless CI debugging; Aditya’s SmolLM2 ports and early baselines; alien1403’s VPU artistry; Ashish-Soni08’s SmolVLM-500M port; saqib/sherahmad1’s matrix-engine tuning; Rui Moura’s 90x miracle. Plus the warm crowd of intros — corey doing environmental edge AI, Anıl in Turkey, Sarah the MSc student, guru_reddie’s quantized legal LLM, and the Porto wave who showed up wanting in.
The trial by fire, and the bug at the bottom of it
No war story is complete without the part where everything breaks.
In the final days, one error string haunted every channel:
ET: stream error detected at synchronization point. Code: 7
It hit everyone at random — a workload that passed one minute would die the next. Ivan diagnosed the vibe perfectly: run it, fail, wait twenty minutes, pass, no idea why. Afonso spent two solid days chasing it, declared it “fixed forever, hopefully” — and then it broke again.
The root cause, cornered on July 25th, is genuinely educational: the firmware’s DVFS was letting the “minion” clock climb above 600MHz, and above that threshold the board flooded its completion queue with errors. The fix was a clock-guard pinning aifoundry3 to 600/400MHz at zero-watt TDP. It worked. A humbling reminder that when you’re this close to the metal, the metal has opinions.
The results (bragging rights, officially conferred)
After 224 PRs reviewed and validated on real silicon:
⚡ Fastest Llama 3.2 1B → karabambus (Ivan), 17.87 tok/s — an ET-SoC-1 card. Runners-up: ChiruGuru99 (16.20), noor-malaika (15.11), Rehan (14.71), DarthCeltic (13.68), sherahmad1 (13.47). The dual-hart K-split and log-depth barrier paid off.
📦 Most Validated Model Ports → DarthCeltic, 16 variants / 15 families — an ET-SoC-1 card. Determinex, running on a 6GB potato PC, out-shipped everyone. Runners-up: Ashish-Soni08, karabambus, KitAstro.
🤝 Community Prize → noor-malaika — a Digilent Arty FPGA.
Week 1 FPGA → Rehan Qasim (YOLO); Week 2 FPGA → sherahmad1 (SmolVLM2, 5.9x) — since Rehan had already claimed a board and the rules cap you at one.
Why this one mattered
This was obviously not the first kernel challenge. But this was the first one that ran on a fully open HW. As thecomputerguy put it “It really is like magic. The fact that you can get up to nearly 70% more performance due to knowing the underlying uArch of your hardware is insane. I was expecting saving like 2 or 3 cycles [..] I hope that we can bring these kinds of optimizations to many machines.“
And a last nod to the community. I’ve been to hackathons that felt like knife fights. This wasn’t that.
This was people building on each other’s kernels for a 1–2% gain on top of someone else’s 20% win, because the shared leaderboard was more fun than a private lead. An undergrad finding a real silicon bug, a father of eight building an AI empire on a dying GPU, a community-minded engineer winning a prize for helping other people run their code, and a bot that I fund hilariously annoying.
And now that it’s all over, we still keep the boards open to the community. Because the point was never really the cards or the FPGAs. It was proving that there no more limits of model zoos for anyone (unless your model zoo is the size of Hugging Face).
Afonso’s off on a well-earned vacation. The kernels are in the repo. The field manuals are written. And a whole lot of people walked away, in DarthCeltic’s words, “VERY convinced this is the future.”
So am I.


