एप्पल M4 में न्यूरल इंजन के अंदर, भाग 1: रिवर्स इंजीनियरिंग
Apple
शोधकर्ताओं ने M4 चिप में एप्पल के न्यूरल इंजन (ANE) को रिवर्स-इंजीनियर किया, कोर ML को बायपास करके सीधे न्यूरल नेटवर्क प्रोग्राम संकलित और चलाए। उन्होंने पाया कि ANE की वास्तविक पीक परफॉर्मेंस एप्पल के दावे किए गए 38 टॉप्स से कम है, और उन्होंने सफलतापूर्वक चिप पर एक मॉडल प्रशिक्षित किया, जो केवल इनफरेंस के लिए डिज़ाइन किया गया है।
यह लेख बताता है कि कैसे लेखकों ने M4 चिप में Apple के न्यूरल इंजन (ANE) को रिवर्स-इंजीनियर किया, Core ML को बायपास करके सीधे हार्डवेयर के साथ काम किया। उन्होंने Core ML से लेकर IOKit कर्नेल ड्राइवर तक पूरे सॉफ्टवेयर स्टैक का पता लगाया, Core ML के बिना ANE पर प्रोग्राम संकलित करने और निष्पादित करने का तरीका खोजा, और बाइनरी प्रारूप का अनावरण किया। उन्होंने वास्तविक पीक प्रदर्शन को मापा, पाया कि Apple का विज्ञापित '38 TOPS' भ्रामक है। अंततः, वे चिप पर एक तंत्रिका नेटवर्क को प्रशिक्षित करने में सफल रहे, जो केवल अनुमान (इन्फ्रेंस) के लिए है। ANE एक GPU या CPU नहीं है; यह एक कम्प्यूटेशनल ग्राफ इंजन है जो संकलित तंत्रिका नेटवर्क को एक परमाणु ऑपरेशन के रूप में निष्पादित करता है। उन्होंने मेथड स्विज़लिंग और बाइनरी विश्लेषण का उपयोग करके AppleNeuralEngine.framework में 40 से अधिक निजी क्लास का पता लगाया, जिसमें _ANEClient भी शामिल है, जो कंपाइल-लोड-एग्ज़ीक्यूट पाइपलाइन तक सीधी पहुंच प्रदान करता है। उन्होंने यह भी पता लगाया कि MIL भाषा मॉडल का वर्णन करने के लिए उपयोग की जाती है, और बाइनरी प्रारूप E5 एक FlatBuffers फ़ाइल है जो निश्चित हार्डवेयर प्राइमिटिव्स को पैरामीटराइज़ करती है, न कि पारंपरिक मशीन कोड संग्रहीत करती है। उन्होंने _ANEInMemoryModelDescriptor का उपयोग करके मेमोरी में मॉडल संकलित करने का तरीका खोजा, हालांकि यह अभी भी अस्थायी निर्देशिका में लिखता है। M4 में ANE में 16 कोर, 127 की कतार गहराई, और स्वतंत्र डायनेमिक वोल्टेज और फ्रीक्वेंसी स्केलिंग (DVFS) है।
स्रोत: Habr — хаб ML —
मूल
