
Rust'ta SIMD'nin 2026'daki durumu: kütüphaneler olgunlaştı, intrinsics hâlâ acıtıyor
Sergey Davidoff'un Rust'ta SIMD desteğine ilişkin yıllık incelemesi, taşınabilir kütüphanelerin 1.0'a yaklaştığını ve x86'da çok sürümlemenin artık sorun olmadığını, buna karşılık trigonometri ile intrinsics'in en zayıf halkalar olduğunu gösteriyor.
Sergey Davidoff, Rust'ta SIMD desteğine ilişkin yıllık incelemesini 25 Eylül 2026'da yayımladı. SIMD, yani tek komutla çoklu veri, işlemcinin tek bir aritmetik işlemi bir sayı paketinin tamamına uygulamasını sağlar: yeni x86 yongalarında bu vektörler 512 bite kadar çıkıyor ve teoride f64 için 8 kata, u8 için 64 kata varan hızlanma anlamına geliyor.
Yazar, geçen yılki incelemenin ardından Fearless SIMD projesinin bakımcılarından biri oldu; çıkar çatışmasını önlemek için makalenin taslağını std::simd, wide, pulp ve macerator yazarlarına inceletti, editör kontrolünü ise kendisinde tuttu. Vardığı sonuç şu: destek büyük ölçüde olgunlaştı ve Rust, bellek güvenliği zorunlu bir gereklilik olmadığında bile SIMD kodu için çekici hale geldi.
Anket ne buldu
x86_64'te derleyici varsayılan olarak yalnızca SSE2'yi kullanabilir, dolayısıyla daha yeni her şey çalışma zamanında seçilmek zorunda. AVX2 2013'te çıktı, ancak onsuz son Intel işlemcisi 2021'de piyasaya sürüldü ve Firefox donanım anketine göre 2026'da hâlâ x86 sistemlerin %15'i AVX2'den yoksun. Standart çözüm çok sürümleme: aynı fonksiyonu birkaç SIMD seviyesi için derleyip çalışma zamanında işlemci özelliklerini kontrol ederek uygun olanı seçmek. multiversion crate'i bunu tek bir öznitelikle yapıyor, ancak çok küçük fonksiyonlara ek yük getiriyor. ARM, 64 bit çekirdeklerde NEON'u zorunlu kıldığı için sorun neredeyse yalnızca x86'ya özgü.
Taşınabilir SIMD kütüphaneleri
std::simd doğrudan LLVM üzerinde çalışır ve LLVM'in desteklediği her hedefi kapsar, fakat yalnızca nightly'de kullanılabilir. LLVM'de karşılık gelen bir işlem yoksa kod sessizce skaler matematiğe düşüyor; yazar bunu en büyük günah olarak niteliyor. Fearless SIMD, güvenlik politikasıyla birlikte 1.0 sürümünü yayımladı: rakiplerine göre çok daha az unsafe kod barındırıyor ve çok sürümlemeyi küçücük fonksiyonlarda bile çalıştırıyor. wide trigonometri dahil pek çok işlemi kapsıyor, ancak çok sürümlemeyle birleştirilemiyor. pulp, doğrusal cebir kütüphanesi faer'i besliyor; macerator ise burn'ün CPU arka ucu.
Intrinsics ve donanım
Rust 1.87'den itibaren platform intrinsics'leri, archmage crate'indekiler gibi özellik belirteçleri ve target feature'lar üzerinden güvenle çağrılabiliyor. Buna rağmen intrinsics en zayıf halka olmayı sürdürüyor: derleyici onları sıklıkla istenen komutlara indiremiyor ve yazar, bir "optimizasyonun" istediği 512 bitlik shuffle'ı yavaşlattığı vakayı belgeliyor; bu hata kendi bildiriminden sonra LLVM 23'te düzeltildi. Donanım tarafında AVX-512'li ilk Intel işlemcileri tüm yonganın frekansını düşürüyordu; bu davranış ancak 2019'da Ice Lake ile düzeltildi, Steam anketine göre sistemlerin %23,9'unda AVX-512 var. Rust ekosistemindeki en büyük eksik ise trigonometri.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.