État du SIMD en Rust en 2026

Original : The state of SIMD in Rust in 2026

Pourquoi c'est important

Le SIMD reste un levier de performance majeur pour Rust dans les charges de calcul intensif.

Sergey Davidoff, désormais mainteneur de la bibliothèque Fearless SIMD, publie en septembre 2026 un bilan approfondi de l'écosystème SIMD en Rust, couvrant la vectorisation automatique, les abstractions portables et les intrinsèques spécifiques aux architectures x86, ARM et WebAssembly.

Dans un article de 31 minutes de lecture publié le 25 septembre 2026, Sergey « Shnatsel » Davidoff dresse un état des lieux détaillé du SIMD (Single Instruction, Multiple Data) en Rust. Après son enquête de 2025, il est devenu mainteneur de Fearless SIMD, la bibliothèque qu'il jugeait la plus prometteuse. Pour éviter tout conflit d'intérêt, il a invité les auteurs de std::simd, wide, pulp et macerator à relire son texte avant publication.

Le SIMD permet de traiter un lot de données en une seule instruction : sur des puces x86 récentes, les vecteurs atteignent 512 bits, ce qui représente théoriquement un gain de 8× sur des f64 et de 64× sur des u8. En pratique, le résultat varie selon les cas.

Principale difficulté sur x86 : la fragmentation des extensions (SSE2, AVX, AVX2, AVX-512). Par défaut, le compilateur se limite à SSE2. Deux solutions existent : cibler explicitement une architecture récente via RUSTFLAGS='-C target-cpu=x86-64-v3', ou recourir au « function multiversioning » pour générer plusieurs versions d'une même fonction et choisir à l'exécution. ARM 64 bits impose NEON en standard, WebAssembly impose quant à lui de distribuer deux binaires distincts.

Source

shnatsel.github.io — Lire l'original →