أداة عرض سجلّ التتبّع

يمكنك استخدام "عارض التتبُّع" لعرض المخطط الزمني للأحداث التي حدثت أثناء جلسة وضع التقارير. ويعرض هذا التقرير مدّة العمليات التي نفّذها النموذج في أجزاء مختلفة من النظام، مثل المضيف (وحدة المعالجة المركزية) وأحد مسرعات الأداء (وحدة معالجة الرسومات أو وحدة معالجة TPU). يتيح لك ذلك فهم كيفية استخدام النموذج لموارد الأجهزة وتحديد العوامل التي تؤثّر سلبًا في الأداء وتحسين النموذج لتنفيذه بشكل أسرع. تستند واجهة مستخدم "عارض التتبّع" إلى الواجهة المستخدَمة في chrome://tracing، وبالتالي تتطلّب استخدام متصفّح Chrome.

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

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

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

يُجمِّع "عارض التتبُّع" لوحدات معالجة الرسومات الأحداث على المخططات الزمنية لكل شريحة وحدة معالجة رسومات والبثّات ضمنها، في حين ينظِّم الأحداث على المخططات الزمنية لكل شريحة وحدة معالجة رسومات ومقدّمة TPU. وفي كلتا الحالتَين، يعرض "عارض التتبّع" أيضًا الأحداث على المخططات الزمنية لكل سلسلة محادثات لوحدة المعالجة المركزية للمضيف التي تكون مسرعات الأداء متصلة بها.

التفاعل مع "المخطط الزمني"

يوفّر "عارض التتبّع" عدّة أدوات وطُرق للتنقّل في المخطط الزمني وفحصه:

  • التنقّل: يمكنك استخدام اختصارات لوحة المفاتيح التالية:
    • W: تكبير.
    • S: التصغير
    • أ: تحريك أفقي لليسار
    • د: تحريك أفقي لليمين
  • أداة اختيار الأدوات: يمكنك النقر على أداة في أداة اختيار الأدوات أو استخدام اختصار لوحة المفاتيح المقابل:
    • أداة الاختيار (1 أو !): انقر على حدث لاختياره والاطّلاع على تفاصيله في لوحة "التفاصيل". اختَر أحداثًا متعددة باستخدام Ctrl+النقر لاطلاع على ملخص.
    • أداة العرض الشامل (2 أو @): اسحب لتحريك المخطط الزمني أفقيًا أو عموديًا.
    • أداة التكبير/التصغير (3 أو #): اسحب للّمسّك بالتكبير/التصغير على منطقة معيّنة في المخطط الزمني.
    • أداة ضبط الوقت (4 أو $): اسحب لتحديد فاصل زمني. سيتم عرض مدة الفاصل الزمني الذي تم وضع علامة عليه. يمكنك أيضًا استخدام المفتاح 'm' لتمييز اختيار وتحديد إجمالي مدته.
  • التكبير/التصغير إلى الأحداث المحدّدة (f): اختَر حدثًا واحدًا أو أكثر واضغط على المفتاح "f" لتكبير/تصغير هذا الجزء من المخطط الزمني بسرعة. ويُعدّ ذلك مفيدًا لمحاولة التركيز على خطوة تدريب معيّنة.

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

مكونات واجهة "عارض التتبّع"

في ما يلي مكونات واجهة المستخدم الرئيسية في "عارض التتبّع":

  • يمتد المحور الزمني أفقيًا في أعلى الشاشة، ويعرض الوقت بالنسبة إلى بداية التتبُّع.
  • يتم تنظيم المخططات الزمنية حسب الأقسام والمسارات، مع وضع التصنيفات على المحور العمودي سمته اليسار. يمثّل كل قسم عنصر معالجة (مثل عُقدة جهاز أو سلاسل مهام مضيف) ويمكن توسيعه أو تصغيره. ضمن كل قسم، تتوفّر مسارات، وهي مخططات زمنية لأنشطة معيّنة.
  • الأحداث هي الكتل المستطيلة الملونة على مسارات المخطط الزمني، والتي تمثل مدّة عملية أو حدث ميتافيرز مثل خطوة تدريب. لا يحمل لون الأحداث أي معنى محدّد.
  • تعرِض لوحة التفاصيل معلومات إضافية عن الأحداث المحدّدة في لوحة المخطط الزمني، مثل اسمها ووقت بدؤها ومدتها.

الأقسام والمسارات المعتادة

يوفّر "عارض التتبّع" الأقسام والمسارات التالية.

  • قسم واحد لكل عقدة TPU، يتضمّن المقاطع الصوتية التالية:
    • وحدة XLA: برنامج XLA الذي يتم تنفيذه
    • عمليات XLA: تعرِض عمليات XLA HLO التي تم تنفيذها على نواة TPU. تتم ترجمة كل عملية أعلى مستوى في إطار العمل (JAX أو Tensorflow أو PyTorch مثلاً) إلى عملية واحدة أو عدة عمليات XLA، ويتم compiling هذه العمليات بعد ذلك لتشغيلها على وحدة معالجة الموتّرات. عند النقر على عملية XLA، يمكنك الاطّلاع على روابط تؤدي إلى العملية في "عارض الرسوم البيانية"، بالإضافة إلى معلومات إضافية حول العملية، مثل أوقات البدء/الإيقاف والمدة وملف التتبّع لمسار استدعاء الدوال البرمجية (إذا كان إطار العمل والمجمّع يوفّران هذه المعلومات).
    • XLA TraceMe: تعليقات توضيحية يحدّدها المستخدم في رمزه تصف وحدات العمل المنطقية التي يريد تتبُّعها قد يستمر ظهور البيانات هنا حتى إذا لم تُضِف أي تعليقات توضيحية، لأنّه عادةً ما تُضيفها أداة XLA (مثل أحياء الحواجز) أو أداة XProf نفسها (مثل إدخالات التتبّع التي تم إسقاطها).
    • الخطوة: تعرِض مدة خطوات التدريب التي يتم تشغيلها على نواة TPU هذه، إذا تم التعليق التوضيحي عليها بشكل مناسب في برنامج المستخدم أو إطار العمل.
    • عمليات إطار العمل: تعرِض عمليات إطار العمل (JAX أو Tensorflow أو PyTorch، على سبيل المثال) التي يتم تنفيذها على نواة TPU، إذا تم وضع تعليقات توضيحية عليها بشكلٍ مناسب في برنامج المستخدم أو إطار العمل.
    • نطاق اسم إطار العمل: لكل عملية إطار عمل، يتم عرض رسم بياني لمسار تتبع عمود التسلسل. لتبسيط الأمر، لا يظهر هذا المسار إلا لجهاز واحد.
    • رمز المصدر: مسار رمز المصدر الذي يتم تنفيذه، إذا كان متاحًا فيملف الالتفاف.
    • الوحدة المحورية: بالنسبة إلى وحدات TPU، يتم عرض الأحداث التي يتم تنفيذها على الوحدة المحورية إذا كانت متوفّرة في الملف الشخصي.
    • TensorCore Sync Flags: آلية المزامنة على وحدات معالجة Tensor Processing Unit، يتم عرضها إذا كانت متوفّرة في الملف الشخصي.
    • Host Offload (تخفيف الضغط عن المضيف): العمليات التي تنقل البيانات بشكل غير متزامن بين ذاكرة المضيف و ذاكرة المُسرِّع عادةً ما تكون هناك عمليات بدء وإيقاف مقابلة تظهر في سطر عمليات XLA، ما يشير إلى استعداد المُسرِّع لنقل البيانات (على سبيل المثال، وضع علامة "قيد الاستخدام" على مناطق ذاكرة المصدر/الوجهة لمدة النقل). قد يكون هناك صفوف متعددة لتفريغ البيانات من المضيف إذا كانت هناك عمليات تفريغ بيانات متعددة تتم executing في وقتٍ واحد، ما يتطلّب من عارض التتبّع عرض أحداث متعددة بشكلٍ متزامن.
  • قسم واحد لكل عقدة Sparsecore: بعض أجيال وحدات معالجة الموتّرات (مثل تم تجهيز TPU v5p وTPU v6e) بوحدة واحدة أو أكثر من وحدات SparseCore بالإضافة إلى وحدات MXU لكثافة الحوسبة، وسيتم عرض الوحدات والعمليات وTraceMes المرتبطة بهذه النوى في هذا القسم.
  • قسم واحد لكل عقدة وحدة معالجة رسومات، مع مسارات الاختبار التالية:
    • وحدات XLA وعمليات إطار العمل ونطاق اسم إطار العمل والخطوات ورمز المصدر تشبه هذه الأقسام جميعًا أقسام TPU.
    • مقطع صوتي واحد لكل مصدر بيانات، مع تضمين اسم مصدر البيانات أيضًا معلومات عن أنواع العمليات التي تم تنفيذها على مصدر البيانات (Memcpy وCompute وغيرها).
    • لا تتوفّر ميزة XLA TraceMe لوحدات معالجة الرسومات.
    • تظهر عمليات XLA في أقسام وحدة معالجة الرسومات، ولكنّها ليست دقيقة في الوقت الحالي دائمًا، لأنّها مشتقة من بيانات البث. وبالتالي، لا يمكنها أن تأخذ في الاعتبار بشكل كامل نموذج تنفيذ وحدة معالجة الرسومات الذي قد يتضمّن ربطًا بنسبة N:M بين عمليات XLA والنواة الفعلية التي يتم تنفيذها على مجريات مختلفة، وتحديد الجداول الزمنية الديناميكية لمجريات متعددة على وحدات SM المختلفة في الأجهزة.
  • قسم واحد لكل مكوّن (مثل تجمع سلاسل مهام واحد) يتم تشغيله على وحدة المعالجة المركزية لجهاز المضيف، مع مسار واحد لكل سلسلة مهام، في حال تجمعات سلاسل المهام. يمكنك أيضًا في هذا القسم الاطّلاع على عمليات تتبُّع Python إذا تم تفعيلها أثناء جمع الأداء.

يُرجى العِلم أنّ عمليات XLA لوحدات TPU وبيانات البث لوحدات GPU فقط هي التي يتم تحديدها مباشرةً في الملف الشخصي الذي تم جمعه. وجميع الأسطر الأخرى هي "أسطر مشتقة"، ويشمل ذلك معلومات "جانبية" اختيارية يوفّرها المُجمِّع و/أو التعليقات التوضيحية الاختيارية للمستخدم و/أو الأساليب الاستقرائية التي تطبّقها أداة XProf. لذلك، قد تظهر هذه الخطوط المشتقة أو لا تظهر في بعض الملفات الشخصية.

ميزات أخرى

  • يمكنك البحث عن أسماء أحداث معيّنة باستخدام شريط البحث "العثور على أحداث". في الوقت الحالي، لا تبحث هذه الميزة إلا ضمن الفترة الزمنية المرئية على الشاشة، بدلاً من التتبّع الكامل.
  • أحداث التدفق: يؤدي تفعيل هذا الخيار من خلال النقر على الزر "أحداث التدفق" في الشريط العلوي إلى إضافة عروض مرئية، مع ربط الأحداث في سلسلة محادثات أو سطر واحد بأحداث في سطر سلسلة محادثات آخر. على سبيل المثال، قد يكون هناك سهم مرسوم من العملية على المضيف التي تضيف عملًا إلى "المسرّع" أو تطلقه، إلى العملية على "المسرّع" التي تنفّذ هذا العمل. يحدِّد XProf هذه الروابط من خلال مجموعة من التعليقات التوضيحية للمستخدمين والاستراتيجيات المستندة إلى التجربة والخطأ المضمّنة، وتلقّي معلومات ما بعد المعالجة من مكوّنات مختلفة (مثل برامج تشغيل CUPTI ومعرّفات تشغيل النواة ومعلومات وقت تشغيل TPU وما إلى ذلك)
  • يؤدي النقر على عملية XLA إلى عرض معلومات إضافية في لوحة التفاصيل. على سبيل المثال، يرتبط بالعملية في أداة "عارض الرسم البياني". وقد يقدّم أيضًا إشارات إلى رمز المصدر و/أو تتبع تسلسل استدعاء الدوال البرمجية في Python، وإجراء الإطار الذي أدّى إلى إنشاء إجراء XLA هذا، وما إلى ذلك (إذا كان متوفّرًا فيملف الأداء). وقد يعرض أيضًا FLOPS (عدد عمليات النقطة العائمة التي نفّذها الإجراء) والبايت التي وصل إليها الإجراء. يتم الحصول على هذه المعلومات بشكل ثابت من XLA أثناء عملية الترجمة، بدلاً من معلومات وقت التشغيل من الملف الشخصي.