التحكّم في التدفق

بدءًا من Android 11، تتضمّن NNAPI عمليتَي تحكّم في التدفق، هما IF وWHILE، اللتان تستخدمان نماذج أخرى كوسيطات وتنفّذانها بشكل مشروط (IF) أو بشكل متكرّر (WHILE). يتيح ذلك إنشاء نماذج تنفّذ عمليات مختلفة استنادًا إلى قيم الإدخال أو تنفّذ عمليات عدّة مرات بدون فك التكرار. وهذا مهم لحالات الاستخدام، مثل الشبكة العصبية المتكرّرة الديناميكية (RNN) ونموذج seq2seq.

في NN HAL 1.3، يتضمّن النموذج رسومات بيانية فرعية متعددة، بما في ذلك الرسم البياني الفرعي الرئيسي المستخدَم لتحديد مدخلات ومخرجات عملية التنفيذ. يمكن أن يشير الرسم البياني الفرعي إلى رسوم بيانية فرعية أخرى باستخدام معاملات من النوع SUBGRAPH. لا يمكن للإطار إرسال عملية تدفّق تحكّم إلى مسرّع إلا إذا كان المسرّع يتيح جميع العمليات في جميع الرسومات البيانية الفرعية التي تشير إليها عملية تدفّق التحكّم هذه.

واجهات HAL

في NN HAL 1.3، تتوفر التعريفات المتعلّقة بإدارة التدفّق في types.hal.

يحتوي 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().

يُرجى العِلم أنّه من المهم إتاحة عمليات حسابية ومقارنة على معاملات TENSOR_INT32 ذات الشكل 1، لأنّه يمكن استخدامها كعدادات للحلقات. وبالمثل، يجب استخدام العمليات التي تنتج معاملات TENSOR_BOOL8 ذات الشكل 1 مع الشرطين IF وWHILE.

مهلة تنفيذ حلقة WHILE

لمنع حدوث حلقات لا نهائية، يجب إيقاف التنفيذ إذا استغرقت حلقة WHILE وقتًا أطول من قيمة loopTimeoutDuration التي تم تمريرها إلى طلب IPreparedModel::execute_1_3() أو IPreparedModel::executeSynchronously_1_3() أو IPreparedModel::executeFenced() (أو القيمة التلقائية إذا تم حذفها).

التحقُّق

تشكّل اختبارات التحكّم في التدفق جزءًا من حِزم اختبارات CTS وVTS. لمزيد من المعلومات، يُرجى الاطّلاع على التحقّق من الصحة.