অ্যান্ড্রয়েড 11 থেকে শুরু করে, এনএনএপিআই-তে দুটি নিয়ন্ত্রণ প্রবাহ অপারেশন রয়েছে, IF
এবং WHILE
, যা অন্য মডেলগুলিকে আর্গুমেন্ট হিসাবে নেয় এবং শর্তসাপেক্ষে ( IF
) বা বারবার ( WHILE
) চালায়। এটি এমন মডেল তৈরি করার অনুমতি দেয় যা ইনপুট মানের উপর ভিত্তি করে বিভিন্ন ক্রিয়াকলাপ চালায় বা আনরোল না করে একাধিকবার অপারেশন চালায়। এটি ডায়নামিক RNN এবং seq2seq এর মতো ব্যবহারের ক্ষেত্রে গুরুত্বপূর্ণ।
NN HAL 1.3-এ, মডেলটিতে একাধিক সাবগ্রাফ অন্তর্ভুক্ত করা হয়েছে, যার মধ্যে প্রধান সাবগ্রাফ অন্তর্ভুক্ত রয়েছে যা একটি এক্সিকিউশনের ইনপুট এবং আউটপুট নির্দিষ্ট করার জন্য ব্যবহৃত হয়। একটি সাবগ্রাফ SUBGRAPH
ধরনের অপারেন্ড ব্যবহার করে অন্যান্য সাবগ্রাফ উল্লেখ করতে পারে। ফ্রেমওয়ার্ক একটি নিয়ন্ত্রণ প্রবাহ অপারেশনকে একটি এক্সিলারেটরে পাঠাতে পারে শুধুমাত্র যদি এক্সিলারেটর সেই নিয়ন্ত্রণ প্রবাহ অপারেশন দ্বারা উল্লেখ করা সমস্ত সাবগ্রাফের সমস্ত ক্রিয়াকলাপ সমর্থন করে।
HAL ইন্টারফেস
NN HAL 1.3-এ, নিয়ন্ত্রণ প্রবাহ সম্পর্কিত সংজ্ঞাগুলি types.hal
এ রয়েছে।
-
IF
এবংWHILE
অপারেশন প্রকার -
SUBGRAPH
অপারেন্ড টাইপ এবং সংশ্লিষ্টSUBGRAPH
অপারেন্ড জীবনকাল -
Model
স্ট্রাকচার যাতে প্রধান সাবগ্রাফ এবং রেফারেন্সড সাবগ্রাফের একটি তালিকা থাকে -
Capabilities
কাঠামো যাতেifPerformance
এবংwhilePerformance
থাকে
IDevice.hal
IDevice
রয়েছে, যার পদ্ধতি getSupportedOperations_1_3()
অবশ্যই IF
এবং WHILE
অন্যান্য ক্রিয়াকলাপগুলির থেকে আলাদাভাবে আচরণ করবে৷
IPreparedModel.hal
IPreparedModel
রয়েছে, যার পদ্ধতি execute_1_3()
, executeSynchronously_1_3()
, এবং executeFenced()
একটি ঐচ্ছিক loopTimeoutDuration
আর্গুমেন্ট নেয়।
ড্রাইভার বাস্তবায়ন
একটি নমুনা অপারেশন বাস্তবায়নের জন্য, CpuExecutor::executeIfOperation
এবং CpuExecutor::executeWhileOperation
দেখুন। নমুনা অপারেশন বৈধতা যুক্তির জন্য, validateIfOperation()
এবং validateWhileOperation()
দেখুন।
মনে রাখবেন যে আকৃতি 1
এর TENSOR_INT32
অপারেন্ডগুলিতে গাণিতিক এবং তুলনামূলক ক্রিয়াকলাপগুলিকে সমর্থন করা গুরুত্বপূর্ণ, কারণ এগুলি লুপ কাউন্টার হিসাবে ব্যবহার করা যেতে পারে। একইভাবে, আকৃতি 1
এর TENSOR_BOOL8
অপারেন্ড উত্পাদনকারী অপারেশনগুলি IF
এবং WHILE
শর্তগুলির সাথে ব্যবহার করা উচিত৷
যখন লুপ এক্সিকিউশন টাইমআউট
অসীম লুপগুলি প্রতিরোধ করতে, যদি একটি WHILE
লুপটি IPreparedModel::execute_1_3()
, IPreparedModel::executeSynchronously_1_3()
, বা IPreparedModel::executeFenced()
এর একটি কলে পাস করা loopTimeoutDuration
মানের থেকে বেশি সময় নেয় তবে নির্বাহকে বাতিল করতে হবে। যদি বাদ দেওয়া হয়)।
বৈধতা
কন্ট্রোল ফ্লো পরীক্ষা হল CTS এবং VTS টেস্ট স্যুটের অংশ। আরও তথ্যের জন্য, যাচাইকরণ দেখুন।
, অ্যান্ড্রয়েড 11 থেকে শুরু করে, এনএনএপিআই-তে দুটি নিয়ন্ত্রণ প্রবাহ অপারেশন রয়েছে, IF
এবং WHILE
, যা অন্য মডেলগুলিকে আর্গুমেন্ট হিসাবে নেয় এবং শর্তসাপেক্ষে ( IF
) বা বারবার ( WHILE
) চালায়। এটি এমন মডেল তৈরি করার অনুমতি দেয় যা ইনপুট মানের উপর ভিত্তি করে বিভিন্ন ক্রিয়াকলাপ চালায় বা আনরোল না করে একাধিকবার অপারেশন চালায়। এটি ডায়নামিক RNN এবং seq2seq এর মতো ব্যবহারের ক্ষেত্রে গুরুত্বপূর্ণ।
NN HAL 1.3-এ, মডেলটিতে একাধিক সাবগ্রাফ অন্তর্ভুক্ত করা হয়েছে, যার মধ্যে প্রধান সাবগ্রাফ অন্তর্ভুক্ত রয়েছে যা একটি এক্সিকিউশনের ইনপুট এবং আউটপুট নির্দিষ্ট করার জন্য ব্যবহৃত হয়। একটি সাবগ্রাফ SUBGRAPH
ধরনের অপারেন্ড ব্যবহার করে অন্যান্য সাবগ্রাফ উল্লেখ করতে পারে। ফ্রেমওয়ার্ক একটি নিয়ন্ত্রণ প্রবাহ অপারেশনকে একটি এক্সিলারেটরে পাঠাতে পারে শুধুমাত্র যদি এক্সিলারেটর সেই নিয়ন্ত্রণ প্রবাহ অপারেশন দ্বারা উল্লেখ করা সমস্ত সাবগ্রাফের সমস্ত ক্রিয়াকলাপ সমর্থন করে।
HAL ইন্টারফেস
NN HAL 1.3-এ, নিয়ন্ত্রণ প্রবাহ সম্পর্কিত সংজ্ঞাগুলি types.hal
এ রয়েছে।
-
IF
এবংWHILE
অপারেশন প্রকার -
SUBGRAPH
অপারেন্ড টাইপ এবং সংশ্লিষ্টSUBGRAPH
অপারেন্ড জীবনকাল -
Model
স্ট্রাকচার যাতে প্রধান সাবগ্রাফ এবং রেফারেন্সড সাবগ্রাফের একটি তালিকা থাকে -
Capabilities
কাঠামো যাতেifPerformance
এবংwhilePerformance
থাকে
IDevice.hal
IDevice
রয়েছে, যার পদ্ধতি getSupportedOperations_1_3()
অবশ্যই IF
এবং WHILE
অন্যান্য ক্রিয়াকলাপগুলির থেকে আলাদাভাবে আচরণ করবে৷
IPreparedModel.hal
IPreparedModel
রয়েছে, যার পদ্ধতি execute_1_3()
, executeSynchronously_1_3()
, এবং executeFenced()
একটি ঐচ্ছিক loopTimeoutDuration
আর্গুমেন্ট নেয়।
ড্রাইভার বাস্তবায়ন
একটি নমুনা অপারেশন বাস্তবায়নের জন্য, CpuExecutor::executeIfOperation
এবং CpuExecutor::executeWhileOperation
দেখুন। নমুনা অপারেশন বৈধতা যুক্তির জন্য, validateIfOperation()
এবং validateWhileOperation()
দেখুন।
মনে রাখবেন যে আকৃতি 1
এর TENSOR_INT32
অপারেন্ডগুলিতে গাণিতিক এবং তুলনামূলক ক্রিয়াকলাপগুলিকে সমর্থন করা গুরুত্বপূর্ণ, কারণ এগুলি লুপ কাউন্টার হিসাবে ব্যবহার করা যেতে পারে। একইভাবে, আকৃতি 1
এর TENSOR_BOOL8
অপারেন্ড উত্পাদনকারী অপারেশনগুলি IF
এবং WHILE
শর্তগুলির সাথে ব্যবহার করা উচিত৷
যখন লুপ এক্সিকিউশন টাইমআউট
অসীম লুপগুলি প্রতিরোধ করতে, যদি একটি WHILE
লুপটি IPreparedModel::execute_1_3()
, IPreparedModel::executeSynchronously_1_3()
, বা IPreparedModel::executeFenced()
এর একটি কলে পাস করা loopTimeoutDuration
মানের থেকে বেশি সময় নেয় তবে নির্বাহকে বাতিল করতে হবে। যদি বাদ দেওয়া হয়)।
বৈধতা
কন্ট্রোল ফ্লো পরীক্ষা হল CTS এবং VTS টেস্ট স্যুটের অংশ। আরও তথ্যের জন্য, যাচাইকরণ দেখুন।