A Kubernetes GPU *** le gusta la investigación técnica.
Soluciones de programación de GPU actuales en la comunidad:
1. La solución de programación aportada por NVIDIA solo admite la programación de grano grueso y la cantidad de GPU. Bloquea la programación.
Complemento de dispositivo GPU Nvidia
2. La solución de programación integral de GPU aportada por el equipo de servicio de Alibaba Cloud está diseñada para resolver la necesidad del usuario de disfrutar plenamente de la programación de GPU. Kubernetes GPU *** disfruta practicando.
gpushare-scheduler-extender
gpushare-device-plug-in
Dado que el aislamiento de recursos utiliza principalmente tecnología de virtualización, la virtualización de dos GPU proporcionada por NVIDIA Ninguna de Las soluciones son de código abierto. Las GPU tienen relativamente pocos datos prácticos sobre el aislamiento de recursos y la mayoría de ellas se centran en la programación de recursos de GPU.
Información relacionada: Kubernetes disfruta de la programación de clústeres de GPU.
Ventajas:
Desventajas:
Requisitos previos:
Ideas de implementación:
Confiar en el funcionamiento de Kubernetes existente mecanismo:
Información relacionada: Práctica de IA en K8S: se revela la arquitectura de la plataforma intermedia de IA de Yunzhi Shutian.
Ideas de implementación:
Información relacionada: implementación de programación de tipos de GPU basada en Kubernetes.
Ideas de implementación:
Uso del mecanismo de trabajo existente de Kubernetes:
Ventajas:
Desventajas:
1.CRD define dos recursos: ExtendedResource y ResourceClass.
ExtendedResource describe un recurso extendido, como NVIDIA GPU;
ResourceClass define qué recurso extendido selecciona el contenedor. Se usa de manera similar a los recursos extendidos en Kubernetes, y los usuarios pueden especificarlos directamente en el contenedor, al igual que usar CPU y memoria.
2. Amplíe el programador utilizando el mecanismo de extensión del programador. El programador es responsable de usar el objeto de recurso ResourceClass en el contenedor para programar Pods.
Filtre los recursos ExtendedResource en el nodo seleccionado consultando la definición del objeto ResourceClass para encontrar el nodo apropiado y vincularlo, y escriba el recurso extendido apropiado en la anotación Pod para que lo use el componente Kubelet.
3. Utilice Nvidia Device Plugin para ampliar los recursos de la GPU NVIDIA, responsable de comunicarse con los componentes de kubelet, crear y mantener objetos ExtendedResource.
Los recursos ExtendedResource contienen información como la frecuencia de la GPU y la memoria de vídeo. Cuando varios contenedores quieren usar la misma GPU, podemos definir un objeto de recurso ResourceClass y declarar cuánta memoria de video usar en ResourceClass (aquí * * * comparte la memoria de video). De esta manera, cuando se implementa la aplicación, solo necesitamos declarar el uso de recursos ResourceClass en el contenedor, y luego Scheduler Extender filtrará los objetos ExtendedResource que cumplan las condiciones y los vinculará a los nodos apropiados.
Si queremos disfrutar de los recursos * * *, es posible que necesitemos registrar la cantidad de memoria de video en ExtendedResource como referencia de programación.
Información relacionada: Utilice vGPU en Kubernetes para tareas de aprendizaje automático * * * Disfrute de las GPU.
Idea de implementación:
Utilice la tecnología de virtualización de GPU proporcionada por los fabricantes de GPU y los fabricantes de virtualización para virtualizar la GPU y dividirla en GPU completas. Luego programe la GPU en k8 tal como lo haría con una GPU física.
Ventajas:
Desventajas:
La explicación del sitio web oficial de K8 sobre la programación de GPU proporciona capacidades de programación de contenedores de GPU de Nvidia, pero a un contenedor solo se le puede asignar una tarjeta GPU. .
K8s desde cero: cómo funcionan la administración de GPU y los complementos de dispositivos
Cómo implementar la programación de GPU en Kubernetes y * * * disfrutar
Guía del usuario de GPU de Kubernetes
p>
¿Cómo utiliza Kubernetes las GPU NVIDIA a través de complementos de dispositivo?
¿Sabes realmente cómo varios contenedores Docker * * * disfrutan de la GPU?
Kubeflow utiliza Kubernetes para el aprendizaje automático.