NPU রানটাইম ইন্টিগ্রেশনের জন্য LiterRT ডিসপ্যাচ API

আমার কখন Disptach API বাস্তবায়ন করা উচিত?

LiteRT ফ্রেমওয়ার্কে একটি নির্দিষ্ট হার্ডওয়্যার অ্যাক্সিলারেটর রানটাইম ইন্টিগ্রেট করার প্রয়োজন হলে LiteRT ডিসপ্যাচ API প্রয়োজন। এটি কম্পাইলার প্লাগইনের সাথে কাজ করে কম্পাইলার প্লাগইন দ্বারা নির্গত কম্পাইল করা সাব-গ্রাফগুলি কার্যকর করে।

ডিসপ্যাচ এপিআই হল ভেন্ডর ইমপ্লিমেন্টেড ফাংশনের একটি সেট যা LiteRT অ্যাক্সিলারেটরের রানটাইম সহ একটি সেশন পরিচালনা করতে ব্যবহার করবে। এই ফাংশনগুলি ডিভাইস সেশন, সাবগ্রাফ এক্সিকিউশন এবং হোস্ট এবং ডিভাইসের মধ্যে বাফার মুভমেন্টকে অন্তর্ভুক্ত করে। ডিসপ্যাচ এপিআই বাস্তবায়ন, একটি কম্পাইলার প্লাগইনের সাথে একত্রে, LiteRT কে দক্ষ ইনফারেন্সের জন্য একটি অ্যাক্সিলারেটরের ক্ষমতা সম্পূর্ণরূপে ব্যবহার করতে দেয়।

ডিসপ্যাচ এপিআই (এবং কম্পাইলার প্লাগইন) "কখন" বাস্তবায়ন করতে হবে সে সম্পর্কে আরও বিস্তারিত তথ্য LiterRT কম্পাইলার প্লাগইন পৃষ্ঠায় পাওয়া যাবে।

ডিসপ্যাচ এপিআই কীভাবে কাজ করে?

CompiledModel দ্বারা NpuAccelerator ব্যবহার করে Dispatch API ব্যবহার করা হয়। এটি অভ্যন্তরীণভাবে একটি DispatchDelegate তৈরি করে এবং এই DispatchDelegate ই চলমান হার্ডওয়্যারে এমবেড করা NPU-কে সংযুক্ত করার জন্য Dispatch API ব্যবহার করে।

ডিসপ্যাচ এপিআই ডেটা টাইপ

ডিসপ্যাচ এপিআই-তে, NPU-তে একটি মডেল কার্যকর করার জন্য নিম্নলিখিত ডেটা টাইপগুলি ব্যবহার করা হয়।

  • DispatchDeviceContext

    এটি NPU ইনফারেন্স দ্বারা ব্যবহৃত বাফারগুলি পরিচালনা করতে ব্যবহৃত হয়।

  • DispatchInvocationContext

    এটি মডেলটি কার্যকর করার জন্য ব্যবহৃত ডেটা স্ট্রাকচার। এটি DispatchDeviceContext এ নিবন্ধিত প্রকৃত ইনপুট এবং আউটপুট মেমোরিকে জেনারেট করা DispatchGraph সাথে সংযুক্ত করে কাজ করে।

প্রেরণ API গুলি

ডিসপ্যাচ এপিআই-এর সম্পূর্ণ সংজ্ঞা জানতে, অনুগ্রহ করে vendors/c/litert_dispatch.h ফাইলটি দেখুন।