एनपीयू रनटाइम इंटिग्रेशन के लिए LiteRT Dispatch API

मुझे Dispatch API कब लागू करना चाहिए?

LiteRT फ़्रेमवर्क में किसी खास हार्डवेयर ऐक्सलरेटर रनटाइम को इंटिग्रेट करने के लिए, LiteRT Dispatch API का इस्तेमाल करना ज़रूरी है. यह कंपाइलर प्लगिन के साथ काम करता है, ताकि कंपाइलर प्लगिन से जनरेट किए गए कंपाइल किए गए सब-ग्राफ़ को एक्ज़ीक्यूट किया जा सके.

डिस्पैच एपीआई, वेंडर के लागू किए गए फ़ंक्शन का एक सेट है. LiteRT इसका इस्तेमाल, ऐक्सलरेटर के रनटाइम के साथ सेशन को मैनेज करने के लिए करेगा. इन फ़ंक्शन में डिवाइस सेशन, सबग्राफ़ एक्ज़ीक्यूशन, और होस्ट और डिवाइस के बीच बफ़र मूवमेंट शामिल हैं. डिस्पैच एपीआई को कंपाइलर प्लगिन के साथ लागू करने से, LiteRT को बेहतर अनुमान के लिए ऐक्सलरेटर की क्षमताओं का पूरी तरह से इस्तेमाल करने की अनुमति मिलती है.

डिसपैच एपीआई (और कंपाइलर प्लगिन) को "कब" लागू करना है, इस बारे में ज़्यादा जानकारी LiteRT कंपाइलर प्लगिन पेज पर देखी जा सकती है.

Dispatch API कैसे काम करता है?

Dispatch API का इस्तेमाल CompiledModel, NpuAccelerator का इस्तेमाल करके करता है. यह इंटरनल तौर पर DispatchDelegate बनाता है. साथ ही, यह DispatchDelegate ही Dispatch API का इस्तेमाल करके, रनिंग हार्डवेयर में एम्बेड किए गए एनपीयू को चालू करता है.

Dispatch API के डेटा टाइप

Dispatch API में, एनपीयू पर मॉडल को एक्ज़ीक्यूट करने के लिए, इस तरह के डेटा टाइप का इस्तेमाल किया जाता है.

  • DispatchDeviceContext

    इस कुकी का इस्तेमाल, NPU इन्फ़रेंस के लिए इस्तेमाल किए जाने वाले बफ़र को मैनेज करने के लिए किया जाता है.

  • DispatchInvocationContext

    यह मॉडल को लागू करने के लिए इस्तेमाल किया गया डेटा स्ट्रक्चर है. यह DispatchDeviceContext में रजिस्टर की गई, असल इनपुट और आउटपुट मेमोरी को जनरेट किए गए DispatchGraph से जोड़कर काम करता है.

डिस्पैच एपीआई

Dispatch API की पूरी परिभाषा के लिए, कृपया vendors/c/litert_dispatch.h फ़ाइल देखें.