تسريع الأجهزة باستخدام LiteRT Next

تسريع الأجهزة هو استخدام أجهزة كمبيوتر متخصّصة لتحسين سرعة تنفيذ نموذج الذكاء الاصطناعي وكفاءته. بالنسبة إلى LiteRT، يشمل ذلك في المقام الأول استخدام وحدات معالجة الرسومات (GPU) أو وحدات المعالجة العصبية (NPU) لإجراء الاستنتاجات المستندة إلى الذكاء الاصطناعي، بالإضافة إلى تعليمات المتجهات لوحدات المعالجة المركزية (CPU) المخصّصة للأغراض العامة.

تتيح LiteRT تسريع الأجهزة من خلال استخدام TFLite المفوّضين، الذين يتولّون أجزاء من الرسم البياني LiteRT من خلال استبدال عملياتهم الخاصة في الرسم البياني. تحسِّن أداة LiteRT Next من هذه المعالجة من خلال معالجة تسريع الأجهزة من خلال خطوتَين:

  1. التجميع: تجهيز نموذج للتشغيل على أجهزة معيّنة
  2. الإرسال: يمكنك تنفيذ عمليات محدّدة على الأجهزة ذات الصلة.

تعدّل مرحلة الترجمة نموذج LiteRT باستخدام واجهة جديدة توفّر مرونة أكبر من خلال مكونات الترميز الإضافية. يتم تجميع النموذج مسبقًا (AOT)، قبل تنفيذ الرسم البياني، ويتم تخصيص رسم بياني معيّن ليتم تشغيله على الجهاز.

أنواع برامج التسريع

يوفّر LiteRT ثلاثة أنواع من المسرّعات: وحدة المعالجة العصبية (NPU) ووحدة معالجة الرسومات (GPU) ووحدة المعالجة المركزية (CPU).

  • تتيح ميزة تسريع وحدة المعالجة العصبية (NPU) استخدام أجهزة مخصّصة مدمجة في واجهة واحدة. يتوفّر دعم وحدة المعالجة العصبية من خلال برنامج استخدام المنتج قبل إطلاقه.
  • تسريع وحدة معالجة الرسومات متوافق مع الأجهزة المزوّدة بتقنية WebGL وOpenCL.
  • تتوافق ميزة تسريع وحدة المعالجة المركزية مع مجموعة متنوعة من المعالجات من خلال استخدام مكتبة XNNPack. هذا هو مستوى التسريع التلقائي وهو متاح دائمًا.

يمكن دمج هذه المسرعات للحصول على أفضل أداء ممكن عندما لا تتوفّر بعض العمليات المعقدة على جهاز معيّن. عندما تتنافس المُسرِّعات في تنفيذ عملية معيّنة، يستخدم LiteRT الترتيب التالي للأولوية: وحدة المعالجة العصبية (NPU)، وحدة معالجة الرسومات (GPU)، وحدة المعالجة المركزية (CPU).

تسريع وحدة معالجة الرسومات

باستخدام ميزة تسريع وحدة معالجة الرسومات في LiteRT Next، يمكنك إنشاء مخازن ذاكرة مؤقتة للدخل والخرج متوافقة مع وحدة معالجة الرسومات، وتحقيق ميزة "عدم إجراء أي نسخ" لبياناتك في ذاكرة وحدة معالجة الرسومات، وتنفيذ tasks بشكل غير متزامن لزيادة التوازي إلى أقصى حد. يستخدم LiteRT Next مفوّضًا جديدًا و محسّنًا لوحدة معالجة الرسومات، لا يوفّره LiteRT.

يتطلّب تشغيل النماذج على وحدة معالجة الرسومات باستخدام LiteRT إنشاء مفوّض صريح وطلبات برمجية لوظائف وتعديلات على الرسم البياني. باستخدام LiteRT Next، ما عليك سوى تحديد المُسرِّع:

// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
    CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));

لمزيد من المعلومات عن تسريع وحدة معالجة الرسومات، اطّلِع على مقالة تسريع وحدة معالجة الرسومات باستخدام ميزة "تسريع LiteRT".

تسريع وحدة المعالجة العصبية

يوفّر LiteRT Next واجهة موحّدة للاستفادة من وحدات المعالجة العصبية بدون إجبارك على التنقل بشكلٍ فردي في الأدوات المُجمّعة أو أوقات التشغيل أو تبعات المكتبة الخاصة بالمورّد. من خلال استخدام LiteRT Next لتسريع وحدة المعالجة العصبية (NPU)، يمكن تجنُّب العديد من الصعوبات المتعلّقة بالمورّد والجهاز، وتحسين الأداء في الوقت الفعلي وعمليات الاستنتاج باستخدام النماذج الكبيرة، والحدّ من عمليات نسخ الذاكرة باستخدام ميزة "عدم إجراء أي نسخ" لأجهزة التخزين المؤقت.

يتضمن استخدام وحدات المعالجة العصبية (NPUs) مع LiteRT تحويل نموذج وتجميعه باستخدام Play لأجل الذكاء الاصطناعي على الجهاز (PODAI) ونشر النموذج باستخدام حزمة Play AI ووحدة الميزات.