SIMD ve vektörleştirme
Kısaca: SIMD (“Single Instruction, Multiple Data”), tek bir CPU komutunun aynı anda birden çok değeri işlemesini sağlar.
Biraz daha ayrıntılı: Geniş bir yazmaç (128, 256 veya 512 bit) örneğin sekiz 32 bitlik sayı tutar. Tek bir toplama hepsini birden hesaplar. Bu, görüntü, ses ve matris hesaplarını büyük ölçüde hızlandırır.
Ayrıntılı
- Komut kümeleri: x86’da SSE ve AVX, ARM’de NEON ve SVE, RISC-V’te RVV.
- Otomatik vektörleştirme: Yinelemeler birbirinden bağımsızsa derleyiciler basit döngüleri kendileri SIMD koduna çevirir.
- Elle: “Intrinsics” (özel işlevler) veya kütüphanelerle. Daha zahmetli ama denetlenebilir.
- Frenler: Hizalanmamış bellek erişimi, döngü içi dallanmalar, veri bağımlılıkları, çok kısa döngüler.
- İlgili: GPU’lar bu ilkeyi çok daha ileri taşır (SIMT). Bkz. YZ yongaları karşılaştırması.
- Güç: Çok geniş birimler saati düşürebilir (bazı CPU’larda AVX-512 kısıtlaması).
Ayrıca bak: CPU yapısı