27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
NNAPI ড্রাইভার বাস্তবায়নের সর্বোত্তম অনুশীলন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
এই পৃষ্ঠাটি অ্যাপ ডেভেলপারদের দ্বারা এনএনএপিআইকে বিস্তৃতভাবে গ্রহণ করার অনুমতি দেওয়ার জন্য নিউরাল নেটওয়ার্ক এপিআই (এনএনএপিআই) ড্রাইভার বাস্তবায়নের সর্বোত্তম অনুশীলনের বর্ণনা করে।
স্টার্টআপের সময় ছোট রাখুন
আপনার ড্রাইভার যদি প্রথম ব্যবহারে একটি মডেলের ওজন পরিবর্তন করে তবে নিশ্চিত করুন যে ড্রাইভারটি কম্পাইলেশন ক্যাশিং সমর্থন করে, যা একটি অ্যাপ শুরু হওয়ার সময় সংকলনের জন্য ব্যবহৃত সময়কে হ্রাস করে। এটি গুরুত্বপূর্ণ কারণ অ্যাপগুলি হার্ডওয়্যার ত্বরণ ব্যবহার এড়াতে পারে যদি স্টার্ট-আপের সময় খুব বেশি হয়। উদাহরণ স্বরূপ, কিছু অ্যাপের ওজন 100 MB-এর বেশি এবং প্রতিবার অ্যাপ লঞ্চ করার সময় এগুলোকে রূপান্তর করা অযথা।
ন্যূনতম বিলম্ব হ্রাস করুন
মডেলগুলি হার্ডওয়্যার ত্বরণ ব্যবহার করে তা নিশ্চিত করার জন্য, ড্রাইভারগুলিতে ন্যূনতম বিলম্ব কমানো গুরুত্বপূর্ণ৷ অনেক অ্যাপ ছোট মডেল ব্যবহার করে যেগুলি একাধিকবার কার্যকর করা হয় এবং যদি কাজের চাপ চালানোর ন্যূনতম বিলম্ব খুব বেশি হয়, যেমন কয়েক মিলিসেকেন্ড, মডেলগুলি হার্ডওয়্যার ত্বরণ ব্যবহার করার পরিবর্তে CPU-তে কাজের চাপ চালাতে পারে, যা শুধুমাত্র এক বা দুই মিলিসেকেন্ড সময় নেয়। ব্যয়বহুল থ্রেড সিঙ্ক্রোনাইজেশন সম্পর্কে সতর্ক থাকুন।
NN HAL SchedTune গ্রুপ ব্যবহার করুন
Android 11 বা উচ্চতর থেকে, AOSP একটি ডেডিকেটেড NN HAL SchedTune গ্রুপ অন্তর্ভুক্ত করে যা আন্তঃপ্রসেস NN HAL প্রসেসগুলিকে পূর্বনির্ধারিত top-app
cgroup-এর মধ্যে একই-প্রক্রিয়া বাস্তবায়নের মতো বড় কোর ব্যবহার করতে দেয়। এই SchedTune গ্রুপটি ব্যবহার করলে ড্রাইভারের ওভারহেড কমে যায়, বিশেষ করে ছোট মডেলের জন্য।
SchedTune গ্রুপ ব্যবহার করতে, NN HAL প্রক্রিয়ার init.rc
ফাইলে নিম্নলিখিত লাইন যোগ করুন:
writepid /dev/stune/nnapi-hal/tasks
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# NNAPI driver implementation best practices\n\n| **Deprecated:** Starting in Android 15, the\n| [NNAPI (NDK API)](https://developer.android.com/ndk/guides/neuralnetworks) is deprecated. The Neural Networks HAL interface\n| continues to be supported.\n|\n| For more information, see the\n| [NNAPI Migration Guide](https://developer.android.com/ndk/guides/neuralnetworks/migration-guide).\n\nThis page describes best practices for implementing Neural Networks API (NNAPI)\ndrivers to allow for broad adoption of the NNAPI by app developers.\n\nKeep startup times short\n------------------------\n\nIf your driver transforms the weights of a model on first use, make sure the\ndriver supports compilation caching, which reduces the time used for compilation\nwhen an app starts. This is important as apps might avoid using hardware\nacceleration if start-up times are too long. For example, some apps have\nmore than 100 MB of weights and transforming these each time the app\nlaunches is wasteful.\n\nReduce minimal latency\n----------------------\n\nTo ensure that models use hardware acceleration, it's important to reduce the\nminimal latency in drivers. Many apps use small models that are executed\nmultiple times and if the minimal latency to execute a workload is too high,\nsuch as a few milliseconds, models might run the workload on the CPU, which only\ntakes one or two milliseconds, instead of\nusing hardware accelerations. Be careful of costly thread synchronization.\n\nUse the NN HAL SchedTune group\n------------------------------\n\nFrom Android 11 or higher, AOSP includes a dedicated\nNN HAL\n[SchedTune](https://android.googlesource.com/kernel/msm/+/android-msm-marlin-3.18-nougat-dr1/Documentation/scheduler/sched-tune.txt)\ngroup that allows interprocess NN HAL processes to use big\ncores, similar to same-process implementation within the predefined\n`top-app` [cgroup](/docs/core/perf/cgroups). Using this\nSchedTune group reduces driver overhead, especially for small models.\n\nTo use the SchedTune group, add the following line to the `init.rc` file of\nthe NN HAL process: \n\n writepid /dev/stune/nnapi-hal/tasks"]]