Kubernetes: k8s: v1.3.10 ، كيفية استخدام gpu ، لتشغيل الحاوية على gpu؟

تم إنشاؤها على ٢٧ فبراير ٢٠١٧  ·  3تعليقات  ·  مصدر: kubernetes/kubernetes

الآن لدي أسبوع تقريبًا للعمل على هذا السؤال. لكني فشلت.
البيئة: redhat7.2
k8s: v1.3.10 cuda: v7.5 إصدار kernel إنسورفلو: 0.11 gpu: 1080
منصتنا القائمة على tensorflow و k8s。it مخصصة للتدريب على تعلم الآلة.
عند استخدام وحدة المعالجة المركزية ، لا بأس ، لكن لا يمكنني العمل على وحدة معالجة الرسومات ، أريد أن أعرف السبب.
لقد اختبرت العديد من الأمثلة التي قلتها ، لكنها ما زلت فشلت
مجموعتي: 1 عقدة رئيسية 2. كل عقدة لديها بطاقة gpu ، فقط السيد لا
أولا أختبر مثل @ قال Hui - Zhi:

vim  test.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nvidia-gpu-test
spec:
  containers:
  - name: nvidia-gpu
    image: nginx
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1

نعم ، لقد اختبرت ، وهي تعمل. إذا قمت بتغيير nvidia-gpu: 1 إلى 2 ، فشل. حفظ الجراب معلق. ووصف وجدت: لا يمكن لأي عقدة أن ترضي هذا لأن كل عقدة لديها بطاقة gpu واحدة فقط ، أعتقد أنها تعمل.
لكن السؤال قادم: كيف تعمل على GPU؟ هذا المثال يثبت فقط أن k8s يمكنه الحصول على gpu ، ومعرفة gpu ، ولكن كيف يعمل عليه؟ كيف يمكنني استخدام ملف yaml لإنشاء جراب واحد يعمل على مورد gpu؟

ثم وجدت طريقة أخرى: nvidia-docker
أقوم بسحب gpu-image: gcr.io/tensorflow/t ensorflow: 0.11-gpu ، وقم بتشغيل mnist.py demo وفقًا لـ docker ، docker run -it $ {image} / bin / bash
لكنها فشلت. شيء خطأ مثل "لا يمكن فتح مكتبة CUDA libcuda.so ، لا يمكن العثور على libcuda.so" ،
ما إذا كان شخص ما قد واجه نفس المشكلة؟
ثم وجدت أن أحدهم قال: gpu بحاجة إلى استخدام nvidia-docker
لحسن الحظ ، لقد قمت بتثبيت Tensorflow: https://www.tensorflow.org/install/install_linux#gpu_support ، وفقًا لـ nvidia-docker وجدت تدريبي يعمل على gpu وذاكرة gpu تقريبًا 7g ، تقريبًا 70٪
أركض هكذا: nvidia-docker run -it $ {image} / bin / bash
بيثون mnist.py
نعم إنه يعمل. لكن سؤال جديد قادم: هل يجب أن أستخدم عامل الإرساء للتشغيل على وحدة المعالجة المركزية و nvidia-docker على وحدة معالجة الرسومات؟ أنا فقط أركض على gpu فقط على docker ، ربما nvidia-docker ، لكن كيف أقوم بتشغيل gpu على k8s.
تستخدم حاوية k8s عامل إرساء ولكن ليس nvidia-docker ، فكيف يمكنني القيام بذلك بنفس الطريقة ، هل يمكنك مساعدتي؟ أريد أن أعرف كيفية تشغيل gpu على k8s ، وليس مجرد عرض توضيحي أو اختبار yaml لإثبات دعم k8s gpu.
أتمنى أن تجيبني ، أنا أنتظر ....
شكرا.

التعليق الأكثر فائدة

لقد اختبرت للتو ، لقد نجحت. كان volumn i mount خاطئ من قبل. yaml الجديد الذي استخدمته على النحو التالي

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  volumes:
  - name: nvidia-driver
    hostPath:
      path: /var/lib/nvidia-docker/volumes/nvidia_driver/367.44
  containers:
  - name: tensorflow
    image: tensorflow:0.11.0-gpu
    ports:
    - containerPort: 8000
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1
    volumeMounts:
    - name: nvidia-driver
      mountPath: /usr/local/nvidia/
      readOnly: true

أنا حل مشكلتي ، شكرا لك

ال 3 كومينتر

تم دمجtbchj # 42116 الآن ويجب إصداره بـ 1.6

cmluciano نعم ، شكرا لك ، ربما أنت على حق. لقد قرأت للتو # 42116 تمامًا ، يبدو أنه يحتوي على شيء أحتاجه.

لقد اختبرت للتو ، لقد نجحت. كان volumn i mount خاطئ من قبل. yaml الجديد الذي استخدمته على النحو التالي

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  volumes:
  - name: nvidia-driver
    hostPath:
      path: /var/lib/nvidia-docker/volumes/nvidia_driver/367.44
  containers:
  - name: tensorflow
    image: tensorflow:0.11.0-gpu
    ports:
    - containerPort: 8000
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1
    volumeMounts:
    - name: nvidia-driver
      mountPath: /usr/local/nvidia/
      readOnly: true

أنا حل مشكلتي ، شكرا لك

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

tyranron picture tyranron  ·  3تعليقات

chowyu08 picture chowyu08  ·  3تعليقات

arun-gupta picture arun-gupta  ·  3تعليقات

ddysher picture ddysher  ·  3تعليقات

sjenning picture sjenning  ·  3تعليقات