Kubernetes incluye soporte para gestionar unidades de procesamiento gráfico (GPU) en diferentes nodos de un clúster utilizando plugins de dispositivos.
En ArcGIS Enterprise on Kubernetes, puede implementar un plugin de dispositivos para habilitar nodos GPU en un clúster para optimizar flujos de trabajo de SIG, como los del análisis de ráster y el aprendizaje profundo. Capacidades como el análisis de ráster se configuran de forma predeterminada para funcionar en el modo de CPU, pero también ofrecen la flexibilidad de funcionar en el modo de GPU cuando estos recursos están disponibles.
Tener en cuenta la disponibilidad y la utilización de GPU en un clúster es opcional, ya que incurrirá en costes adicionales.
Para habilitar la GPU, se requiere un plugin de dispositivo NVIDIA para Kubernetes. El plugin de dispositivo NVIDIA para Kubernetes es un daemonset que permite exponer el número de GPU de cada nodo de un clúster, ejecutar contenedores habilitados con GPU y hacer un seguimiento del estado de las GPU.
Nota:
En esta versión, ArcGIS Enterprise on Kubernetes solo es compatible con GPU NVIDIA.
Habilitar GPU
Para habilitar GPU para su organización, siga los pasos siguientes, que son específicos de su entorno y preferencias:
- Realice los pasos para configurar análisis de ráster, servicios de notebook u otra funcionalidad para la que desee utilizar nodos habilitados con GPU.
- Verifique si su instancia tiene el plugin de dispositivo instalado.
Muchos entornos de la nube se han preconfigurado con nodos GPU. Si el plugin de dispositivo no está instalado, consulte los detalles y los pasos de instalación en la documentación del plugin de dispositivo NVIDIA para Kubernetes. Si ha implementado localmente, su administrador debe habilitar la GPU en cada nodo de cada clúster.
- Para utilizar nodos habilitados para GPU en los flujos de trabajo GIS de su organización, configure el acceso a los recursos de GPU.
- Si desea ejecutar cargas de trabajo de GPU en nodos GPU de forma exclusiva, configure la afinidad y las tolerancias de los nodos.
Configurar el acceso a los recursos de GPU
Si está habilitando la GPU para los servicios de notebook, consulte Ver y editar tiempos de ejecución para obtener información sobre cómo configurar las unidades de GPU por nodo.
Si está habilitando la GPU para el análisis de ráster, complete los siguientes pasos para utilizar el directorio de API de administrador de ArcGIS Enterprise y definir las solicitudes y los límites de GPU para cada una de las siguientes implementaciones:
- system-rasteranalysistools-gpsyncserver (se utiliza en modelos de entrenamiento)
- system-rasterprocessinggpu-dpserver (se utiliza en procesamiento)
- Inicie sesión en el Directorio de API de administrador de ArcGIS Enterprise como administrador.
- Haga clic en Sistema > Implementaciones.
- Localice la implementación de system-rasteranalysistools-gpsyncserver y haga clic en su Id. correspondiente.
- Haga clic en Editar implementación.
- En el JSON de la implementación, localice la sección resources correspondiente a la implementación y el parámetro customResources.
"containers": [ { "name": "main-container", "resources": { "memoryMin": "4Gi", "memoryMax": "8Gi", "cpuMin": "0.125", "customResources": { "limits":{"nvidia.com/gpu": "1"}, "requests":{"nvidia.com/gpu": "1"} }, "cpuMax": "2" },
- Actualice el parámetro customResources de cada contenedor de la lista para incluir solicitudes y límites de GPU.
- Haga clic en Enviar para guardar las ediciones de la implementación.
- Repita los pasos para la implementación de system-rasterprocessinggpu-dpserver.
Aprenda a editar las implementaciones del sistema en la documentación de la API del directorio del administrador.
Configurar afinidad y tolerancias de nodos
Los nodos GPU pueden tener cargas de trabajo de CPU y GPU ejecutándose en ellos. Si se permite que sus cargas de trabajo de CPU se ejecuten en un nodo GPU, no se requieren más pasos. Sin embargo, para asegurarse de que las cargas de trabajo de GPU se ejecuten en nodo GPU exclusivamente, su administrador debe adoptar medidas adicionales para configurar la afinidad y las tolerancias de los nodos. Completa los pasos siguientes para contaminar los nodos y aplicar tolerancias a los servicios pertinentes para que puedan programarse en un nodo contaminado:
- Para asegurarse de que las cargas de trabajo de GPU se programen en nodos GPU exclusivamente, contamine los nodos GPU.
kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoExecute
- Etiquete los nodos GPU. Como alternativa, utilice una etiqueta existente que ya se haya especificado en el nodo.
Para etiquetar un nodo con la clave raster y el valor GPU para el análisis ráster, utilice el siguiente comando:
kubectl label nodes <your-node-name> raster=GPU
Para etiquetar un nodo con la clave notebook y el valor NotebooksGPUNode para servicios de notebook, utilice el siguiente comando:
kubectl label nodes <your-node-name> notebook=NotebooksGPUNode
- Inicie sesión en ArcGIS Enterprise Manager como administrador.
- Abra los ajustes de ubicación de pods.
Si está habilitando la GPU para los servicios de notebook, consulte Ver y editar tiempos de ejecución para obtener información sobre cómo acceder a la configuración de ubicación de pods.
Para acceder a la configuración de ubicación de pods para el análisis de ráster, siga estos pasos:
- Haga clic en el botón Servicios de la barra lateral.
- Haga clic en Servicios del sistema y seleccione el servicio RasterProcessingGPU.
- Haga clic en la pestaña Ubicación de pod.
- Para aplicar una regla de afinidad de nodo que garantice que los pods del servicio estén programados en nodos de GPU, proporcione la siguiente información en la sección Afinidad de nodos y haga clic en Agregar:
- Tipo: obligatorio
- Clave: especifique la clave utilizada para etiquetar el nodo GPU, por ejemplo, raster.
- Operador: en
- Valor: especifique el valor utilizado para etiquetar el nodo GPU, por ejemplo, GPU.
- Para aplicar una tolerancia que permita que los pods se ejecuten en los nodos que desea contaminar, proporcione la siguiente información en la sección Tolerancias y haga clic en Agregar:
- Efecto: ninguna ejecución
- Clave: nvidia.com/gpu
- Operador: existe
- Haga clic en Guardar.
- Verifique que los pods GPU se ejecutan en los nodos GPU.
Ya puede empezar a utilizar los recursos GPU para sus cargas de trabajo. Además, consulte las recomendaciones de ajuste del análisis de ráster.