تقنية

توازي خط الأنابيب: لماذا تنتظر بعض المراحل؟

أربع وحدات مرتبة تبين دخول ثلاث دفعات صغيرة إلى مرحلتين، مع تزامن العمل على دفعتين مختلفتين في الوحدتين الوسطيتين
مخطط من إعداد بحر العلوم؛ الجدول المفترض يستبعد النقل والمرور الخلفي.

توازي خط الأنابيب والدفعات الصغيرة يرتب أجزاء مختلفة من النموذج لتعمل على دفعات مختلفة في وقت واحد، مع بقاء اعتماد كل دفعة على ناتج المرحلة السابقة. يصف بحث GPipe هذا التداخل. [1]

الخلاصة السريعة

اعرض جدول المراحل والدفعات بدل الاكتفاء بعدد الأجهزة؛ التداخل المفيد لا يلغي بداية الانتظار ونهاية إفراغ المسار.

  • يقسم GPipe الدفعة إلى دفعات أصغر تمر عبر أجزاء على مسرعات مختلفة؛ يمكن أن تعمل الأجزاء على دفعات مختلفة بالتزامن. [1]
  • نفترض مرحلتين على جهازين وثلاث دفعات، وزمنًا واحدًا لكل مرحلة ودفعة، مع نقل فوري وعمل واحد لكل مرحلة؛ جدول المرور الأمامي ينتهي بعد أربع وحدات.
  • تعمل كل مرحلة ثلاث وحدات من الأربع، فتكون النسبة 75% في نافذة تمريننا؛ البداية والنهاية تمنعان الامتلاء طوال النافذة.
  • الجدول يستبعد المرور الخلفي والتواصل الفعلي؛ GPipe يجمع تدرجات الدفعات الصغيرة قبل تحديث نهاية الدفعة، فلا نعد كل دفعة صغيرة تحديثًا مستقلًا. [1]

المرحلة ثابتة والدفعة التي تعالجها تتغير

الفكرة الموثقة تسمح لمسرعات مختلفة بمعالجة دفعات صغيرة مختلفة في الوقت نفسه، مع أجزاء متتابعة من الشبكة. يشير البحث أيضًا إلى فترات خمول تدخلها بداية المسار ونهايته. [1]

نسمي المرحلتين أ وب، ونضع كل واحدة على جهاز منفصل. كل دفعة تمر بأ ثم ب. لن تتحول المرحلة أ إلى ب لأنها استقبلت الدفعة الثانية؛ الذي يتغير هو هوية الدفعة قيد المعالجة.

لدينا ثلاث دفعات صغيرة مرقمة 1 و 2 و 3. نفترض أن كل زيارة لمرحلة تستغرق وحدة زمنية واحدة، وأن النقل فوري وأن المرحلة لا تعالج زيارتين معًا. نعلن هذه الشروط قبل حساب أي مدة، ونقتصر على المرور الأمامي.

تابع أربع وحدات في جدول واحد

في الوحدة الأولى تعمل أ على الدفعة 1، وتنتظر ب. في الثانية تنتقل 1 إلى ب، بينما تبدأ أ الدفعة 2. في الثالثة تعمل ب على 2 وأ على 3. في الرابعة تنهي ب الدفعة 3، وتكون أ قد أكملت عملها.

لم تستخدم ب الدفعة 2 قبل أن تنتهي أ منها. التداخل بين أ مع الدفعة 2 وب مع الدفعة 1 يخص دفعتين مختلفتين؛ لا يمحو ترتيب أ ثم ب لكل دفعة بعينها.

لدينا ست زيارات، لكنها ليست ست وحدات من الزمن المنقضي في هذا الجدول. زيارتان تقعان معًا في الوحدتين الثانية والثالثة. وإذا منعنا كل تداخل وأكملنا أ ثم ب لكل دفعة بالتتابع، نحتاج ست وحدات تحت الأزمنة نفسها.

الوحدةالمرحلة أالمرحلة ب
1دفعة 1انتظار
2دفعة 2دفعة 1
3دفعة 3دفعة 2
4انتهتدفعة 3

وقت الملء والإفراغ له مقام محدد

عملت أ ثلاث وحدات، وعملت ب ثلاثًا. نقسم عمل كل واحدة على نافذة المثال، وهي أربع وحدات: 3 ÷ 4 = 0.75، أي 75%. لا نقسم على ثلاث لأنها عدد الدفعات وليست طول النافذة.

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

ولم نفترض أن مرحلتين غير متوازنتين تستغرقان وحدة واحدة فعلًا. زمن مرحلة أطول أو نقل غير فوري يغير الجدول. النسبة التي حسبناها تخص تعريفنا، ولا تصف انشغال وحدة معالجة رسومية قسناه.

أين يقع التحديث في تدريب كامل؟

في GPipe الموصوف تُحسب التدرجات لكل دفعة صغيرة، ثم تجمع وتطبق عند نهاية الدفعة الأكبر، مع المعاملات نفسها للمرورين المتعلقين بها. [1]

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

قبل تفسير جدول تشغيل، اسأل أي مرور يشمله وأين يبدأ وينتهي وكيف حسب النقل والتحديث. هذه المعلومات تجعل كلمة «توازي» قابلة للفهم؛ مجرد رؤية جهازين يعملان في لقطة لا تكشف مدة الدفعة أو جودة التدريب.

المصادر ومتابعة القراءة

  1. GPipe original paper (يفتح في نافذة جديدة)arxiv.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.