SiLU ve SoftMax’ı 2 kat hızlandıran yeni üstel fonksiyon, doğruluk tamamen korunuyor
(github.com/ggerganov)GGML: CPU için SiLU ve Softmax yeniden yazımı
Başlıca değişiklikler
-
Vektörleştirilmiş
expf()fonksiyonunun eklenmesi:- Daha önce
GGMLiçinde kullanılanshort[65536]arama tablosuna kıyasla, Softmax ve SiLU artık daha doğru hesaplanabiliyor. aarch64vesse2+destekleniyor; en kötü durumda yuvarlama hatası 2 ULP.avx2veavx512uygulamaları da yazıldı, ancaksse2+fma'e kıyasla kod karmaşıklığına değecek kadar büyük bir avantaj sağlamadığı için kullanılmadı.
- Daha önce
-
Öne çıkan tepkiler:
- Birden fazla katkıcı bu değişikliğe olumlu yaklaştı.
AMD Ryzen 9 5950XveM2 UltraüzerindeSOFT_MAXyaklaşık 1,5 kat daha hızlı.
Kod değişiklikleri
- Başlıca değişikliklerin özeti:
- Yorum satırına alınmış
#definekaldırıldı. - Tekrarlanan 5 satır
ggml_vec_soft_max_f32()içine çıkarıldı. GGML_SILU_FP16ile ilgili fonksiyonlar kaldırıldı.ggml_v_expf()eklendi.ggml_v_silu()eklendi.ggml_vec_silu_f32(),SSE2veya__ARM_NEONbayraklarına göre ön işlemci koşullarıyla düzenlendi.
- Yorum satırına alınmış
Performans iyileştirmeleri
- Benchmark sonuçları:
AMD Ryzen 9 5950XveM2 UltraüzerindeSOFT_MAXyaklaşık 1,5 kat daha hızlı.AVX2dahil edildiğinde kazanç 1,5 kattan 1,9 kata çıkıyor.znver4üzerindeavx512dahil edildiğinde 2,1 kata ulaşıyor.
Ek görüşler
- Katkıcı yorumları:
AVX512kullanılırkenvscalefpskullanılırsa taşma ve alt taşma uygun şekilde ele alınabiliyor, ayrıca ek kontroller ve blend işlemleri kaldırılabiliyor.Skylake-AVX512/Cascadelakeüzerinde performans artışı doğrulandı.
GN⁺ görüşü
- Performans artışı: Bu değişiklik CPU tarafında performansı önemli ölçüde artırabilir; özellikle
AVX2veAVX512kullanan modern donanımlarda kazanç daha büyük olabilir. - Kod karmaşıklığı:
AVX2veAVX512uygulamalarıSSE2+fma'e kıyasla büyük avantaj sağlamadığından, kod karmaşıklığını azaltmak önemli. - Donanım uyumluluğu: Farklı donanımlarda performansı optimize etmek için çeşitli SIMD komut setlerini desteklemek önemli.
- Benchmark: Performans artışını doğrulamak için farklı donanımlarda benchmark testleri gerekli.
- Güncel teknolojilerin kullanımı: En yeni SIMD komut setlerinden yararlanarak performansı en üst düzeye çıkarmak önemli.
1 yorum
Hacker News yorumu
Hacker News yorum derlemesi özeti
20 yıl önceki Hughes radar sinyal işlemcisi hikayesi
silu ve softmax iyileştirmelerinin LLM çıkarım hızına etkisi
Kod optimizasyonuna hayranlık
LUT boyutuna dair soru işareti
CPU'da llama.cpp ve ggml karşılaştırması
CUDA aygıtlarında performans karşılaştırması
LUT vektörleştirme olasılığı
Hızlı tanh hesaplama
CPU'da llama performansı