أداة "عارض الذاكرة"
يمكنك استخدام "عارض الذاكرة" لعرض استخدام الذاكرة بشكل مرئي على مدار مدة تشغيل البرنامج. يمكنك الاطّلاع على تفاصيل محتوى الذاكرة في وقت ذروة استخدامها، بما في ذلك تصحيح أخطاء حالات "الذاكرة غير كافية". يمكن أن يساعدك "عارض الذاكرة" في الاطّلاع على استخدام الذاكرة العام ومدى اقتراب عملية الحساب من نفاذ الذاكرة.
جميع المعلومات المعروضة في "عارض الذاكرة" ثابتة تمامًا، ويتم الحصول عليها من compilador XLA، ويتم عرض معلومات التشغيل الديناميكية في أداة ملف تعريف الذاكرة.
الأنظمة الأساسية المتوافقة
وحدات معالجة الموتّرات: متاحة
وحدة معالجة الرسومات: متوافقة
مكونات "عارض الذاكرة"
يتألف "عارض الذاكرة" من عدة مكوّنات رئيسية:
- القوائم المنسدلة لعناصر التحكّم التي تتيح لك تخصيص البيانات التي يتم
عرضها:
- أنواع الذاكرة: تعتمد أنواع الذاكرة المتوافقة على المُسرِّع. بالنسبة إلى وحدات معالجة الرسومات، يتم التركيز على ذاكرة النطاق العالي (HBM)، في حين أنّه بالنسبة إلى وحدات TPU، يمكنك أيضًا الاطّلاع على استخدام الذاكرة على الشريحة، بما في ذلك VMEM و SMEM وCMEM وSync Flags (SFlag) وSparsecore، بالإضافة إلى ذاكرة المضيف.
- الوحدات: هي برامج XLA التي كانت جزءًا من التنفيذ. غالباً ما تكون نقطة البداية الجيدة هي وحدة من المستوى الأعلى، تحمل تصنيفًا مثل "jit_train_step" أو "jit_generate".
- يقدّم قسم النظرة العامة النصية معلومات عالية المستوى، مثل أعلى مساحة تخزين مطلوبة للبرنامج، والتقسيم بين المَعلمات والمتغيّرات المؤقتة، وما إلى ذلك. وهناك تكلفة إضافية تفرضها الحشو، والتي تتطلّب قيودًا على الأشكال المتوافقة من مصفوفات كثافة المعلومات في المسرّعات. إذا كان هذا الحشو يشكّل جزءًا كبيرًا من إجمالي المساحة المخصّصة، قد يشير ذلك إلى فرصة تحسين.
- يوضِّح الرسم البياني الخطي "حجم تخصيص الذاكرة مقارنةً بترتيب البرنامج" استخدام الذاكرة مقارنةً بنقاط البرنامج (تسلسل HLO) على النحو الذي تحدّده أداة التحويل البرمجي.
- يُرجى العلم أنّ محور x ليس الوقت.
- يُبرز الرسم البياني تحديدًا النقطة في البرنامج التي تبلغ فيها وحدة الذاكرة المحددة ذروة استخدامها للذاكرة. لا يدرك أداة تحليل الأداء والأدوات توفّر الوحدات معًا على شريحة/ذاكرة معيّنة. عند تجميع كل وحدة، يُضيف المُجمِّع تعليقات توضيحية إلى الملف الشخصي باستخدام نقطة البدء "الأساسية" لإجمالي الذاكرة المخصّصة (من خلال الوحدات التي تم تجميعها قبل هذه الوحدة)، ويحتسِب القيمة صعودًا وهبوطًا من هناك مع حدوث عمليات تخصيص وعمليات إلغاء تخصيص إضافية. ومع ذلك، لا يتم تسجيل أي عمليات تخصيص مستقبلية من خلال وحدات أخرى تم تجميعها قبل التنفيذ، لذا يجب أخذ ذلك في الاعتبار أثناء تصحيح أخطاء حالات "الذاكرة غير كافية".
تُقسِّم الرسوم البيانية للمخازن المؤقتة في أسفل الصفحة استخدام الذاكرة في ذروة نقطة الاستخدام في البرنامج (يُشار إليها بالخط العمودي في الرسم البياني لاستخدام الذاكرة). هناك ثلاثة رسوم بيانية تعرض جميعها مجموعة الفواصل التي خصصها البرنامج، ولكن تم ترتيبها بثلاث طرق مختلفة:
- حسب ترتيب البرنامج: الترتيب الذي تمّ فيه إنشاء العناصر أثناء تنفيذ البرنامج، مع ظهور العناصر الأقدم على يمين الصفحة
- حسب الحجم: تظهر في يمين الصفحة التطبيقات التي لها أكبر تأثير في نقطة ذروة استخدام الذاكرة.
حسب مقدار المساحة الفارغة التي تفرضها: تظهر الأجهزة الأكثر "عدم كفاءة" من ناحية الأجهزة على يمين الصفحة.
يُرجى العِلم أنّ ألوان وحدات التخزين المؤقت لا تحمل أي معنى معيّن.
يؤدي تمرير مؤشر الماوس فوق مساحة تخزين مؤقت في أيّ من الرسوم البيانية الثلاثة إلى عرض اثنين من العناصر التالية:
- تراكب على الرسم البياني الخطي لاستخدام الذاكرة بلون يتطابق مع بطاقة المخزن المؤقت، يشير إلى مدة استخدام هذا المخزن المؤقت، أي عمود أفقي تشير حافتاه اليمنى واليسرى إلى نقاط تخصيص الذاكرة وإلغاء تخصيصها، ضمن ترتيب البرنامج. يمثّل ارتفاع الشريط الأفقي الحجم النسبي للمساحة المتوفّرة في المخزن المؤقت المحدّد مقارنةً بحجم المساحة القصوى المخصّصة.
- بطاقة تفاصيل مخزن مؤقت منفصلة، عادةً على الجانب الأيمن، تتضمّن تفاصيل
عن العملية المحدّدة حسب الاقتضاء تتضمّن البطاقة النموذجية
المعلومات التالية:
- الاسم: اسم عملية XLA، والذي يمكنك البحث عنه في "أداة عرض الرسم البياني" أو "أداة عرض التتبّع".
- الحجم: حجم تخصيص ذاكرة التخزين المؤقت، مع الحشو وبدونه
- الشكل: يصف ترتيب المصفوفة ومقدارها ونوع بياناتها التي تتألف من N سمة.
- اسم عملية إطار العمل: تعرِض هذه السمة اسم عملية إطار العمل المرتبط بهذه التخصيص.
- نوع التخصيص: يصنّف عمليات تخصيص المخزن المؤقت إلى الأنواع التالية: المَعلمة والإخراج والمستوى المحلي للمَعلمة والمؤقت (مثل تخصيص المخزن المؤقت داخل عملية دمج).