SiLU और SoftMax को 2 गुना तेज़ बनाने वाला नया exponential function, सटीकता पूरी तरह बरकरार
(github.com/ggerganov)GGML: CPU के लिए SiLU और Softmax का पुनर्लेखन
प्रमुख बदलाव
-
vectorized
expf()function जोड़ा गया:- पहले
GGMLमें इस्तेमाल होने वालीshort[65536]lookup table की तुलना में अब Softmax और SiLU को अधिक सटीक रूप से गणना किया जा सकता है. - यह
aarch64औरsse2+को सपोर्ट करता है, और worst case में rounding error 2 ULP है. avx2औरavx512implementations भी लिखे गए थे, लेकिनsse2+fmaकी तुलना में code complexity के मुकाबले बड़ा लाभ न होने के कारण उनका उपयोग नहीं किया गया.
- पहले
-
मुख्य प्रतिक्रियाएँ:
- कई contributors ने इस बदलाव पर सकारात्मक प्रतिक्रिया दी.
AMD Ryzen 9 5950XऔरM2 UltraपरSOFT_MAXलगभग 1.5 गुना तेज़ है.
कोड बदलाव
- मुख्य बदलावों का सार:
- comment किए गए
#defineहटाए गए. - duplicate 5 lines को
ggml_vec_soft_max_f32()में निकाला गया. GGML_SILU_FP16से संबंधित functions हटाए गए.ggml_v_expf()जोड़ा गया.ggml_v_silu()जोड़ा गया.ggml_vec_silu_f32()कोSSE2या__ARM_NEONflags के अनुसार preprocessor statements से समायोजित किया गया.
- comment किए गए
प्रदर्शन सुधार
- benchmark परिणाम:
AMD Ryzen 9 5950XऔरM2 UltraपरSOFT_MAXलगभग 1.5 गुना तेज़ है.AVX2शामिल करने पर लाभ 1.5 गुना से बढ़कर 1.9 गुना हो जाता है.znver4परavx512शामिल करने से यह 2.1 गुना तक बढ़ जाता है.
अतिरिक्त राय
- contributors की राय:
AVX512का उपयोग करते समयvscalefpsइस्तेमाल करने से overflow और underflow को उचित रूप से संभाला जा सकता है, और checks तथा blends को हटाया जा सकता है.Skylake-AVX512/Cascadelakeपर प्रदर्शन सुधार की पुष्टि हुई.
GN⁺ की राय
- प्रदर्शन सुधार: यह बदलाव CPU पर प्रदर्शन को काफ़ी बेहतर कर सकता है, खासकर
AVX2औरAVX512इस्तेमाल करने वाले आधुनिक hardware पर इसका लाभ अधिक है. - कोड जटिलता: चूंकि
AVX2औरAVX512implementations,SSE2+fmaकी तुलना में बहुत बड़ा लाभ नहीं देतीं, इसलिए code complexity को कम रखना महत्वपूर्ण है. - हार्डवेयर संगतता: अलग-अलग hardware पर प्रदर्शन को optimize करने के लिए विभिन्न SIMD instruction sets का समर्थन महत्वपूर्ण है.
- benchmark: प्रदर्शन सुधार की पुष्टि के लिए विभिन्न hardware पर benchmark testing आवश्यक है.
- नवीनतम तकनीक का उपयोग: नवीनतम SIMD instruction sets का उपयोग करके प्रदर्शन को अधिकतम करना महत्वपूर्ण है.
1 टिप्पणियां
Hacker News प्रतिक्रिया
Hacker News टिप्पणियों का संक्षिप्त सार
20 साल पहले के Hughes radar signal processor की कहानी
LLM inference speed पर silu और softmax सुधारों का प्रभाव
Code optimization पर प्रशंसा
LUT size को लेकर सवाल
CPU पर llama.cpp और ggml की तुलना
CUDA device पर performance comparison
LUT vectorization की संभावना
तेज़ tanh calculation
CPU पर llama performance