מתי כדאי להטמיע את Dispatch API?
LiteRT Dispatch API נדרש כשרוצים לשלב זמן ריצה של מאיץ חומרה ספציפי במסגרת LiteRT. הוא פועל עם הפלאגין Compiler כדי להריץ את תתי-הגרפים המהודרים שנוצרו על ידי הפלאגין Compiler.
ה-API של השליחה הוא קבוצה של פונקציות שהספק מיישם, ו-LiteRT ישתמש בהן כדי לנהל סשן עם זמן הריצה של המאיץ. הפונקציות האלה כוללות סשנים של מכשירים, הפעלה של תת-גרף והעברה של מאגרים בין המארח למכשיר. הטמעות של dispatch API, בשילוב עם תוסף מהדר, מאפשרות ל-LiteRT לנצל באופן מלא את היכולות של מאיץ להסקת מסקנות יעילה.
מידע נוסף על המקרים שבהם כדאי להטמיע את ה-API של שליחת הנתונים (ואת פלאגין הקומפיילר) זמין בדף LiteRT Compiler Plugin.
איך Dispatch API עובד?
Dispatch API נמצא בשימוש ב-CompiledModel באמצעות NpuAccelerator. הפעולה הזו יוצרת באופן פנימי DispatchDelegate, וה-DispatchDelegate הזה משתמש ב-Dispatch API כדי להפעיל את ה-NPU שמוטמע בחומרה הפועלת.
סוגי נתונים של Dispatch API
ב-Dispatch API, סוגי הנתונים הבאים משמשים להפעלת מודל ב-NPU.
DispatchDeviceContextהוא משמש לניהול מאגרי נתונים זמניים שמשמשים להסקת מסקנות ב-NPU.
DispatchInvocationContextזוהי מבנה הנתונים שמשמש להפעלת המודל. הוא פועל על ידי שיוך של הזיכרון בפועל של הקלט והפלט שנרשמו ב-
DispatchDeviceContextל-DispatchGraphשנוצר.
Dispatch APIs
ההגדרה המלאה של Dispatch API מופיעה בקובץ vendors/c/litert_dispatch.h.