xsimd: from xtensor to firefox
summary
xsimd provides a portable C++ SIMD abstraction that compiles to real ISA intrinsics (Intel, ARM, RISC‑V, WebAssembly) with both static and dynamic dispatch across ISAs. The codebase is a 25,000‑line header‑only library; a Firefox image/translation kernel moves from hand assembly to xsimd and produces the same assembly output, and adding ARM neon support takes nine lines of instantiation. Experiments use clang on Godbolt and downstream adopters include xtensor, Pythran, Apache Arrow and Firefox.
AI-written summary · about
chapters (17)
- 0:00Small data vectorization intro
- 1:07Vector instructions on CPUs
- 4:44Intrinsics to portable SIMD
- 7:57Godbolt code generation
- 10:25What is xsimd
- 13:40SIMD libraries overview
- 14:42Generic SIMD function in xsimd
- 16:48New instruction sets support
- 17:51Static and dynamic dispatch
- 18:15Where xsimd is used
- 20:07Firefox code migration
- 22:35Firefox performance gains
- 23:59Gemmlowp matrix multiply
- 25:45Acknowledgments and resources
- 26:05Q&A: Dynamic dispatch limits
- 29:00Q&A: Accuracy guarantees
- 31:13Q&A: BLAS library interest
related talks
01h 06mSIMD in C++20: eve of a new era
52mAdvanced SIMD Algorithms in Pictures
01h 08mAn implementer's view of Boost.SIMD
13mBaby Demuxed's First Assembly Language Function
29mNew Adventures for WASM
01h 00mJust-in-Time Compilation
36mPractical WebAssembly
41mCreating High-Performance Web Apps with WebAssembly
