7.10. CMSIS-NN

قائمة العوامل التي يمر عليها TFLM هي في معظمها حفنة من العوامل الثقيلة: الالتفاف (convolution) الذي يُمرر شبكة صغيرة من الأوزان المتعلَّمة فوق موتر إدخال ويكتب المجموع الموزون عند كل موضع؛ الالتفاف العميق (depthwise convolution) الذي يفعل الشيء نفسه لكل قناة؛ الطبقات المتصلة بالكامل (fully-connected) التي تجري عمليات ضرب مصفوفي بين متجه من المدخلات ومصفوفة من الأوزان؛ التجميع (pooling) الذي يقلّص الموتر بأخذ القيمة العظمى أو المتوسط على أحياء صغيرة؛ دوال التنشيط (activation functions) مثل ReLU وsigmoid التي تعمل نقطة بنقطة على كل قيمة. يقضي استدلال الرؤية معظم دوراته داخل تلك العوامل القليلة.

لو نُفّذت بالطريقة المباشرة لكانت بطيئة على متحكم دقيق. CMSIS-NN هي مكتبة Arm للعوامل السريعة -- مضبوطة يدوياً بلغة التجميع، ومكمَّمة إلى أعداد صحيحة بقيم int8 وuint8 التي وصفها دخل/خرج الموترات، ومكتوبة باستخدام تعليمات SIMD الخاصة بوحدة المعالجة المركزية. تتيح SIMD -- تعليمة واحدة، بيانات متعددة -- لوحدة المعالجة المركزية تشغيل عملية حسابية واحدة على عدة قيم في الدورة نفسها. ينتج الضرب-والجمع العددي البسيط نتيجة واحدة في كل دورة؛ أما الضرب-والجمع من نوع SIMD فيحزم عدة قيم في سجل عريض وينتجها جميعاً دفعة واحدة.

تمتلك Cortex-M7 الموجودة على H7 وRT1062 امتداد DSP من Arm، الذي يحفظ أربع قيم int8 في سجل بعرض 32 بت وينفّذ ضرباً-وجمعاً على الأربع جميعاً في دورة واحدة. أما Cortex-M55 الموجودة على AE3 فتمتلك Helium -- المعروف رسمياً باسم MVE، أي امتداد المتجهات لطراز M -- الذي يحفظ ست عشرة مساراً من قيم int8 في سجل بعرض 128 بت، أي أربعة أضعاف الإنتاجية لكل دورة. إن Helium مجموعة تعليمات أعرض لوحدة المعالجة المركزية، وليست مسرّعاً؛ أما Ethos-U55 NPU على القالب نفسه فهو المسرّع.

تُربَط إصدارات TFLM المشحونة مع CMSIS-NN، ويوزّع TFLM كل عامل ثقيل إلى نسخة SIMD المناسبة للكاميرا في وقت التشغيل. على AE3 يكون التوزيع أكثر تعقيداً بقليل: فقد مرّ مترجم Vela على النموذج مسبقاً دون اتصال وعلّم الشرائح المتصلة من العوامل المؤهلة لـ NPU -- الرسوم البيانية الفرعية (subgraphs) -- للتوزيع إلى Ethos-U. وعند الاستدلال تعمل تلك الرسوم الفرعية على المسرّع في كتلة واحدة، ويرجع الباقي إلى Helium CMSIS-NN على M55.

تتجاوز عوامل الأرقام العائمة CMSIS-NN كلياً وتعمل عبر نوى TFLM المرجعية المحمولة. عادةً ما تكون فجوة الدقة بين نموذج int8 ونموذج عائم صغيرة؛ أما فجوة الإنتاجية فكبيرة. ولهذا السبب تُكمَّم النماذج المشحونة على الكاميرا إلى int8.