Kubernetes: k8s: v1.3.10, как использовать gpu, чтобы запустить контейнер на gpu?

Созданный на 27 февр. 2017  ·  3Комментарии  ·  Источник: kubernetes/kubernetes

теперь у меня есть почти неделя, чтобы поработать над этим вопросом. но я потерпел неудачу.
среда: redhat7.2
k8s: v1.3.10 cuda: v7.5 версия ядра Ensorflow: 0.11 gpu: 1080
наша платформа на основе tensorflow и k8s。 предназначена для обучения машинному обучению.
при использовании процессора все в порядке, но не может работать с графическим процессором, я хочу знать, почему.
Я тестировал много примеров, которые вы сказали, но все равно не смог
мой кластер: 1 мастер 2 узла. у каждого узла есть карта графического процессора, только у мастера нет
сначала я тестирую, как @ 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? этот пример только доказывает, что k8s может получить gpu и знать gpu, но как на нем работать? как я могу использовать файл yaml для создания одного модуля, запускаемого на ресурсе gpu?

затем я нашел другой способ: nvidia-docker
я извлекаю gpu-image: gcr.io/tensorflow/t ensorflow: 0.11-gpu и запускаю демонстрацию mnist.py в соответствии с докером, docker run -it $ {image} / bin / bash
но не удалось. ошибка типа "не могу открыть CUDA libarary libcuda.so, не могу найти libcuda.so",
Сталкивался ли кто-нибудь с такой же проблемой?
затем я обнаружил, что кто-то сказал: gpu нужно использовать nvidia-docker
К счастью, я установил как тензорный поток: https://www.tensorflow.org/install/install_linux#gpu_support сказал, согласно nvidia-docker, я обнаружил, что мое обучение выполняется на графическом процессоре, а память графического процессора почти 7 г, почти 70%
я бегу так: nvidia-docker run -it $ {image} / bin / bash
Python mnist.py
Да, это работает. но возникает новый вопрос: следует ли использовать докер для работы на процессоре и nvidia-docker на графическом процессоре? Я просто запускаю gpu только на докере, может быть, nvidia-docker, но как запустить gpu на k8s.
Контейнер k8s использовал докер, но не nvidia-docker, так как я могу сделать это таким же образом, вы можете мне помочь? Я хочу знать, как запустить gpu на k8s, а не просто демонстрацию или тестовый yaml, чтобы доказать, что k8s поддерживает gpu.
надеюсь, вы мне ответите, я жду ....
благодаря.

Самый полезный комментарий

Я только что протестировал, это сработало. крепление volumn i раньше было неправильным. новый ямл, который я использовал, как показано ниже

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 раньше было неправильным. новый ямл, который я использовал, как показано ниже

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 рейтинги