Kubernetes: k8s: v1.3.10, como usar gpu, para executar o contêiner em gpu?

Criado em 27 fev. 2017  ·  3Comentários  ·  Fonte: kubernetes/kubernetes

agora tenho quase uma semana para trabalhar nessa questão. mas eu falhei.
ambiente: redhat7.2
k8s: v1.3.10 cuda: v7.5 versão do kernel ensorflow: 0,11 gpu: 1080
nossa plataforma baseada em tensorflow e k8s。it é para treinamento sobre ML.
quando uso cpu, está tudo bem, mas não consigo funcionar em gpu, quero saber por quê.
eu testei muitos exemplos que você disse, mas ainda falhei
meu cluster: 1 nó mestre 2. cada nó tem um cartão GPU, apenas o mestre não
primeiro eu teste como @ Hui-Zhi disse:

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

sim, eu testei e funciona. se eu mudar nvidia-gpu: 1 para 2, falhou. pod mantendo-se pendente. e descrever encontrado: nenhum nó pode satisfazer isso. porque cada nó tem apenas uma placa GPU, acho que funciona.
mas a questão está chegando: como executar no gpu? este exemplo apenas prova que k8s pode obter gpu e sabe gpu, mas como executá-lo? Como posso usar o arquivo yaml para criar um pod executado no recurso gpu?

então, eu encontrei outra maneira: nvidia-docker
puxo gpu-image: gcr.io/tensorflow/t ensorflow: 0.11-gpu e executo mnist.py demo de acordo com docker, docker run -it $ {image} / bin / bash
mas falhou. algo como "não é possível abrir a biblioteca CUDA libcuda.so, não é possível encontrar libcuda.so",
Se alguém encontrou o mesmo problema?
então descobri que alguém disse: gpu precisa usar nvidia-docker
felizmente instalei como tensorflow: https://www.tensorflow.org/install/install_linux#gpu_support disse, de acordo com nvidia-docker, descobri que meu treinamento rodava em GPU e memória GPU quase 7g, quase 70%
Eu corro assim: nvidia-docker run -it $ {image} / bin / bash
python mnist.py
sim, funciona. mas uma nova pergunta chegando: devo usar docker para rodar em cpu e nvidia-docker em gpu? Acabei de executar em gpu apenas no docker, talvez nvidia-docker, mas como executar gpu em k8s.
O contêiner k8s usou o docker, mas não o nvidia-docker, então, como posso fazer isso da mesma maneira, você pode me ajudar? eu quero saber como executar o gpu no k8s, não apenas uma demonstração ou um yaml de teste para provar que o k8s suporta gpu.
espero que você possa me responder, estou esperando ....
obrigado.

Comentários muito úteis

Acabei de testar, funcionou. o volumn i mount estava errado antes. o novo yaml que usei abaixo

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

eu resolvo meu problema obrigado

Todos 3 comentários

@tbchj # 42116 agora está mesclado e deve ser lançado com 1.6

@cmluciano sim, obrigado, talvez você tenha razão. Acabei de ler # 42116 totalmente, parece que tem algo que eu preciso.

Acabei de testar, funcionou. o volumn i mount estava errado antes. o novo yaml que usei abaixo

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

eu resolvo meu problema obrigado

Esta página foi útil?
0 / 5 - 0 avaliações