Matt Keeter
mastodon 4.7.3Weird CAD and graphics research; embedded software at @oxidecomputer@hachyderm.io
tired: "Just trust the compiler, it's smarter than you are"
wired: "You are going to generate a fucking jump table, so help me god"
(this has made my GPU bytecode interpreter 1.5× faster)
Got my first PR to a rust-lang repo merged 🎉
It's a weird feeling to get an email which
- asks questions about one of your open-source projects
- references specific files in the repo
- those files are definitely not in the project
Are you from a parallel universe? Do they have any cool Fanta or Kit-Kat flavors over there?
It's best practice for Rust crate docs to start with at least one research paper citation, which must be read before continuing.
My "This is clearly a legitimate WebGPU rendering crate, not malware" t-shirt is raising questions—
I've just announced my new (blazing-fast) kernel for implicit surfaces: https://mattkeeter.com/projects/fidget
It's got something for everyone: Cool graphs! Multithreaded WebAssembly! Terrible mesh topology! JIT compilers!
After three years, I'm excited to finally show it off to a wider audience 😎
If this whole "computers" thing doesn't work out, I've got a bright future in aftermarket crib accessories!
bytecode serialization: 0.3 ms
GPU compute kernel: 8 ms
waiting for the WebGPU polling thread: 100 ms
GPU-to-CPU buffer copy: 2ms
someone help me budget this, my framerate is dying
https://bugzilla.mozilla.org/show_bug.cgi?id=1870699
gonna go see the new adaptation of The Odyssey that everyone is talking about:
hey chat is it good when a house on my block is held together by 2x4s?
@whitequark@social.treehouse.systems I got nerd-sniped on bluesky to look at the actual wasm
The tailcall implementation does use return_branch_indirect as expected: https://gist.github.com/mkeeter/66df08eaf580f293c5f950baa43703b5
The traditional bytecode VM, on the user hand, uses br_table, at the end of a 250-deep stack of blocks (!):
https://gist.github.com/mkeeter/66df08eaf580f293c5f950baa43703b5
It's kinda incredible: each opcode is its own block, and they each end with a break N instruction to break back out to the top level.
between Porchfest and opening day for the Union Square Farmer's Market, it's a big Saturday for aging millenials in Somerville
if only there was a high-throughput way to convert a large memory-unsafe codebase into a memory-safe language
https://github.com/v12-security/pocs/tree/main/fragnesia-5db89c99566fc