قدمت Google اقتراحًا إلى Linux لتحسين نقل بيانات الشبكة بين الأجهزة

تكس ، تعويذة نواة لينكس

نواة Linux هي العمود الفقري لأنظمة تشغيل Linux (OS) ، وهي الواجهة الأساسية بين أجهزة الكمبيوتر وعملياته.

مؤخرا اندلعت الأخبار ذلك قدمت جوجل اقتراحا من خلال القوائم البريدية لمطوري Linux kernel ، لنقل بيانات الشبكة بين الأجهزة.

الاقتراح على هذا النحو هو في تنفيذ الآلية ذاكرة الجهاز TCP (devmem TCP) ، والذي يسمح بنقل البيانات مباشرة عبر الشبكة من ذاكرة بعض الأجهزة إلى ذاكرة الأجهزة الأخرى ، دون نسخ وسيط لهذه البيانات في المخازن المؤقتة الموجودة في ذاكرة النظام المضيف.

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

بالإضافة إلى ذلك يذكر أن يؤدي استخدام مسرعات التعلم الآلي إلى زيادة كبيرة في كمية المعلومات المنقولة في عملية تدريب النماذج من التخزين إلى ذاكرة GPU / TPU. في بعض الحالات، نماذج التعلم الآلي للتدريب يمكن أن تستهلك 50٪ فقط من موارد حساب TPU المتاحة ، وإحدى الطرق للتخلص من وقت التوقف عن العمل والاستفادة الكاملة من موارد GPU / TPU هي زيادة الأداء وكفاءة نقل البيانات.

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

اليوم ، معظم عمليات نقل البيانات من جهاز إلى جهاز على الشبكة هي تم تنفيذه بالعمليات منخفضة المستوى التالية: نسخ من جهاز إلى مضيف ، نقل شبكة مضيف إلى مضيف ونسخ مضيف إلى جهاز.

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

تتيح لك آلية TCP الخاصة بذاكرة الجهاز استبعاد ذاكرة المضيف من هذه السلسلة ونقل البيانات على الفور عبر الشبكة من ذاكرة الجهاز ووضع البيانات المستلمة في حزم الشبكة في ذاكرة الجهاز.

لكي يعمل Device Memory TCP ، يلزم وجود بطاقة شبكة يمكنها المعالجة بشكل منفصل رؤوس الحزم والبيانات المغلفة بالحزم (الحمولة) في مخازن مختلفة. يتم تحميل البيانات من ذاكرة الجهاز إلى المخزن المؤقت لحمولة NIC باستخدام آلية dmabuf ، ويتم تمرير الرؤوس من الذاكرة الرئيسية ويتم ملؤها بواسطة مكدس TCP / IP للنظام. لتحسين الكفاءة ، يمكن استخدام قدرات بطاقات الشبكة بشكل إضافي للمعالجة المنفصلة للتدفقات في قوائم انتظار rx المختلفة.

تتزايد الحاجة إلى آلية تبادل بيانات عالية الأداء بين الأجهزة مع الأخذ في الاعتبار استخدام الأنظمة الموزعة للتعلم الآلي ، حيث توجد المسرعات على مضيفين مختلفين ، وكذلك عند نقل بيانات تدريب النموذج.من محركات أقراص الحالة الصلبة الخارجية. اختبارات الأداء تم تكوينه باستخدام 4 وحدات معالجة رسومات و 4 بطاقات شبكة أظهر أن استخدام Device Memory TCP يسمح لها بالوصول إلى مستوى 96,6٪ من السرعة الخط المتاح عند نقل البيانات مباشرة بين ذاكرة الجهاز.

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

مصدر: https://lore.kernel.org/


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.