AMX, Apple M1 का छिपा हुआ coprocessor
(medium.com)Apple Matrix Coprocessor
-
M1 की घोषणा के दौरान बिल्कुल भी ज़िक्र न किया गया matrix-विशेष प्रोसेसर
-
Matrix का उपयोग image processing, machine learning, speech/handwriting recognition, face recognition, compression, और audio/video media processing जैसी चीज़ों में बहुत होता है
-
क्या यह काम Neural Engine नहीं संभालता? यह Neural Engine से कैसे अलग है?
→ GPU या Neural Engine accelerator (त्वरक) हैं
→ accelerators जिस memory space का उपयोग करेंगे, उसे भरने के लिए CPU का काम करना गैर-प्रभावी है
→ ऐसे में instructions पर नज़र रखते हुए (spy) coprocessor यह काम उसकी जगह संभाल लेता है
→ इसका उपयोग करने के लिए अलग instruction set परिभाषित करना पड़ता है
→ ARM पहले custom instructions जोड़ने से इनकार करता रहा, लेकिन 2019 से उसने संभव extensions देना शुरू किया
→ शायद यही वजह है कि AMX instructions आधिकारिक दस्तावेज़ में नहीं दिखते
- तो फिर यह ARM में मौजूद SIMD Vector Engine से कैसे अलग है?
→ SIMD : Single Instruction Multiple Data
→ कई data पर एक ही operation चलाने पर उच्च प्रदर्शन देने की एक विधि
→ यह matrix operations से संबंधित है
→ लेकिन SIMD, ALU और FPU की तरह CPU में अंतर्निहित है, जबकि coprocessor बाहरी है
→ पुराने Intel 8087 (FPU) में 8086 से भी ज़्यादा transistors थे, इसलिए उस दौर में उसे साथ में जोड़ना मुश्किल था। तकनीक के विकास के साथ transistor संख्या बढ़ी और FPU CPU में अंतर्निहित हो गया, इसलिए वह अलग रूप में गायब हो गया
- AMX को Firestorm core के अंदर क्यों नहीं रखा गया, यह स्पष्ट नहीं है
→ शायद इसे अलग रखने से CPU के साथ parallel में काम कराना आसान रहा होगा,
→ और Apple शायद ARM standard से बाहर की चीज़ों को बाहरी हिस्से में रखना चाहता हो
- तो फिर AMX को छिपाकर क्यों रखा गया?
→ AMX आधिकारिक दस्तावेज़ में नहीं है, फिर इसके बारे में पता कैसे चला?
→ Dougal Johnson ने reverse engineering के ज़रिए इसका पता लगाया
→ Apple matrix operations के framework, Accelerate, के जरिए कई तरह की सुविधाएँ देता है
⇨ vImage : उच्च-स्तरीय image processing. Format conversion और image manipulation
⇨ BLAS : linear algebra (matrix और vector operations)
⇨ BNNS : neural networks और learning
⇨ vDSP : Fourier transform आदि digital signal processing. Image या audio processing के लिए mathematical operations
⇨ LAPACK : उच्च-स्तरीय linear algebra functions, linear equations आदि
→ यही Accelerate library, AMX का उपयोग करके गणना को तेज करती है
→ अगर instruction खुद सार्वजनिक कर दिए जाते, तो ARM ecosystem fragment हो सकता था (यह ARM और Apple दोनों नहीं चाहते)
→ Apple ने इसे सार्वजनिक न करके framework के रूप में खोला, जिससे उच्च प्रदर्शन भी मिलता है और ज़रूरत पड़ने पर instruction set को कभी भी बदला भी जा सकता है
⇨ यह इसलिए संभव है क्योंकि Apple hardware/software दोनों को एक साथ नियंत्रित करता है
⇨ developers अगर केवल Accelerate के जरिए काम करें, तो वे आगे होने वाले सुधारों का लाभ भी पाते रहेंगे
- Apple Matrix Coprocessor के फायदे क्या हैं?
→ Nod Labs ने ARMv8.6 के SIMD standard instruction NEON से तुलना की, जिसके अनुसार AMX 2 गुना से भी ज़्यादा तेज़ है
→ ऐसा नहीं कि हर चीज़ में AMX बेहतर है, लेकिन कम-से-कम machine learning या high-performance computing (HPC) में AMX बढ़त रखता है
2 टिप्पणियां
OpenCL हट जाने और Metal acceleration के अलावा Accelerate को उतना ज़ोर देकर नहीं बताया गया था, लेकिन
हर साल लाइब्रेरी बढ़ाई जा रही थी, और अब पता चला कि hardware acceleration के लिए एक dedicated coprocessor भी शामिल था, यह वाकई हैरान करने वाली बात है.
यह नीचे दिए गए दो लेख लिखने वाले इंजीनियर की अगली पोस्ट है। इन्हें साथ में पढ़ने की सिफारिश है।
→ YouTube पर व्याख्या सुनें : https://youtu.be/71LlixEBK0o
→ YouTube पर व्याख्या सुनें : https://youtu.be/F5sIQZvlJc8