أداة تحليل خطوط الأسطح

تقدّم أداة "تحليل Roofline" نموذجًا بصريًا بسيطًا للأداء يمكنك استخدامه لفهم القيود الأساسية للأجهزة التي تؤثّر في أداء برنامجك. ويركز على وجه التحديد على ما إذا كان البرنامج مرتبطًا بالذاكرة أو بالحساب، وعلى مدى قرب أداء البرنامج من القمة النظرية لأداء الأجهزة، والتي يتم تمثيلها على شكل "خطّ أقصى أداء".

الأنظمة الأساسية المتوافقة

وحدة معالجة الموتّرات: متوفّرة

وحدة معالجة الرسومات: متوافقة (في إصدار تجريبي)

ما هو مخطّط "الخطوط العلوية للبناء"؟

يعرض الرسم البياني لخطّ السقف العلاقة بين كثافة العمليات (FLOPS لكل بايت يتم الوصول إليه) وعدد FLOPS الذي تم تحقيقه في الثانية.

\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]

يتم تشكيل شكل "السقف" من خلال الحد الأدنى من FLOPS القصوى والأداء الممكن تحقيقه استنادًا إلى معدل نقل البيانات في الذاكرة وكثافة العمليات. تشير نقطة القمة إلى الحد الأدنى من كثافة العمليات المطلوبة لتحقيق الحد الأقصى من FLOPS.

يمكنك الاطّلاع على مزيد من المعلومات عن نماذج Roofline في مقالة Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures، أو في موضوع نموذج Roofline على Wikipedia.

تفسير الرسم البياني لخطّ الطاقة القصوى

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

  • إذا كانت نقطة بيانات تقع على الجزء المائل من الحد الأقصى، من المرجّح أن يكون الأداء محدودًا بسعة نقل البيانات في الذاكرة (مرتبط بالذاكرة). من المحتمل أن يؤدي زيادة كثافة العمليات (تنفيذ المزيد من العمليات الحسابية لكل بايت من البيانات المستخدَمة) إلى تحسين الأداء.
  • إذا كانت نقطة البيانات تقع على الجزء المستوٍ من الحد الأقصى، من المرجّح أن يكون الأداء محدودًا بقدرة الحوسبة (الحوسبة المحدودة). في هذه الحالة، قد لا يؤدي زيادة كثافة العمليات إلى تحسينات مهمة في الأداء ما لم يكن بالإمكان استخدام الحد الأقصى من FLOPS للأجهزة بشكلٍ أفضل.
  • تشير المسافة بين نقطة بيانات وخطّ السقف إلى إمكانية تحسين الأداء. يشير اتّباع مسافة أكبر إلى أنّ هناك فرصًا لتحسين البرنامج للاستفادة بشكل أفضل من إمكانات الأجهزة.

مكونات الواجهة

تتضمّن واجهة أداة تحليل Roofline عدة مكوّنات رئيسية:

  • يصف قسم "معلومات الجهاز" مواصفات الأجهزة، ويتم استخدامها لرسم "حدود الأداء" بشكل ثابت على الرسم البياني.
  • رسم بياني لخطّ أقصى الأداء على مستوى البرنامج يتضمّن نقاط بيانات تتوافق مع ما يلي:
    • إجمالي مدة الملف الشخصي
    • إجمالي مدة الملف الشخصي، ولكن مع بيانات FLOPS/ثانية المستمدة من عدادات أداء الأجهزة بدلاً من نماذج التكلفة التلقائية التي يحتسِبها compilador XLA
    • متوسّط الخطوات الكاملة التي تم تنفيذها خلال مدّة الملف الشخصي (لمهام التدريب، يمكنك تجاهل مصطلحات الخطوة لمهام التنبؤ).
    • كل خطوة كاملة تم تنفيذها خلال مدة الملف الشخصي (لوظائف التدريب، يمكنك تجاهل مصطلحات الخطوة لوظائف الاستنتاج).
  • يتضمّن الرسم البياني لخطوط الأسطح أيضًا الميزات التالية:
    • يمكنك اختيار تضمين أو استبعاد عمليات الإدخال/الإخراج باستخدام القائمة المنسدلة المقدَّمة.
    • يؤدي تمرير مؤشر الماوس فوق أيّ من نقاط البيانات في الرسم البياني إلى عرض معلومات إضافية تتعلّق بالموضوع، مثل أرقام معدل نقل البيانات لمختلف الذكريات، ومقدار الوقت الذي تمّ إنفاقه، وما إلى ذلك.
  • جدول إحصاءات على مستوى البرنامج يقدّم تفاصيل إضافية لكل نقطة بيانات، مثل الحد الأقصى للاستخدام المئوي للذاكرة والحد الأقصى للنسبة المئوية لعدد عمليات FLOP في الثانية وما إلى ذلك
  • رسم بياني ثانٍ لخطّ السقف يقدّم معلومات أكثر دقة، مع نقاط بيانات يتمّ تمثيلها لأكثر 1, 000 عملية تستغرق وقتًا طويلاً خلال فترة التحليل:
    • كما هو الحال مع الرسم البياني لحدود الأداء على مستوى البرنامج، يؤدي تمرير مؤشّر الماوس فوق كل نقطة بيانات إلى عرض معلومات إضافية عن هذه العملية.
    • يمكنك تخصيص نقاط البيانات المعروضة على الرسم البياني بالطُرق التالية:
      • تضمين/استبعاد عمليات الإدخال والإدراج من خلال قائمة منسدلة
      • الفلترة حسب فئات معيّنة من العمليات
      • الفلترة للعمليات المرتبطة بمورد معيّن
      • الفلترة بحثًا عن عملية مُسمّاة معيّنة
  • جدول إحصاءات ثانٍ، مشابه للجدول على مستوى البرنامج، يقدّم تفاصيل إضافية لكل نقطة بيانات

في جميع الأقسام الموضّحة أعلاه، تتوفّر الذكريات التالية:

  • بالنسبة إلى وحدات TPU: ذاكرة HBM وVMEM وCMEM (وحدة TPU من الجيل الرابع فقط).
  • بالنسبة إلى وحدات معالجة الرسومات: HBM وL1/SharedMem
  • لا تظهر الخطوط المقابلة في الرسم البياني إلا إذا كانت هناك أي عمليات خلال مدة الملف الشخصي مرتبطة بهذه الذكرى. على سبيل المثال، إذا كانت جميع العمليات مرتبطة بوحدة HBM أو بالمعالجة، لن تظهر لك أسطر لوحدة VMEM أو CMEM.