إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكن تقسيم وحدات معالجة الرسومات NVIDIA معينة في ما يصل إلى سبعة مثيلات مستقلة. يحتوي كل مثيل على Stream Multiprocessor (SM) الخاص به، وهو المسؤول عن تنفيذ الإرشادات بالتوازي، وذاكرة GPU. لمزيد من المعلومات حول تقسيم GPU، راجع NVIDIA MIG.
تشرح لك هذه المقالة كيفية إنشاء تجمع عقد GPU متعدد المثيلات باستخدام حجم جهاز افتراضي متوافق مع MIG في عنقود خدمة Azure Kubernetes (AKS).
المتطلبات الأساسية والقيود
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب، يمكنك إنشاء حساب مجانًا.
- تم تثبيت وتكوين Azure CLI الإصدار 2.2.0 أو بعده. قم بتشغيل
az --versionللعثور على الإصدار. إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI. - عميل سطر أوامر Kubernetes، kubectl، مثبت ومكون. إذا كنت تستخدم Azure Cloud Shell، ف
kubectlمثبت بالفعل. إذا كنت تريد تثبيته محليا، يمكنك استخدامaz aks install-cliالأمر . - تم تثبيت Helm v3 وتكوينه. لمزيد من المعلومات، راجع تثبيت Helm.
- يدعم معالج الرسوميات متعدد المثيلات حاليا على
Standard_NC40ads_H100_v5أحجام الوحدات الافتراضية وA100Standard_ND96isr_H100_v5على AKS.
ملفات تعريف مثيل GPU
تحدد ملفات تعريف مثيل وحدة معالجة الرسومات كيفية تقسيم وحدات معالجة الرسومات. يعرض الجدول التالي ملف تعريف مثيل GPU المتوفر ل Standard_ND96asr_v4:
| اسم ملف التعريف | جزء من SM | جزء من الذاكرة | عدد المثيلات التي تم إنشاؤها |
|---|---|---|---|
| ميج 1 جيجابايت | 1/7 | 1/8 | 7 |
| MIG 2g.10GB | 2/7 | 2/8 | 3 |
| MIG 3G.20GB | 3/7 | 4/8 | 2 |
| MIG 4G.20GB | 4/7 | 4/8 | 1 |
| MIG 7g.40GB | 7/7 | 8/8 | 1 |
على سبيل المثال، يشير ملف تعريف مثيل GPU إلى MIG 1g.5gb أن كل مثيل GPU يحتوي على 1g SM (دفق المعالجات المتعددة) وذاكرة 5 غيغابايت. في هذه الحالة، يتم تقسيم وحدة معالجة الرسومات إلى سبعة مثيلات.
تتضمن MIG1gملفات تعريف مثيل GPU المتوفرة لحجم الجهاز الظاهري هذا و MIG2gMIG3gMIG4gو.MIG7g
هام
لا يمكنك تغيير ملف تعريف مثيل GPU المطبق بعد إنشاء تجمع العقدة.
إنشاء نظام مجموعة AKS
أنشئ مجموعة موارد Azure باستخدام أمر
az group create.az group create --name myResourceGroup --location southcentralusإنشاء نظام مجموعة AKS باستخدام
az aks createالأمر .az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --generate-ssh-keysقم بتكوين
kubectlللاتصال بمجموعة AKS الخاصة بك باستخدامaz aks get-credentialsالأمر .az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
إنشاء مجموعة عُقد GPU متعددة المثيلات
يمكنك استخدام Azure CLI أو طلب HTTP إلى واجهة برمجة تطبيقات ARM لإنشاء تجمع العقد.
إنشاء تجمع عقدة GPU متعدد المثيلات
az aks nodepool addباستخدام الأمر وتحديد ملف تعريف مثيل GPU. ينشئ المثال أدناه تجمع عقدةStandard_ND96asr_v4بحجم GPU VM المتوافق مع MIG.az aks nodepool add \ --name aksMigNode \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --node-vm-size Standard_ND96asr_v4 \ --node-count 1 \ --gpu-instance-profile MIG1g
تحديد استراتيجية GPU متعددة المثيلات (MIG)
قبل تثبيت المكونات الإضافية NVIDIA، تحتاج إلى تحديد استراتيجية GPU متعددة المثيلات (MIG) لاستخدامها لتقسيم GPU: استراتيجية واحدة أو استراتيجية مختلطة. لا تؤثر الاستراتيجيتان على كيفية تنفيذ أحمال عمل وحدة المعالجة المركزية، ولكن كيفية عرض موارد وحدة معالجة الرسومات.
-
استراتيجية واحدة: تتعامل الاستراتيجية الواحدة مع كل مثيل GPU على أنه GPU. إذا كنت تستخدم هذه الاستراتيجية، يتم عرض موارد GPU ك
nvidia.com/gpu: 1. -
استراتيجية مختلطة: تعرض الاستراتيجية المختلطة مثيلات وحدة معالجة الرسومات وملف تعريف مثيل GPU. إذا كنت تستخدم هذه الاستراتيجية، يتم عرض مورد GPU ك
nvidia.com/mig1g.5gb: 1.
تثبيت المكون الإضافي لجهاز NVIDIA ومكونات اكتشاف ميزة GPU (GFD)
تعيين استراتيجية MIG كمتغير بيئة. يمكنك استخدام استراتيجية واحدة أو مختلطة.
# Single strategy export MIG_STRATEGY=single # Mixed strategy export MIG_STRATEGY=mixedأضف مستودع helm المكون الإضافي لجهاز NVIDIA باستخدام
helm repo addالأمرين وhelm repo update.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo updateقم بتثبيت المكون الإضافي لجهاز NVIDIA باستخدام
helm installالأمر .helm install nvdp nvdp/nvidia-device-plugin \ --version=0.17.0 \ --set migStrategy=${MIG_STRATEGY} \ --set gfd.enabled=true \ --namespace nvidia-device-plugin \ --create-namespace
إشعار
يدمج تثبيت Helm المكون الإضافي لجهاز NVIDIA المكون الإضافي لجهاز Kubernetes ومستودعات GFD. لا ينصح بتثبيت helm منفصل لمكون برنامج GFD عند استخدام وحدة معالجة الرسومات متعددة المثيلات التي تديرها AKS.
إشعار
إذا قمت بنشر إضافة جهاز NVIDIA على Azure Linux عبر بيان DaemonSet مخصص بدلا من Helm، يجب عليك تضمين متغير البيئة NVIDIA_MIG_MONITOR_DEVICES=all في حاوية الإضافة الخاصة بالجهاز.
تأكيد قدرة GPU متعدد المثيلات
kubectlتحقق من الاتصال بالمجموعة باستخدامkubectl getالأمر لإرجاع قائمة عقد نظام المجموعة.kubectl get nodes -o wideتأكد من أن العقدة لديها قدرة GPU متعددة المثيلات
kubectl describe nodeباستخدام الأمر . يصف الأمر المثال التالي العقدة المسماة aksMigNode، والتي تستخدم MIG1g كملف تعريف مثيل GPU.kubectl describe node aksMigNodeيجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:
# Single strategy output Allocatable: nvidia.com/gpu: 56 # Mixed strategy output Allocatable: nvidia.com/mig-1g.5gb: 56
جدولة العمل
تستند الأمثلة التالية إلى إصدار الصورة الأساسية CUDA 12.1.1 ل Ubuntu 22.04، الموسومة باسم 12.1.1-base-ubuntu22.04.
استراتيجية واحدة
قم بإنشاء ملف باسم
single-strategy-example.yamlوانسخه في البيان التالي.apiVersion: v1 kind: Pod metadata: name: nvidia-single spec: containers: - name: nvidia-single image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 1000"] resources: limits: "nvidia.com/gpu": 1انشر التطبيق باستخدام
kubectl applyالأمر وحدد اسم بيان YAML.kubectl apply -f single-strategy-example.yamlتحقق من أجهزة GPU المخصصة باستخدام
kubectl execالأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.kubectl exec nvidia-single -- nvidia-smi -Lيشبه المثال التالي الإخراج الذي يظهر عمليات النشر والخدمات التي تم إنشاؤها بنجاح:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c) MIG 1g.5gb Device 1: (UUID: MIG-3d4db13e-c42d-5555-98f4-8b50389791bc) MIG 1g.5gb Device 2: (UUID: MIG-de819d17-9382-56a2-b9ca-aec36c88014f) MIG 1g.5gb Device 3: (UUID: MIG-50ab4b32-92db-5567-bf6d-fac646fe29f2) MIG 1g.5gb Device 4: (UUID: MIG-7b6b1b6e-5101-58a4-b5f5-21563789e62e) MIG 1g.5gb Device 5: (UUID: MIG-14549027-dd49-5cc0-bca4-55e67011bd85) MIG 1g.5gb Device 6: (UUID: MIG-37e055e8-8890-567f-a646-ebf9fde3ce7a)
استراتيجية مختلطة
قم بإنشاء ملف باسم
mixed-strategy-example.yamlوانسخه في البيان التالي.apiVersion: v1 kind: Pod metadata: name: nvidia-mixed spec: containers: - name: nvidia-mixed image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 100"] resources: limits: "nvidia.com/mig-1g.5gb": 1انشر التطبيق باستخدام
kubectl applyالأمر وحدد اسم بيان YAML.kubectl apply -f mixed-strategy-example.yamlتحقق من أجهزة GPU المخصصة باستخدام
kubectl execالأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.kubectl exec nvidia-mixed -- nvidia-smi -Lيشبه المثال التالي الإخراج الذي يظهر عمليات النشر والخدمات التي تم إنشاؤها بنجاح:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c)
هام
تم إلغاء وسم latest لصور CUDA على Docker Hub. يرجى الرجوع إلى مستودع NVIDIA للحصول على أحدث الصور والعلامات المقابلة.
استكشاف الأخطاء وإصلاحها
إذا كنت لا ترى قدرة GPU متعددة المثيلات بعد إنشاء تجمع العقدة، فتأكد من أن إصدار واجهة برمجة التطبيقات ليس أقدم من 2021-08-01.
الخطوات التالية
لمعرفة المزيد عن وحدات معالجة الرسومات على Azure Kubernetes Service، انظر: