Go platformdan bağımsız SIMD desteğini duyurdu
Öne çıkanlar
- Go 1.26 ve Go 1.27, doğrudan kod içinden SIMD hızlandırması sağlayan deneysel arayüzleri sundu.
- Yeni simd paketi amd64, arm64 ve WebAssembly üzerinde tek kod tabanıyla çalışabiliyor.
- Desteklenmeyen donanımlarda vektör işlemleri öykünme mekanizmasıyla kesintisiz yürütülüyor.
Go geliştirici ekibi, Go 1.26 ve Go 1.27 sürümleriyle birlikte Tek Komut Çoklu Veri (SIMD) işlemlerini dilden doğrudan çalıştırmayı sağlayan yeni deneysel arayüzleri tanıttı. Daha önce yalnızca Go assembly yazılarak erişilebilen donanım tabanlı vektör hızlandırma özellikleri, artık doğrudan standart Go kodlarıyla kullanılabiliyor. amd64 mimarisindeki AVX serisi, arm64 tarafındaki NEON ve WebAssembly yönergeleri yeni paket üzerinden doğrudan çağrılabiliyor.
Go 1.26 sürümünde amd64 mimarisine özel mimari bağımlı archsimd paketi yayımlandı, Go 1.27 ise arm64 ve wasm desteğini sisteme ekledi. Farklı donanım platformlarının 128 bit ile 512 bit arasında değişen vektör boyutları ve farklı maskeleme yöntemleri sunması nedeniyle geliştiriciler taşınabilir kod üretmekte zorlanıyordu. Go ekibi bu sorunu aşmak için C++ Highway kütüphanesinden esinlenen ve vektör boyutunu tip sisteminden soyutlayan taşınabilir simd paketini geliştirdi.
Yeni simd paketi tüm platformların ortak kümesinde yer alan temel aritmetik, mantıksal işlemler ve bellek operasyonlarını kapsıyor. Donanımda doğrudan yer almayan komutlar için derleyici seviyesinde hızlı öykünme rutinleri çalışıyor, böylece donanım desteği olmayan ortamlarda bile yazılan kodlar hatasız yürütülüyor. Geliştiriciler bu deneysel özelliği GOEXPERIMENT=simd bayrağıyla derleme sırasında etkinleştirebiliyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.