
Google Tensor Cracks
Google Tensor NPU (DarWINN) के लिए प्रत्यक्ष-पहुंच उपकरण, जो दो पीढ़ियों में रिवर्स-इंजीनियर किया गया: Tensor G2 (Pixel 7, कोडनेम Janeiro) और Tensor G3 (Pixel 8, कोडनेम Rio)।
मैं फोन पर LLM इंफरेंस चलाने की कोशिश कर रहा था और इसे तेज़ करने के लिए Tensor NPU का उपयोग करना चाहता था। ऐसा करने के लिए मुझे यह रिवर्स-इंजीनियर करना पड़ा कि NPU वास्तव में कैसे संचालित होता है, क्योंकि इसका कोई सार्वजनिक API नहीं है — केवल Google Camera और हस्ताक्षरित सिस्टम सेवाओं को इसका उपयोग करने की अनुमति है।
रास्ते में मैंने सीखा कि NPU LLM में मदद नहीं करता, दोनों पीढ़ियों पर: भाषा-मॉडल डिकोडिंग मेमोरी-बैंडविड्थ-बाउंड है, और NPU CPU के साथ समान मेमोरी बस साझा करता है, इसलिए यह तेज़ नहीं होता (~1.81 ms/ब्लॉक NPU बनाम ~1.57 ms CPU G2 पर; ~2.01 ms बनाम ~1.66 ms G3 पर, एक वास्तविक ट्रांसफॉर्मर FFN ब्लॉक के लिए)। मेरे अपने उपयोग के मामले के लिए यह दोनों चिप्स पर एक मृत अंत था — LLM CPU पर बेहतर चलता है।
लेकिन पहुंच उपकरण स्वयं काम करता है, और NPU उन कार्यभारों के लिए एक मजबूत त्वरक है जिनके लिए इसे बनाया गया था (दृष्टि / CNN मॉडल, जहां वज़न ऑन-चिप फिट होते हैं)। इसने मेरे प्रोजेक्ट की मदद नहीं की, लेकिन ऑन-डिवाइस विज़न या NPU अनुसंधान करने वाले अन्य लोगों को यह उपयोगी लग सकता है — इसलिए मैं इसे MIT के तहत जारी कर रहा हूं।
| फ़ोल्डर | वहाँ क्या है | रूट आवश्यक? |
|---|---|---|
on-device-llm/ | वास्तविक LLM सर्विंग सेटअप (llama.cpp + Qwen2.5-1.5B) जिसे नीचे के NPU कार्य द्वारा त्वरित करने का प्रयास किया गया। दोनों फोनों पर मापे गए टोकन/सेकंड। | नहीं |
g2-pixel7/ | Tensor G2 (Pixel 7, Janeiro) NPU पहुंच — पूर्ण SDK, स्टैंडअलोन C++ रनर, कस्टम मॉडल निष्पादन, द्विदिश प्रमाण। मूल रिवर्स-इंजीनियरिंग कार्य। | हाँ |
g3-pixel8/ | Tensor G3 (Pixel 8, Rio) NPU पहुंच — G3 के भिन्न (हैंडल-आधारित) बफर API पर पोर्ट किया गया द्विदिश प्रमाण, साथ ही पुनः मापा गया FFN बैंडविड्थ निर्णय। | हाँ |
यदि आप अपने फोन पर सिर्फ एक स्थानीय LLM चलाना चाहते हैं, तो on-device-llm/ से शुरू करें — यह उपयोगी, बिना-रूट वाला भाग है। g2-pixel7//g3-pixel8/ फ़ोल्डर्स उन लोगों के लिए हैं जो जानना चाहते हैं कि क्यों NPU का उपयोग नहीं किया जाता है और फिर भी लॉक किए गए हार्डवेयर तक कैसे पहुंचा गया।
दोनों चिप्स के NPU समान DarWINN API v2 सतह (AddInput/AddOutput/Submit) प्रदर्शित करते हैं, लेकिन एक महत्वपूर्ण तरीके में भिन्न हैं: G2 कच्चा टेंसर पॉइंटर लौटाता है, जबकि G3 टेंसर को एक अपारदर्शी Buffer* हैंडल में लपेटता है जिसे अपने स्वयं के SizeBytes/MapToHost/FlushCache API के माध्यम से एक्सेस किया जाना चाहिए। देखें g3-pixel8/README_DEMO.md कि यह व्यवहार में क्या बदलता है।
google-edgetpu NNAPI त्वरक के माध्यम से लोड करने योग्य (प्रति-चैनल वज़न अस्वीकार कर दिए जाते हैं)।on-device-llm/ को Termux के अलावा कुछ नहीं चाहिए — कोई रूट नहीं। NPU फ़ोल्डर्स को Magisk-रूटेड Pixel 7 (Tensor G2) या Pixel 8 (Tensor G3) · Android 14/16 · Frida 17.x · लक्ष्य प्रक्रिया com.google.android.GoogleCamera · libedgetpu_util.so — आपके अपने हार्डवेयर तक डिवाइस-मालिक पहुंच, अनुसंधान और सीखने के लिए।
MIT. जैसा है वैसा साझा किया गया, कोई वारंटी नहीं, यदि यह किसी की मदद करता है।