HiveD عبارة عن برنامج جدولة لأحمال عمل التعلم العميق.
باعتباره أحد المكونات المستقلة لـ Microsoft OpenPAI، تم تصميم HiveD ليكون موسع جدولة Kubernetes لمجموعات GPU متعددة المستأجرين . تفترض مجموعة GPU متعددة المستأجرين أن العديد من المستأجرين (الفرق) يتشاركون في نفس مجموعة GPU في مجموعة فعلية واحدة (كمبيوتر شخصي) وتوفر بعض ضمانات الموارد لكل مستأجر. تصمم HiveD كل مستأجر كمجموعة افتراضية (VC)، بحيث يمكن لمستأجر واحد استخدام VC الخاص به كما لو كان مجموعة خاصة، بينما يمكنه أيضًا استخدام الموارد المجانية الخاصة بمجموعات VC الأخرى بأولوية أقل.
توفر HiveD العديد من الميزات الرئيسية لأحمال عمل التعلم العميق على النحو التالي.
الميزة القاتلة التي تميز HiveD هي أنها توفر ضمان الموارد لكل VC، ليس فقط من حيث الكمية، والقيمة الرقمية، ولكن أيضًا من حيث الهيكل ، وهو متطلب أساسي لوظائف التدريب المعتمدة على GPU. على سبيل المثال، يضمن المجدول التقليدي أن VC يمكنه استخدام 8 وحدات معالجة رسوميات. ومع ذلك، فهو لا يعرف طوبولوجيا وحدات معالجة الرسومات الثمانية هذه. من الممكن أنه لا يمكن تخصيص مهمة تدريب 8-GPU التي يجب تشغيلها داخل عقدة واحدة، حتى إذا كان رأس المال الاستثماري الخاص بها لا يزال يحتوي على 8 وحدات معالجة رسومات مجانية. وذلك لأن وحدات معالجة الرسومات الثمانية المجانية هذه قد تنتمي إلى عقد متعددة.
تحمي HiveD موارد VCs من حيث الخلية ، وهو نوع مورد محدد من قبل المستخدم يقوم بتشفير كل من الكمية وأنواع المعلومات الأخرى، مثل الهيكل ونوع الأجهزة. في المثال أعلاه، يمكن للمستخدم تحديد نوع خلية لعقدة 8-GPU، ويمكن تعيين VC لواحدة من هذه الخلايا. بعد ذلك، ستضمن HiveD أن هناك دائمًا عقدة واحدة مكونة من 8 وحدات معالجة رسومات متاحة لـ VC ، بغض النظر عن أحمال العمل الأخرى في المجموعة.
يسمح HiveD بتعريفات مرنة للخلايا لضمان الموارد الدقيقة. على سبيل المثال، يمكن للمستخدمين تحديد الخلايا على مستويات هيكلية متعددة (على سبيل المثال، محول PCI-e)، لنماذج الأجهزة المختلفة (على سبيل المثال، NVIDIA V100 GPU، AMD Radeon MI100 GPU، Cloud TPU v3)، أو تكوينات الشبكات (على سبيل المثال، مجال InfiniBand) . يمكن أن يحتوي VC على أنواع مختلفة من الخلايا، وستضمن HiveD جميعها.
تعمل HiveD على تحسين أداء جدولة المجموعة ، وهي متطلبات جدولة نموذجية لوظائف التدريب على التعلم العميق، حيث يجب تخصيص جميع الحاويات قبل أن تبدأ مهمة التدريب. قد تؤدي الوظائف المتعددة المجدولة للعصابة والتي تتنافس على نفس مجموعة الموارد إلى المجاعة، حيث تحصل كل وظيفة على مورد جزئي فقط وعليها الانتظار إلى أجل غير مسمى.
تقوم HiveD بجدولة كافة الحاويات داخل الوظيفة بطريقة المعاملات ، أي أنه سيتم منح جميع متطلبات هذه الحاويات أو رفضها ككل، وبالتالي تجنب التخصيص الجزئي للموارد والتجويع.
يدعم HiveD أولويات العمل المتعددة. يمكن للوظائف ذات الأولوية العليا أن تستبق الوظائف ذات الأولوية الأدنى. تقدم HiveD أيضًا وظائف انتهازية ، أي الوظائف ذات الأولوية الأدنى والتي يمكنها استخدام الموارد المجانية الخاصة برأس المال الاستثماري الأخرى عندما يكون ذلك ممكنًا (دون انتهاك ضمانات الموارد لشركات رأس المال الاستثماري الأخرى).
الإيجار المتعدد: المجموعة الافتراضية (VC)
ضمان موارد VC الدقيقة: الكمية، والهيكل، والنوع، ومورد VC المثبت، وما إلى ذلك.
جدولة مرنة داخل VC: الوعي بالطوبولوجيا، وأنواع الأجهزة المرنة، وموارد VC المثبتة، وتخصيص سياسة الجدولة، وما إلى ذلك.
تحسين تجزئة الموارد وتقليل المجاعة
الأولويات، والإفراط في الاستخدام بأولوية منخفضة، والمنع بين/داخل VC
الوظيفة (الكاملة / الجزئية) جدولة / الشفعة
التسامح مع الأخطاء، والوعي السيئ بالأجهزة، وإعادة التكوين للحفاظ على العمل
مجموعة Kubernetes، الإصدار 1.14.2 أو أعلى، على السحابة أو محليًا.
جدولة التكوين
تشغيل المجدول
إرسال عبء العمل إلى المجدول
دليل المستخدم
عرض الميزة
تصميم
DockerHub
FrameworkController: وحدة تحكم Kubernetes Pod للأغراض العامة، والتي يمكنها بسهولة الاستفادة من HiveD لجدولة المهام.
OpenPAI: حل كامل لمنصة الذكاء الاصطناعي. سيكون HiveD أكثر سهولة في الاستخدام عند العمل جنبًا إلى جنب مع OpenPAI.
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب معظم المساهمات منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق في منحنا حقوق استخدام مساهمتك، بل وتفعل ذلك بالفعل. للحصول على التفاصيل، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب، سيحدد روبوت CLA تلقائيًا ما إذا كنت بحاجة إلى تقديم CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال، التحقق من الحالة، التعليق). ما عليك سوى اتباع التعليمات التي يقدمها لك الروبوت. سوف تحتاج إلى القيام بذلك مرة واحدة فقط في جميع عمليات إعادة الشراء باستخدام CLA الخاص بنا.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
يرجى ذكر HiveD في منشوراتك إذا كان ذلك يساعد في بحثك:
@inproceedings {hived-osdi2020, author = {Hanyu Zhao and Zhenhua Han and Zhi Yang and Quanlu Zhang and Fan Yang and Lidong Zhou and Mao Yang and Francis C.M. Lau and Yuqi Wang and Yifan Xiong and Bin Wang}, title = {{HiveD}: Sharing a {GPU} Cluster for Deep Learning with Guarantees}, booktitle = {14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20)}, year = {2020}, isbn = {978-1-939133-19-9}, pages = {515--532}, url = {https://www.usenix.org/conference/osdi20/presentation/zhao-hanyu}, publisher = {{USENIX} Association}, month = nov, }