এই পৃষ্ঠায় নিউরাল নেটওয়ার্কস এপিআই (NNAPI) ড্রাইভার বাস্তবায়নের সর্বোত্তম পদ্ধতি বর্ণনা করা হয়েছে, যাতে অ্যাপ ডেভেলপাররা NNAPI ব্যাপকভাবে ব্যবহার করতে পারে।
স্টার্টআপ সময় সংক্ষিপ্ত রাখুন
যদি আপনার ড্রাইভার প্রথমবার ব্যবহারের সময় কোনো মডেলের ওয়েটগুলো ট্রান্সফর্ম করে, তবে নিশ্চিত করুন যে ড্রাইভারটি কম্পাইলেশন ক্যাশিং সমর্থন করে, যা একটি অ্যাপ চালু হওয়ার সময় কম্পাইলেশনের জন্য ব্যবহৃত সময় কমিয়ে দেয়। এটি গুরুত্বপূর্ণ, কারণ স্টার্ট-আপ সময় খুব বেশি হলে অ্যাপগুলো হার্ডওয়্যার অ্যাক্সিলারেশন ব্যবহার করা এড়িয়ে চলতে পারে। উদাহরণস্বরূপ, কিছু অ্যাপে ১০০ মেগাবাইটেরও বেশি ওয়েট থাকে এবং প্রতিবার অ্যাপ চালু হওয়ার সময় এগুলো ট্রান্সফর্ম করা অপচয়মূলক।
ন্যূনতম লেটেন্সি হ্রাস করুন
মডেলগুলো যাতে হার্ডওয়্যার অ্যাক্সিলারেশন ব্যবহার করে, তা নিশ্চিত করতে ড্রাইভারের ন্যূনতম ল্যাটেন্সি কমানো জরুরি। অনেক অ্যাপ ছোট ছোট মডেল ব্যবহার করে যা একাধিকবার চালানো হয় এবং যদি কোনো ওয়ার্কলোড চালানোর ন্যূনতম ল্যাটেন্সি খুব বেশি হয়, যেমন কয়েক মিলিসেকেন্ড, তাহলে মডেলগুলো হার্ডওয়্যার অ্যাক্সিলারেশন ব্যবহার না করে সিপিইউ-তে ওয়ার্কলোডটি চালাতে পারে, যাতে মাত্র এক বা দুই মিলিসেকেন্ড সময় লাগে। ব্যয়বহুল থ্রেড সিনক্রোনাইজেশন সম্পর্কে সতর্ক থাকুন।
NN HAL SchedTune গ্রুপটি ব্যবহার করুন
অ্যান্ড্রয়েড ১১ বা তার পরবর্তী সংস্করণ থেকে, AOSP-তে একটি বিশেষ NN HAL SchedTune গ্রুপ অন্তর্ভুক্ত করা হয়েছে, যা পূর্বনির্ধারিত top-app cgroup-এর মধ্যে একই-প্রসেস বাস্তবায়নের মতোই, আন্তঃপ্রসেস NN HAL প্রসেসগুলোকে বড় কোর ব্যবহার করার সুযোগ দেয়। এই SchedTune গ্রুপটি ব্যবহার করলে ড্রাইভারের ওভারহেড কমে যায়, বিশেষ করে ছোট মডেলগুলোর ক্ষেত্রে।
SchedTune গ্রুপটি ব্যবহার করতে, NN HAL প্রসেসের init.rc ফাইলে নিম্নলিখিত লাইনটি যোগ করুন:
writepid /dev/stune/nnapi-hal/tasks