
Fearless SIMD v1.0 yayında: Rust kütüphanesi SIMD kodundan unsafe'i çıkarıyor
Linebender, taşınabilir SIMD ve donanım intrinsiklerine güvenli erişim sunan, ad-hoc unsafe kodu gerektirmeyen Rust kütüphanesi fearless_simd v1.0'ı yayımladı; sürüme üç yıllık güvenlik güncellemesi verilecek.
Linebender, fearless_simd v1.0'ı yayımladı: Rust için hazırlanan kütüphanenin amacı unsafe kodunu SIMD'den çıkarmak. SIMD, tek bir komutun aynı anda birden fazla değere uygulanmasını sağlayan tekniktir. Duyuru, projenin blogunda 22 Eylül 2026'da yayımlandı; ilk prototipten bu yana yaklaşık sekiz yıl geçti. Kütüphane üç kullanım düzeyini kapsıyor: otomatik vektörleştirme ve çok sürümleme, tam taşınabilir SIMD soyutlamaları ve donanım intrinsiklerine güvenli erişim.
Performans
Taşınabilir SIMD soyutlamalarına yöneltilen yaygın eleştiri performans kaybıdır. Farklı platformlarda uç durumlarda farklı davranan işlemler için, örneğin swizzle veya kayan noktalı maksimum, kütüphane iki varyant sunuyor: her yerde aynı sonucu veren hassas sürüm ve uç durumların beklenmediği yerlerde platforma bağlı sonuç döndüren hızlı sürüm.
Algoritmalar donanımın doğal vektör genişliğine göre yazılabiliyor; sabit vektör boyutları da destekleniyor. Ekip ayrıca Rust ve LLVM'e iyileştirmeler katkıladı. Taşınabilir işlemler yetmediğinde kod, ek yük olmadan platform intrinsiklerine inebiliyor.
Güvenlik
Yazarlara göre diğer SIMD soyutlamaları unsafe kodla dolu; anahtar sözcük araması binlerce blok çıkarıyor. fearless_simd'de ise ad-hoc unsafe gerekmiyor. Bunu iki küçük bileşen sağlıyor: derleyicideki target feature 1.1'den yararlanarak çoğu SIMD intrinsikini güvenle çağıran kernel! makrosu ve bytemuck ile zerocopy'den esinlenen güvenli transmute modülü; bu modül _mm_loadu_epi32 gibi yükleme ve kaydetme intrinsiklerini tek bir yeniden kullanılabilir sarmalayıcıyla değiştiriyor. Bu iki bağımsız yapı bellek açısından güvenliyse, kodun geri kalanı da tasarım gereği güvenlidir.
Ergonomi ve kararlılık
Rust'ta işlev çok sürümleme zahmetliydi: eski çözümler ya #[inline(always)] ek açıklamaları ve sonuçlarını bilmeyi gerektiriyordu ya da her çağrıya küçük işlevleri yavaşlatan bir ek yük bindiriyordu. Sürüm 1.0 ile birlikte, bu kararları otomatik veren #[simd] niteliğine sahip fearless_simd_macros v0.1 geliyor; elle yöntem de kullanılabilir durumda.
Proje, v1.0 ve sonraki tüm sürümler için üç yıllık güvenlik güncellemesi sözü veriyor; API'yi bozmadan f16 tipi ile SVE ve RISC-V vektör uzantılarına destek yolunu da görüyor.
Kullanım ve std::simd yolculuğu
Fearless SIMD bugün 30 crate'in doğrudan, binden fazla crate'in ise dolaylı bağımlılığı. Ekip std::simd'in kararlı hale gelmesini memnuniyetle karşılayacağını, ancak bunun crate'i gereksiz kılmayacağını savunuyor: standart kütüphane yalnızca içinde olması zorunlu parçaları uyguluyor, çok sürümlemeyi ve donanım genişliğindeki vektörleri ekosisteme bırakıyor. std::simd kararlı olursa proje ona taşınmayı, kendi kodunu azaltmayı ve nadir platformlara destek kazanmayı planlıyor.
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.