إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتطلب تشغيل أحمال عمل GPU على نظام مجموعة AKS إعدادا مناسبا والتحقق المستمر لضمان إمكانية الوصول إلى موارد الحوسبة وتأمينها واستخدامها على النحو الأمثل. توضح هذه المقالة أفضل الممارسات لإدارة العقد التي تدعم وحدة معالجة الرسومات، والتحقق من صحة التكوينات، وتقليل انقطاعات حمل العمل باستخدام أوامر التشخيص الخاصة بالمورد.
غالبا ما تعتمد أحمال عمل وحدة معالجة الرسومات، مثل التدريب على نموذج الذكاء الاصطناعي والاستدلال في الوقت الفعلي والمحاكاة ومعالجة الفيديو، على التكوينات التالية:
- برنامج تشغيل GPU الصحيح والتوافق مع وقت التشغيل.
- جدولة دقيقة لموارد GPU.
- الوصول إلى أجهزة GPU داخل الحاويات.
يمكن أن تؤدي التكوينات الخاطئة إلى ارتفاع التكاليف أو فشل الوظائف غير المتوقع أو عدم استخدام وحدة معالجة الرسومات.
فرض وضع حمل عمل GPU
بشكل افتراضي، يضع مجدول AKS الجرابات على أي عقدة متوفرة مع وحدة المعالجة المركزية والذاكرة الكافية. بدون توجيه ، يمكن أن يؤدي ذلك إلى مسألتين رئيسيتين:
- قد تتم جدولة أحمال عمل GPU على العقد بدون وحدات معالجة الرسومات وتفشل في بدء التشغيل، أو
- قد تشغل أحمال العمل للأغراض العامة عقد GPU ، مما يؤدي إلى إهدار الموارد المكلفة.
لفرض الموضع الصحيح:
- قم بتشويه عقد GPU الخاصة بك باستخدام مفتاح مثل
[gpu-vendor].com/gpu: NoSchedule(على سبيل المثال ، nvidia.com/gpu: NoSchedule). هذا يمنع جدولة أحمال العمل غير GPU هناك. - أضف تسامحا مطابقا في مواصفات جراب حمل عمل GPU بحيث يمكن جدولته على عقد GPU الملوثة.
- حدد طلبات موارد GPU وحدودها في الجراب، للتأكد من أن المجدول يحتفظ بسعة وحدة معالجة الرسومات، مثل:
resources:
limits:
[gpu-vendor].com/gpu: 1
- استخدم نهج التحقق من الصحة أو وحدات التحكم في القبول لفرض أن أحمال عمل GPU تتضمن التسامح المطلوب وحدود الموارد.
يضمن هذا النهج أن أحمال العمل الجاهزة لوحدة معالجة الرسومات فقط هي التي تهبط على عقد وحدة معالجة الرسومات ويمكنها الوصول إلى موارد الحوسبة المتخصصة التي تحتاجها.
قبل نشر أحمال عمل وحدة معالجة الرسومات للإنتاج، تحقق دائما من أن تجمعات عقد وحدة معالجة الرسومات هي:
- مجهزة ببرامج تشغيل GPU متوافقة.
- استضافة مكون إضافي صحي لجهاز Kubernetes DaemonSet.
- التعرض
[gpu-vendor].com/gpuكمورد قابل للجدولة.
يمكنك تأكيد تشغيل إصدار برنامج التشغيل الحالي على تجمعات عقد GPU باستخدام واجهة إدارة النظام (SMI) المقترنة بمورد GPU.
يتم nvidia-smi تنفيذ الأمر التالي من داخل جراب نشر المكون الإضافي لجهاز GPU الخاص بك، للتحقق من تثبيت برنامج التشغيل وجاهزية وقت التشغيل على تجمع عقدة يدعم وحدة معالجة الرسومات NVIDIA:
kubectl exec -it $"{GPU_DEVICE_PLUGIN_POD}" -n {GPU_NAMESPACE} -- nvidia-smi
يجب أن يشبه الإخراج المثال التالي:
+-----------------------------------------------------------------------------+
|NVIDIA-SMI 570.xx.xx Driver Version: 570.xx.xx CUDA Version: 12.x|
...
...
كرر الخطوة أعلاه لكل تجمع عقدة GPU لتأكيد إصدار برنامج التشغيل المثبت على العقد الخاصة بك.
على تجمعات العقد التي تدعم AMD GPU، بدلا من ذلك، انشر مكونات AMD GPU وقم بتنفيذ amd-smi الأمر في جراب المكون الإضافي لجهاز ROCm لتأكيد إصدار برنامج التشغيل المثبت.
حافظ على تحديث العقد التي تدعم GPU إلى أحدث صورة لنظام تشغيل العقدة
لضمان الأداء والأمان والتوافق لأحمال عمل GPU الخاصة بك على AKS، من الضروري الحفاظ على تجمعات عقد GPU محدثة بأحدث صور نظام تشغيل العقدة الموصى بها. هذه التحديثات مهمة لأنها:
- قم بتضمين أحدث برامج تشغيل GPU من فئة الإنتاج، لتحل محل أي إصدارات مهملة أو منتهية العمر الافتراضي (EOL).
- تم اختبارها بالكامل للتأكد من توافقها مع إصدار Kubernetes الحالي.
- معالجة الثغرات الأمنية المعروفة التي تم تحديدها بواسطة بائعي وحدة معالجة الرسومات.
- قم بدمج أحدث تحسينات نظام التشغيل ووقت تشغيل الحاوية لتحسين الاستقرار والكفاءة.
قم بترقية تجمع (مجموعات) عقدة GPU إلى أحدث صورة لنظام تشغيل العقدة الموصى بها التي تم إصدارها بواسطة AKS، إما عن طريق تعيين قناة الترقية التلقائية أو من خلال الترقية اليدوية. يمكنك مراقبة أحدث إصدارات صور العقدة وتتبعها باستخدام متتبع إصدار AKS.
فصل أحمال عمل GPU عند استخدام المجموعات المشتركة
إذا كانت مجموعة AKS واحدة مع تجمعات عقدة GPU تقوم بتشغيل أنواع متعددة من أحمال عمل GPU، مثل تدريب النموذج أو الاستدلال في الوقت الفعلي أو معالجة الدفعات، فمن المهم فصل أحمال العمل هذه إلى:
- تجنب التداخل العرضي أو التنافس على الموارد بين أنواع أحمال العمل المختلفة.
- تحسين الأمان والحفاظ على حدود الامتثال.
- تبسيط إدارة ومراقبة استخدام موارد وحدة معالجة الرسومات لكل فئة من فئات حمل العمل.
يمكنك عزل أحمال عمل GPU داخل مجموعة AKS واحدة باستخدام مساحات الأسماء ونهج الشبكة. يتيح ذلك حوكمة أكثر وضوحا من خلال الحصص النسبية والحدود وتكوينات التسجيل الخاصة بحمل العمل.
سيناريو مثال
ضع في اعتبارك مجموعة AKS التي تستضيف نوعين مختلفين من أحمال عمل وحدة معالجة الرسومات التي لا تحتاج إلى الاتصال ببعضها البعض:
- أعباء عمل التدريب: وظائف التدريب على نموذج الذكاء الاصطناعي كثيفة الموارد.
- أحمال عمل الاستدلال: خدمات الاستدلال في الوقت الفعلي الحساسة لزمن الاستدلال.
يمكنك استخدام الخطوات التالية لفصل حمل العمل:
قم بإنشاء مساحات أسماء مخصصة لكل نوع حمل عمل باستخدام
kubectl create namespaceالأمر.kubectl create namespace gpu-training kubectl create namespace gpu-inferenceقم بتسمية جراب حمل عمل GPU حسب النوع، كما هو موضح في المثال التالي:
metadata: namespace: gpu-training labels: workload: trainingتطبيق نهج الشبكة لعزل نسبة استخدام الشبكة بين أنواع أحمال العمل. يحظر البيان التالي جميع عمليات الدخول والخروج لمساحة
gpu-trainingالاسم (ما لم يسمح بذلك صراحة):apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-cross-namespace namespace: gpu-training spec: podSelector: {} policyTypes: - Ingress - Egress ingress: [] egress: []
هذه السياسة:
- ينطبق على جميع الجراب في مساحة الاسم
gpu-training. - يرفض جميع الزيارات الواردة والصادرة بشكل افتراضي، مما يدعم عزلا قويا.
يعمل هذا النموذج على تحسين الوضوح والتحكم والسلامة في بيئات GPU المشتركة، خاصة عندما يكون لأنواع أحمال العمل ملفات تعريف مختلفة لوقت التشغيل أو مستويات مخاطر أو متطلبات تشغيلية.
تحسين استخدام الموارد على عقد وحدة معالجة الرسومات باستخدام وحدة معالجة الرسومات متعددة المثيلات (MIG)
تتراوح أحمال عمل GPU المختلفة في متطلبات الذاكرة ، وقد لا تحتاج عمليات النشر الأصغر (مثل NVIDIA A100 40GB) إلى وحدة معالجة رسومات كاملة. ومع ذلك ، فإن حمل عمل واحد بشكل افتراضي يحتكر مورد GPU حتى عند عدم استخدامه بشكل كاف.
يدعم AKS تحسين الموارد على عقد GPU عن طريق تقسيمها إلى شرائح أصغر باستخدام وحدة معالجة الرسومات متعددة المثيلات (MIG)، بحيث يمكن للفرق جدولة المهام الأصغر بشكل أكثر كفاءة. تعرف على المزيد حول أحجام وحدات معالجة الرسومات المدعومة وكيفية بدء استخدام وحدات معالجة الرسومات متعددة المثيلات على AKS.
استخدام أقراص بيانات NVMe سريعة الزوال كذاكرة تخزين مؤقت عالية الأداء
بالنسبة لأحمال عمل الذكاء الاصطناعي التي تعمل على أجهزة GPU الظاهرية في AKS، يعد الوصول السريع والموثوق إلى التخزين المؤقت أمرا بالغ الأهمية لزيادة أداء التدريب والاستدلال. توفر أقراص بيانات NVMe سريعة الزوال تخزينا عالي الإنتاجية وزمن انتقال منخفض متصل مباشرة بمضيف الجهاز الظاهري، مما يجعلها مثالية لسيناريوهات مثل التخزين المؤقت لمجموعات البيانات أو تخزين نقاط التفتيش الوسيطة وأوزان النموذج، أو توفير مساحة تسويد للمعالجة المسبقة للبيانات والتحليلات.
عند نشر تجمعات العقد التي تدعم وحدة معالجة الرسومات لأحمال عمل الذكاء الاصطناعي، قم بتكوين أقراص بيانات NVMe سريعة الزوال لتكون بمثابة ذاكرة تخزين مؤقت عالية الأداء أو مساحة تسويد. يساعد هذا النهج في القضاء على اختناقات الإدخال/الإخراج، وتسريع العمليات كثيفة البيانات، ويضمن عدم تباطؤ موارد وحدة معالجة الرسومات الخاصة بك أثناء انتظار البيانات.
يتم دعم أقراص بيانات NVMe سريعة الزوال عبر مجموعة واسعة من عائلات أجهزة Azure GPU الظاهرية. اعتمادا على حجم جهاز GPU الظاهري ، فإنه يحتوي على ما يصل إلى 8 أقراص بيانات NVMe سريعة الزوال بسعة مجمعة تصل إلى 28 تيرابايت. للحصول على تكوينات مفصلة حول أحجام الأجهزة الظاهرية، ارجع إلى وثائق سلسلة ND H100 v5 أو وثائق حجم الجهاز الظاهري لعائلة GPU التي اخترتها.
لتبسيط التوفير والإدارة، استخدم Azure Container Storage، والذي يمكنه اكتشاف أقراص NVMe سريعة الزوال وتنسيقها تلقائيا لأحمال عمل Kubernetes الخاصة بك.
تتضمن السيناريوهات الموصى بها ما يلي:
- التخزين المؤقت لمجموعات البيانات الكبيرة ونقاط التفتيش النموذجية للتدريب على الذكاء الاصطناعي والاستدلال.
- أوزان نموذج التخزين المؤقت لاستدلال الذكاء الاصطناعي. على سبيل المثال، نموذج استضافة KAITO كعناصر OCI على NVMe المحلي.
- توفير مساحة خدش سريعة للمهام الدفعية ومسارات البيانات.
مهم
البيانات الموجودة على أقراص NVMe سريعة الزوال مؤقتة وسيتم فقدها إذا تم إلغاء تخصيص الجهاز الظاهري أو إعادة نشره. استخدم هذه الأقراص فقط للبيانات غير الحرجة والعابرة، وقم بتخزين المعلومات المهمة حول حلول تخزين Azure المستمرة.
لمزيد من الإرشادات حول أقراص بيانات NVMe سريعة الزوال، راجع أفضل الممارسات لأقراص بيانات NVMe سريعة الزوال في AKS.
الخطوات التالية
لمعرفة المزيد حول نشر حمل عمل GPU وإدارته على AKS، راجع المقالات التالية:
قم بإنشاء تجمع عقدة ممكن لوحدة معالجة الرسومات على مجموعة AKS الخاصة بك.
راقب أحمال عمل وحدة معالجة الرسومات باستخدام مصدر NVIDIA DCGM المدار ذاتيا.
قم بتوسيع نطاق أحمال عمل GPU تلقائيا بناء على مقاييس GPU الشائعة باستخدام مصدر KEDA و DCGM.