হার্ডওয়্যার ত্বরণ হল একটি এআই মডেলের এক্সিকিউশন গতি এবং দক্ষতা উন্নত করতে বিশেষ কম্পিউটার হার্ডওয়্যারের ব্যবহার। LiteRT-এর জন্য, এতে প্রাথমিকভাবে AI অনুমানের জন্য গ্রাফিক্স প্রসেসিং ইউনিট (GPU) বা নিউরাল প্রসেসিং ইউনিট (NPU) ব্যবহার করা হয়, সেইসাথে সাধারণ-উদ্দেশ্য কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিট (CPUs) ভেক্টর নির্দেশাবলী।
LiteRT TFLite প্রতিনিধিদের ব্যবহারের মাধ্যমে হার্ডওয়্যার ত্বরণ সমর্থন করে, যা গ্রাফে নিজস্ব ক্রিয়াকলাপ প্রতিস্থাপন করে LiteRT গ্রাফের কিছু অংশ দখল করে। LiteRT নেক্সট দুটি ধাপের মাধ্যমে হার্ডওয়্যার ত্বরণ পরিচালনা করে এই প্রক্রিয়ার উন্নতি করে:
- সংকলন: একটি নির্দিষ্ট হার্ডওয়্যার দিয়ে চালানোর জন্য একটি মডেল প্রস্তুত করুন।
- প্রেরণ: প্রাসঙ্গিক হার্ডওয়্যারে নির্বাচিত অপারেশন চালান।
কম্পাইলেশন ফেজ একটি নতুন ইন্টারফেস সহ একটি LiteRT মডেলকে সংশোধন করে যা কম্পাইলার প্লাগইনগুলির সাথে আরও নমনীয়তা প্রদান করে। মডেল সংকলন সময়ের আগে (AOT), গ্রাফটি কার্যকর করার আগে ঘটে এবং ডিভাইসে চালানোর জন্য একটি নির্দিষ্ট গ্রাফ তৈরি করে।
এক্সিলারেটরের প্রকারভেদ
LiteRT তিন ধরনের এক্সিলারেটর প্রদান করে: NPU, GPU এবং CPU।
- NPU ত্বরণ একটি একক ইন্টারফেসের পিছনে একীভূত বিশেষ হার্ডওয়্যার সমর্থন করে। একটি প্রাথমিক অ্যাক্সেস প্রোগ্রামের মাধ্যমে NPU সমর্থন পাওয়া যায়।
- GPU ত্বরণ WebGL এবং OpenCL সক্ষম ডিভাইস সমর্থন করে।
- CPU ত্বরণ XNNPack লাইব্রেরি ব্যবহারের মাধ্যমে বিভিন্ন প্রসেসরকে সমর্থন করে। এটি ত্বরণের ডিফল্ট স্তর এবং সর্বদা উপলব্ধ।
প্রদত্ত হার্ডওয়্যারে কিছু জটিল ক্রিয়াকলাপ উপলব্ধ না থাকলে সম্ভাব্য সর্বোত্তম কর্মক্ষমতা পাওয়ার জন্য এই এক্সিলারেটরগুলিকে একত্রিত করা যেতে পারে। যখন অ্যাক্সিলারেটর কোনো অপারেশনে প্রতিযোগিতা করে, তখন LiteRT নিম্নলিখিত ক্রম অগ্রাধিকার ব্যবহার করে: NPU, GPU, CPU।
GPU ত্বরণ
LiteRT Next-এর GPU ত্বরণের সাথে, আপনি GPU-বন্ধুত্বপূর্ণ ইনপুট এবং আউটপুট বাফার তৈরি করতে পারেন, GPU মেমরিতে আপনার ডেটা দিয়ে শূন্য-কপি অর্জন করতে পারেন এবং সমান্তরালতাকে সর্বাধিক করার জন্য অ্যাসিঙ্ক্রোনাসভাবে কাজগুলি সম্পাদন করতে পারেন৷ LiteRT নেক্সট একটি নতুন এবং উন্নত GPU প্রতিনিধি ব্যবহার করে, LiteRT দ্বারা অফার করা হয় না।
LiteRT সহ GPU-তে মডেলগুলি চালানোর জন্য স্পষ্ট প্রতিনিধি তৈরি, ফাংশন কল এবং গ্রাফ পরিবর্তনের প্রয়োজন। LiteRT নেক্সট দিয়ে, শুধু অ্যাক্সিলারেটর নির্দিষ্ট করুন:
// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));
GPU ত্বরণ সম্পর্কে আরও তথ্যের জন্য, LiteRT ত্বরণ সহ GPU ত্বরণ দেখুন
NPU ত্বরণ
LiteRT Next আপনাকে আলাদাভাবে ভেন্ডর-নির্দিষ্ট কম্পাইলার, রানটাইম বা লাইব্রেরি নির্ভরতাগুলিতে নেভিগেট করতে বাধ্য না করে NPU-গুলিকে ব্যবহার করার জন্য একটি ইউনিফাইড ইন্টারফেস প্রদান করে। NPU ত্বরণের জন্য LiteRT Next ব্যবহার করা অনেক বিক্রেতা-নির্দিষ্ট এবং ডিভাইস-নির্দিষ্ট জটিলতা এড়ায়, রিয়েল-টাইম এবং বড়-মডেলের অনুমানের জন্য কর্মক্ষমতা বাড়ায় এবং শূন্য-কপি হার্ডওয়্যার বাফার ব্যবহার সহ মেমরি কপিগুলিকে কম করে।
LiteRT-এর সাথে NPUs ব্যবহার করার জন্য প্লে ফর অন-ডিভাইস AI (PODAI) এর সাথে একটি মডেল রূপান্তর করা এবং কম্পাইল করা এবং Play AI প্যাক এবং ফিচার মডিউল দিয়ে মডেল স্থাপন করা জড়িত।