بنية XLA

إنّ XLA (الجبر الخطي السريع) هو برنامج تجميع لتعلم الآلة (ML) يحسّن الجبر الخطي من خلال تحسين سرعة التنفيذ واستخدام الذاكرة. تقدم هذه الصفحة نظرة عامة مختصرة على أهداف وهيكل برنامج التحويل البرمجي XLA.

الأهداف

في الوقت الحالي، تدعم تقنية XLA العديد من الواجهات الأمامية لإطار عمل تعلُّم الآلة (بما في ذلك PyTorch وTensorFlow وJAX) وهي جزء من مشروع OpenXLA الذي يتألّف من منظومة متكاملة من تكنولوجيات التجميعات مفتوحة المصدر لتعلُّم الآلة والتي تم تطويرها بالتعاون من خلال المؤسسات الرائدة في مجال أجهزة وبرامج تعلُّم الآلة. قبل إنشاء مشروع OpenXLA، تم تطوير XLA داخل مشروع TensorFlow، لكن تظل الأهداف الأساسية كما هي:

  • تحسين سرعة التنفيذ: يمكنك تجميع صور فرعية لتقليل وقت تنفيذ العمليات قصيرة الأجل والتخلص من النفقات العامة من وقت التشغيل، ودمج العمليات المتدفقة لتقليل النفقات العامة للذاكرة، وتخصص أشكال الأوتار المعروفة للسماح بالانتشار المستمر بشكل أقوى.

  • تحسين استخدام الذاكرة تحليل استخدام الذاكرة وجدولته، والقضاء على العديد من المخازن المؤقتة للتخزين المؤقت.

  • تقليل الاعتماد على العمليات المخصّصة: عدم الحاجة إلى العديد من العمليات المخصّصة عن طريق تحسين أداء العمليات منخفضة المستوى التي يتم دمجها تلقائيًا لمطابقة أداء العمليات المخصّصة التي تم دمجها يدويًا في الأصل.

  • تحسين إمكانية النقل: اجعل من السهل نسبيًا كتابة خلفية جديدة لأجهزة جديدة، بحيث يمكن تشغيل جزء كبير من نماذج تعلُّم الآلة بدون تعديل على هذه الأجهزة. وهذا يتناقض مع النهج المتّبَع في تخصص العمليات المتجانسة الفردية للأجهزة الجديدة، الأمر الذي يتطلب إعادة كتابة النماذج للاستفادة من هذه العمليات.

آلية العمل

يستعين المحول البرمجي XLA برسومات بيانية نموذجية من إطارات عمل تعلُّم الآلة المحدّدة في StableHLO ويجمعها في تعليمات آلة للبِنى الأساسية المختلفة. يحدد StableHLO مجموعة عمليات ذات إصدارات مختلفة (HLO = عمليات عالية المستوى) توفر طبقة إمكانية النقل بين إطارات عمل ML وبرنامج التحويل.

بشكل عام، تتضمّن عملية التجميع التي تحوِّل الرسم البياني للنموذج إلى ملف تنفيذي محسَّن للاستهداف ما يلي:

  1. تُجري XLA العديد من تصاريح التحسين والتحليل المدمجة على الرسم البياني SttableHLO والتي تكون مستقلة عن الاستهداف، مثل CSE ودمج العمليات بشكل مستقل عن الاستهداف وتحليل المخزن المؤقت لتخصيص ذاكرة وقت التشغيل من أجل العمليات الحسابية. خلال مرحلة التحسين هذه، تقوم XLA أيضًا بتحويل لهجة StableHLO إلى لهجة HLO الداخلية.

  2. يرسل XLA حساب HLO إلى الخلفية لإجراء مزيد من التحسينات على مستوى HLO، هذه المرة مع وضع المعلومات والاحتياجات الخاصة بالهدف في الاعتبار. على سبيل المثال، قد تُجري الواجهة الخلفية لوحدة معالجة الرسومات عمليات دمج لعمليات تكون مفيدة على وجه التحديد لنموذج برمجة وحدة معالجة الرسومات، وتحدّد كيفية تقسيم العملية الحسابية إلى عمليات بث. في هذه المرحلة، قد تطابق الخلفيات أيضًا نمطًا مع عمليات أو مجموعات معينة منها مع استدعاءات المكتبة المحسّنة.

  3. وتنفِّذ الواجهة الخلفية بعد ذلك عملية إنشاء رموز خاصة بالهدف. إنّ الخلفيات الخلفية لوحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات المضمّنة في XLA تستخدم تقنية LLVM للأشعة تحت الحمراء ذات المستوى المنخفض والتحسين وإنشاء الرموز. وتطلق هذه الخلفيات نظام LLVM IR اللازم لتمثيل طريقة حساب HLO بطريقة فعّالة، ثم يتم استدعاء LLVM لإخراج رمز أصلي من LLVM IR.

وفي هذه العملية، يكون برنامج التجميع XLA معياريًا، أي أنّه يسهل وضعه في خلفية بديلة لاستهداف بعض بنية HW الجديدة. تتوافق الواجهة الخلفية لوحدة معالجة الرسومات حاليًا مع وحدات معالجة الرسومات NVIDIA عبر الواجهة الخلفية LLVM NVPTX. وتدعم الواجهة الخلفية لوحدة المعالجة المركزية العديد من ISA في وحدة المعالجة المركزية.