
2024-09-19
Highway: portable
vector intrinsics
Jan Wassenberg
Software engineer

01
Agenda
02
03
04
What, why, where, how
Porting code
Runtime dispatch
Design rationale
05
Users

What, why, where,
how
01

What is SIMD?
Single / same
Instruction / operation on
Multiple
Data (lanes)
16-32 fused multiply-add / cycle per core!
3 2 1 0

"SIMD feels like magic!"
[Googler who saw a 10x speedup in a day's work]
● Widely available
○ x86, ARM, RISC-V, MIPS, ...
● Minimal incidental complexity
○ Same toolchain, memory space,
debugger
○ No PCI-e latency
● Vendor-independent
Why SIMD?
3 2 1 0