डिवाइस की खोज और असाइनमेंट

एंड्रॉइड 10 में, न्यूरल नेटवर्क्स एपीआई (एनएनएपीआई) ऐसे फ़ंक्शन पेश करता है जो मशीन लर्निंग फ्रेमवर्क लाइब्रेरीज़ और ऐप्स को उपलब्ध उपकरणों के बारे में जानकारी प्राप्त करने और निर्दिष्ट करने की अनुमति देता है कि किस डिवाइस पर मॉडल निष्पादित करना है। उपलब्ध उपकरणों के बारे में जानकारी प्रदान करने से ऐप्स को ज्ञात असंगतताओं से बचने के लिए डिवाइस पर पाए जाने वाले ड्राइवरों का सटीक संस्करण प्राप्त करने की अनुमति मिलती है। ऐप्स को यह निर्दिष्ट करने की क्षमता देकर कि कौन से डिवाइस को मॉडल के विभिन्न अनुभागों को निष्पादित करना है, ऐप्स को उस उत्पाद के लिए अनुकूलित किया जा सकता है जिस पर वे तैनात हैं।

एनएन एचएएल 1.2 कार्यान्वयन के लिए डिवाइस खोज और असाइनमेंट के लिए समर्थन आवश्यक है।

कार्यान्वयन

एनएनएपीआई में डिवाइस खोज और असाइनमेंट सुविधाओं का समर्थन करने के लिए, फ्रेमवर्क को डिवाइस प्रकार और ड्राइवर संस्करण प्राप्त करने की अनुमति देने के लिए IDevice.hal में getType और getVersionString लागू करें।

प्रत्येक डिवाइस के लिए, प्रकार को निम्नलिखित श्रेणियों में से एक के रूप में निर्दिष्ट करें जैसा कि DeviceType में types.hal में निर्दिष्ट है।

  • OTHER : एक उपकरण जो किसी अन्य श्रेणी में नहीं आता है, जिसमें एक विषम इंटरफ़ेस भी शामिल है, जो एक एकल IDevice इंटरफ़ेस है जो संभवतः विभिन्न प्रकार के कई उपकरणों का प्रबंधन करता है। एक विषम इंटरफ़ेस वाले ड्राइवर को अलग-अलग डिवाइसों से मेल खाने वाले अलग-अलग IDevice इंटरफेस को भी उजागर करना चाहिए ताकि किसी एप्लिकेशन को उन डिवाइसों में से चुनने की अनुमति मिल सके।
  • CPU : एक सिंगल कोर या मल्टीकोर सीपीयू।
  • GPU : एक जीपीयू जो एनएनएपीआई मॉडल चला सकता है और ओपनजीएल ईएस और वल्कन जैसे ग्राफिक्स एपीआई को तेज कर सकता है।
  • ACCELERATOR : एक समर्पित तंत्रिका प्रसंस्करण इकाई (एनपीयू)।

डिवाइस कार्यान्वयन की संस्करण स्ट्रिंग प्राप्त करने के लिए IDevice.hal में getVersionString लागू करें। इस विधि को एक ऐसी स्ट्रिंग लौटानी होगी जो मानव पठनीय हो। स्ट्रिंग का प्रारूप विक्रेता विशिष्ट है. ड्राइवर के प्रत्येक नए संस्करण के लिए संस्करण स्ट्रिंग अलग होनी चाहिए।

IDevice इंटरफ़ेस का नाम {VENDOR}-{DEVICE_NAME} प्रारूप का पालन करना चाहिए।