نموذج التكلفة في الجانب الأيسر من الصفحة


النص المختصر:

تصف هذه الصفحة التفاصيل الداخلية لنموذج التكلفة الذي يستخدمه Latency Hiding Scheduler. إذا كنت مهتمًا بضبط النموذج، انتقِل مباشرةً إلى قسم "الضبط".

مجدول إخفاء وقت الاستجابة (LHS) هو عملية تمرير للمترجم البرمجي تجدول الرسم البياني الموجّه غير الدوري (DAG) الخاص بـ HLO بطريقة تقلّل من وقت التنفيذ.

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


جداول الأداء – هيئات إدارة حقوق الملكية الفكرية

يتألف جدول الأداء من مكوّنين رئيسيَّين: أداة جمع بيانات وأداة استيفاء.

المجمِّع

أداة التجميع هي أداة C++ مسؤولة عن إنشاء جداول الأداء للعمليات الجماعية. ويقيس أداء عمليات HLO الفردية (مثل all-gather وall-reduce) على مستوى مساحة معلَمات محددة بشكل ثابت.

كيفية العمل

تنفّذ الأداة عملية مسح على نطاق من العمليات الجماعية وأحجام النقل ومخططات النقل لمجموعة معيّنة. يستخدم هذا البرنامج البنية الأساسية الحالية لتشغيل HLO على عدة مضيفين وبيانات ExecutionProfile لتشغيل HLO الذي تم إنشاؤه وجمع مقاييس الأداء.

مَعلمات جمع البيانات

يتم جمع جداول وقت الاستجابة لمنتج مشترك من المَعلمات التالية:

  • النوع الجماعي:
    • all-reduce
    • all-gather
    • reduce-scatter
  • حجم النقل:
    • مقياس لوغاريتمي من 1024 بايت إلى 2 غيغابايت (مثلاً ‫1024 بايت و2048 بايت و4096 بايت وما إلى ذلك)
  • مخطط النقل:
    • rail-aligned
    • non-rail-aligned

يتم تنفيذ عملية المسح هذه للمجموعات داخل العقدة التي تضم جهازَين و4 أجهزة و8 أجهزة.

الناتج

نتيجة عملية جمع البيانات هي جدول وقت استجابة بتنسيق .pbtxt (حوالي 116 كيلوبايت لكل منصة).

Interpolator

المُقحِم هو مكوّن المُجمِّع الذي يستخدم جداول الأداء التي تم إنشاؤها لتقديم تقديرات وقت التشغيل أثناء التجميع.

بنية البيانات الداخلية

عند بدء التشغيل، تعالج أداة Interpolator جدول الأداء وتحوّله إلى خريطة. تستخدم هذه الخريطة مجموعة من (collective_type, transfer_scheme) كـ مفتاح.

القيمة المرتبطة بكل مفتاح هي مستوى إقليدي ثنائي الأبعاد. يصنّف هذا المستوى معدّل نقل البيانات على الشبكة (الذي يقيسه Collector) استنادًا إلى محورَين:

  1. حجم عملية النقل
  2. عدد الأجهزة المعنيّة

البحث واحتساب معدل التغيّر في الصور المتحركة

عندما يصادف المترجم عملية جماعية، ينفّذ Interpolator الخطوات التالية:

  1. يحدّد هذا المعرّف مستوى نقل البيانات الصحيح الثنائي الأبعاد باستخدام (collective_type, transfer_scheme) العملية كمفتاح للخريطة.
  2. بعد ذلك، تستخدم استرجاعًا بمتوسط مرجّح (استنادًا إلى المسافة الإقليدية) ضمن هذا المستوى الثنائي الأبعاد، باستخدام (transfer_size, num_devices) للعملية كنقطة طلب البحث.
  3. نتيجة عملية البحث هذه هي قيمة معدّل نقل البيانات على الشبكة واحدة وفريدة.

السبب: معدل نقل البيانات والاستقراء الخارجي

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

إذا كانت جداول وقت الاستجابة تسجّل تشبّع نطاق الشبكة الترددي عند حجم إجمالي S، سيتم اعتبار معدل النقل T في هذه الحالة هو الحد الأقصى. بالنسبة إلى أي مجموعة جديدة بحجم S' > S، يمكن تقدير وقت التشغيل على النحو التالي:

\[\text{EstimatedTime}(S') = \frac{S'}{T_{\text{saturated} } }\]

ويسمح ذلك للنموذج بتقدير الأداء لمجموعات بأي حجم، حتى تلك التي تتجاوز الحد الأقصى البالغ 2 غيغابايت الذي يقيسه Collector.

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

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


جداول الأداء – مقاييس GEMM

على غرار نظام المجموعات، تتوفّر جداول وقت الاستجابة في GEMM من خلال مكوّنَين، هما جامع ومستكمِل.

المجمِّع

أداة جمع البيانات هي أداة C++ تحسب جداول الأداء لعمليات ضرب المصفوفات العامة (GEMM). يقيس هذا المقياس أداء عمليات ضرب المصفوفات على مستوى عملية dot في HLO.

كيفية العمل

تجري الأداة عملية بحث شاملة في مساحة ثابتة من سمات GEMM (الدفعة وسمتان غير متناقضتين وسمة واحدة متناقضة) وأنواع البيانات.

  • أنواع البيانات التلقائية: LHS = bf16,f32 وRHS = bf16,f32 وOUT = bf16,f32
  • البنية الأساسية: يعيد استخدام أداة تحليل الأداء HLO op.

مَعلمات التجميع

يتم جمع جداول وقت الاستجابة لناتج ضرب السمات التالية:

  • batch: {1, 2, 4}
  • م (غير متعاقد): {256, 512, ..., 4096}
  • n (غير متعاقد): {256, 512, ..., 4096}
  • k (التعاقد): {256, 512, ..., 4096}

الإخراج والتخزين

تؤدي عملية المسح الكامل إلى إنشاء جدول وقت استجابة .pbtxt، ويكون هذا الجدول جاهزًا للاستخدام من قِبل أداة الاستيفاء.

Interpolator

المُقحِم هو مكوّن المُترجم الذي يستخدم الجداول التي تم إنشاؤها لتقدير أداء GEMM.

السبب: تشبُّع عمليات الفاصلة العائمة في الثانية

تتيح جداول وقت الاستجابة التي تم جمعها للمستكمِل إعادة إنشاء عمليات الفاصلة العائمة في الثانية لكل إدخال:

\[\text{FLOPS} = \frac{2 \times b \times m \times n \times k}{\text{runtime} }\]

من الملاحظات الأساسية أنّ FLOPS تتشبّع عند نقطة معيّنة، أي أنّ الأجهزة تبلغ ذروة FLOPS بعد شكل مصفوفة معيّن. ويتيح هذا التشبع استخدام طريقة الاستقراء نفسها المستخدَمة في المجموعات.

البحث واحتساب معدل التغيّر في الصور المتحركة

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


نموذج التكلفة التحليلية - شبكة توصيل المحتوى

نموذج التكلفة الجماعية على شكل حرف S

نموذج المنحنى على شكل S هو نموذج تحليلي بالكامل لسطح شبكة.

نظرة عامة

تم تصميم النموذج لتقدير أداء العمليات الجماعية استنادًا إلى مجموعة من خصائص الشبكة الثابتة.

مدخلات النموذج

يتطلّب النموذج فئتَين من المدخلات:

  1. خصائص الشبكة الثابتة (يحدّدها المستخدم):

    • تكلفة الإطلاق الجماعي
    • سرعة بطاقة الشبكة
    • مدة الإرسال والاستقبال (RTT)

    تكتشف XLA تلقائيًا إحدى المنصات وتستخدم قيمًا لأكثر البُنى شيوعًا. ويمكن للمستخدم ضبط هذه الخصائص. راجِع قسم الضبط لمعرفة التفاصيل.

  2. مدخلات كل مجموعة:

    • النوع الجماعي (مثلاً AllGather، ReduceScatter)
    • حجم عملية النقل
    • عدد العُقد المشاركة في الاتصال

التكامل

تم دمج نموذج المنحنى S في XLA:GPU ويتم استخدامه على Hopper وBlackwell.


نموذج التكلفة التحليلية - عمليات الدمج

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


التناغم التلقائي

يمكن ضبط نموذج المنحنى على شكل حرف S من خلال إصدار علامات XLA الصحيحة. يجب أن يكون الإعداد التلقائي مناسبًا في معظم الحالات، ولكن يمكن التحكّم في النموذج في حالات أخرى.

export NIC_SPEED_GBPS=... # NIC speed per GPU in Gigabytes
export GPUS_PER_NODE=... # Num of GPUs per cluster interconnected with fast network (e.g. NVLINK)
export XLA_FLAGS=--xla_gpu_analytical_latency_estimator_options="nic_speed_gbps=$NIC_SPEED_GBPS,gpus_per_node=$GPUS_PER_NODE"