إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكن أن توفر أحجام AMD GPU Virtual Machine (VM) على Azure مرونة في الأداء والتكلفة، ما يوفر سعة حساب عالية مع السماح لك باختيار التكوين الصحيح لمتطلبات حمل العمل الخاص بك. يدعم AKS تجمعات عقد Linux الممكنة بواسطة AMD GPU لتشغيل أحمال عمل Kubernetes كثيفة الحوسبة.
تساعدك هذه المقالة على توفير العقد مع وحدات معالجة الرسومات AMD القابلة للمخططات على مجموعات AKS الجديدة والحالية.
القيود
- تدعم
Standard_ND96isr_MI300X_v5AKS حاليا حجم Azure VM الذي يتم تشغيلها بواسطة وحدة معالجة الرسومات AMD من سلسلة MI300. - تحديث تجمع عقدة موجود لإضافة حجم جهاز ظاهري لوحدة معالجة الرسومات AMD غير مدعوم على AKS.
- تحديث تجمع عقدة غير ممكن بواسطة وحدة معالجة الرسومات AMD بحجم جهاز ظاهري ل AMD GPU غير مدعوم.
-
AzureLinux،WindowsAzureLinuxOSGuardوغيرflatcarمدعوم مع وحدة معالجة الرسومات AMD.
قبل البدء
- تفترض هذه المقالة أن لديك مجموعة AKS موجودة. إذا لم يكن لديك مجموعة، فبادر بإنشاء مجموعة باستخدام Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure.
- تحتاج إلى تثبيت الإصدار 2.72.2 من Azure CLI أو إصدار أحدث لتعيين
--gpu-driverالحقل. قم بتشغيلaz --versionللعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. - إذا كان لديك
aks-previewملحق Azure CLI مثبتا، فيرجى تحديث الإصدار إلى 18.0.0b2 أو أحدث.
إشعار
تحتوي الأجهزة الظاهرية التي تدعم وحدة معالجة الرسومات على أجهزة متخصصة تخضع لتسعير أعلى وتوافر المنطقة. لمزيد من المعلومات، راجع أداة التسعيروتوافر المنطقة.
الحصول على بيانات اعتماد لمجموعتك
احصل على بيانات الاعتماد لنظام مجموعة AKS باستخدام az aks get-credentials الأمر . يحصل الأمر المثال التالي على بيانات الاعتماد لنظام المجموعة myAKSCluster في myResourceGroup مجموعة الموارد:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
خيارات استخدام وحدات معالجة الرسومات AMD
يتضمن استخدام وحدات معالجة الرسومات AMD تثبيت مكونات برامج AMD GPU مختلفة مثل المكون الإضافي لجهاز AMD ل Kubernetes وبرامج تشغيل GPU والمزيد.
إشعار
حاليا، لا تدير AKS أو تعمل تلقائيا على تثبيت برامج تشغيل GPU أو المكون الإضافي لجهاز AMD GPU على تجمعات العقد التي تدعم AMD GPU.
تسجيل ميزة AKSInfinibandSupport
إذا كان حجم الجهاز الظاهري لوحدة معالجة الرسومات في AMD ممكن بواسطة RDMA مع
rاصطلاح التسمية (على سبيل المثالStandard_ND96isr_MI300X_v5)، فستحتاج إلى التأكد من أن الأجهزة الموجودة في تجمع العقدة تهبط على نفس شبكة Infiniband الفعلية. لتحقيق ذلك، قم بتسجيل علامة الميزةAKSInfinibandSupportباستخدامaz feature registerالأمر :az feature register --name AKSInfinibandSupport --namespace Microsoft.ContainerServiceتحقق من حالة التسجيل باستخدام
az feature showالأمر :az feature show \ --namespace "Microsoft.ContainerService" \ --name AKSInfinibandSupportإنشاء تجمع عقدة ممكن بواسطة AMD GPU باستخدام
az aks nodepool addالأمر وتخطي تثبيت برنامج التشغيل الافتراضي عن طريق تعيين حقل--gpu-driverAPI إلى القيمةnone:az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_ND96isr_MI300X_v5 \ --gpu-driver noneإشعار
يفرض AKS حاليا استخدام
gpu-driverالحقل لتخطي تثبيت برنامج التشغيل التلقائي في وقت إنشاء تجمع عقدة AMD GPU.
توزيع عامل تشغيل AMD GPU على AKS
يقوم عامل تشغيل AMD GPU بأتمتة إدارة ونشر جميع مكونات برامج AMD اللازمة لتوفير وحدة معالجة الرسومات بما في ذلك تثبيت برنامج التشغيل والمكون الإضافي لجهاز AMD ل Kubernetes ووقت تشغيل حاوية AMD والمزيد. نظرا لأن عامل تشغيل AMD GPU يعالج هذه المكونات، فليس من الضروري تثبيت المكون الإضافي لجهاز AMD بشكل منفصل على نظام مجموعة AKS. وهذا يعني أيضا أنه يجب تخطي تثبيت برنامج تشغيل GPU التلقائي لاستخدام عامل تشغيل AMD GPU على AKS.
اتبع وثائق AMD لتثبيت عامل تشغيل GPU.
تحقق من حالة وحدات معالجة الرسومات AMD في تجمع العقد باستخدام
kubectl get nodesالأمر :kubectl get nodes -o custom-columns=NAME:.metadata.name,GPUs:.status.capacity.'amd\.com/gpu'يجب أن يبدو الإخراج مشابها لإخراج المثال التالي:
NAME STATUS ROLES AGE VERSION aks-gpunp-00000000 Ready agent 2m4s v1.31.7
تأكد من أن وحدات معالجة الرسومات AMD قابلة للتخطط
بعد إنشاء تجمع العقدة، تأكد من أن وحدات معالجة الرسومات قابلة للمخططات في نظام مجموعة AKS.
سرد العقد في نظام المجموعة باستخدام
kubectl get nodesالأمر .kubectl get nodesتأكد من أن وحدات معالجة الرسومات قابلة للمخططات باستخدام
kubectl describe nodeالأمر .kubectl describe node aks-gpunp-00000000ضمن قسم السعة، ينبغي أن تُدرج وحدة معالجة الرسومات باسم
amd.com/gpu: 1. يجب أن يبدو الإخراج مشابها لإخراج المثال المكثف التالي:Name: aks-gpunp-00000000 Roles: agent Labels: accelerator=amd [...] Capacity: [...] amd.com/gpu: 1 [...]
تشغيل حمل عمل ممكن بواسطة AMD GPU
لمشاهدة وحدة معالجة الرسومات AMD قيد التنفيذ، يمكنك جدولة حمل عمل ممكن بواسطة وحدة معالجة الرسومات مع طلب المورد المناسب. في هذا المثال، سنقوم بتشغيل مهمة Tensorflow مقابل مجموعة بيانات MNIST.
أنشئ ملفا باسم samples-tf-mnist-demo.yaml والصق بيان YAML التالي، والذي يتضمن حد موارد :
amd.com/gpu: 1apiVersion: batch/v1 kind: Job metadata: labels: app: samples-tf-mnist-demo name: samples-tf-mnist-demo spec: template: metadata: labels: app: samples-tf-mnist-demo spec: containers: - name: samples-tf-mnist-demo image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu args: ["--max_steps", "500"] imagePullPolicy: IfNotPresent resources: limits: amd.com/gpu: 1 restartPolicy: OnFailure tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule"قم بتشغيل المهمة باستخدام
kubectl applyالأمر الذي يوزع ملف البيان وينشئ كائنات Kubernetes المعرفة.kubectl apply -f samples-tf-mnist-demo.yaml
عرض حالة حمل العمل الممكن لوحدة معالجة الرسومات
مراقبة تقدم المهمة باستخدام
kubectl get jobsالأمر مع العلامة--watch. قد يستغرق الأمر بضع دقائق لسحب الصورة أولا ومعالجة مجموعة البيانات.kubectl get jobs samples-tf-mnist-demo --watchعندما يظهر عمود COMPLETIONS1/1، تكون المهمة قد انتهت بنجاح، كما هو موضح في إخراج المثال التالي:
NAME COMPLETIONS DURATION AGE samples-tf-mnist-demo 0/1 3m29s 3m29s samples-tf-mnist-demo 1/1 3m10s 3m36sقم بإنهاء
kubectl --watchالعملية باستخدام Ctrl-C.احصل على اسم الجراب باستخدام
kubectl get podsالأمر .kubectl get pods --selector app=samples-tf-mnist-demo
تنظيف الموارد
قم بإزالة كائنات Kubernetes المقترنة التي قمت بإنشائها في هذه المقالة باستخدام kubectl delete job الأمر .
kubectl delete jobs samples-tf-mnist-demo
الخطوات التالية
- استكشف خيارات التخزين المختلفة لتطبيقك المستند إلى وحدة معالجة الرسومات على AKS.
- تعرف على المزيد حول مجموعات Ray على AKS.
- استخدم وحدات معالجة الرسومات NVIDIA لأحمال عمل AKS كثيفة الحوسبة.