flâneur — a map of the web's best reading

Designing a SIMD Algorithm from Scratch · mcyoung

mcyoung.xyz · 20,642 words · saved by 1 readers

Another explainer on a fun, esoteric topic: optimizing code with SIMD (single instruction multiple data, also sometimes called vectorization). Designing a good, fast, portable SIMD algorithm is not a simple matter and requires thinking a little bit like a circuit designer. Here’s the mandatory performance benchmark graph to catch your eye. “SIMD” often gets thrown around as a buzzword by performance and HPC (high performance computing) nerds, but I don’t think it’s a topic that has very friendly introductions out there, for a lot of reasons. This post is mostly about vb64 (which stands for vector base64), a base64 codec I wrote to see for myself if Rust’s std::simd library is any good, but it’s also an excuse to talk about SIMD in general. What is SIMD, anyways? Let’s dive in. If you want to skip straight to the writeup on vb64, click here. Unfortunately, computers exist in the real world[citation-needed], and are bound by the laws of nature. SIMD has relatively little to do with theor

Designing a SIMD Algorithm from Scratch · mcyoung mcyoung I'm Sunny. I write about compilers, performance, and silly computer things. I also draw Pokémon. © 2026 Sunny Young de la Sota CC BY-SA • Site Analytics 2023-11-27 • 10348 words • 114 minutes • #rust • #optimization • #bit-tricks Designing a SIMD Algorithm from Scratch Another explainer on a fun, esoteric topic: optimizing code with SIMD (single instruction multiple data, also sometimes called vectorization ). Designing a good, fast, portable SIMD algorithm is not a simple matter and requires thinking a little bit like a circuit de

Explore this link on the map →

related reading