LiteRT Dispatch API لدمج وقت التشغيل في وحدة المعالجة العصبية

متى يجب تنفيذ Disptach API؟

تكون واجهة برمجة التطبيقات LiteRT Dispatch API ضرورية عندما تحتاج إلى دمج وقت تشغيل مسرّع أجهزة معيّن في إطار عمل LiteRT. تعمل هذه الميزة مع المكوّن الإضافي للمترجم البرمجي لتنفيذ الرسوم البيانية الفرعية المجمّعة التي يصدرها المكوّن الإضافي للمترجم البرمجي.

واجهة برمجة التطبيقات dispatch هي مجموعة من الوظائف التي ينفّذها المورّد والتي ستستخدمها LiteRT لإدارة جلسة مع وقت تشغيل أحد أدوات التسريع. وتشمل هذه الوظائف جلسات الأجهزة وتنفيذ الرسومات البيانية الفرعية ونقل المخزن المؤقت بين المضيف والجهاز. تسمح عمليات تنفيذ واجهة برمجة التطبيقات dispatch، بالإضافة إلى مكوّن إضافي للمترجم، لـ LiteRT بالاستفادة الكاملة من إمكانات أداة تسريع الاستنتاج لتحقيق استنتاج فعّال.

يمكنك الاطّلاع على مزيد من التفاصيل حول "وقت" تنفيذ واجهة برمجة التطبيقات dispatch (والمكوّن الإضافي للمترجم البرمجي) في صفحة المكوّن الإضافي للمترجم البرمجي LiteRT.

كيف تعمل Dispatch API؟

يتم استخدام Dispatch API من خلال CompiledModel باستخدام NpuAccelerator. يؤدي ذلك إلى إنشاء DispatchDelegate داخليًا، وهذا DispatchDelegate هو الذي يستخدم Dispatch API للتفاعل مع وحدة المعالجة العصبية المضمّنة في الأجهزة التي يتم تشغيلها.

أنواع بيانات Dispatch API

في Dispatch API، تُستخدَم أنواع البيانات التالية لتنفيذ نموذج على وحدات المعالجة العصبية.

  • DispatchDeviceContext

    يتم استخدامها لإدارة المخازن المؤقتة التي تستخدمها استنتاجات وحدة المعالجة العصبية.

  • DispatchInvocationContext

    هذه هي بنية البيانات المستخدَمة لتنفيذ النموذج. ويعمل من خلال ربط الذاكرة الفعلية للإدخال والإخراج المسجّلة في DispatchDeviceContext مع DispatchGraph الذي تم إنشاؤه.

Dispatch APIs

للاطّلاع على التعريف الكامل لواجهة برمجة التطبيقات Dispatch API، يُرجى الرجوع إلى الملف vendors/c/litert_dispatch.h.