Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Algunos tipos de instancia con GPU están en fase Beta y aparecen marcados como tales en la lista desplegable al seleccionar los tipos de controlador y de trabajador durante la creación del recurso de cómputo.
Información general
Azure Databricks admite el proceso acelerado con unidades de procesamiento gráfico (GPU). En este artículo se describe tanto cómo crear un proceso con instancias habilitadas para GPU, como qué controladores y bibliotecas de GPU hay instalados en esas instancias.
Para obtener más información sobre el aprendizaje profundo en recursos de proceso con GPU, consulte Aprendizaje profundo.
Cree un cálculo de GPU
La creación de un proceso de GPU es similar a la creación de cualquier proceso. Tenga en cuenta lo siguiente:
- La casilla Machine Learning debe estar activada. La versión de GPU ML se elige automáticamente en función del tipo de trabajo.
- La casilla Aceleración foton debe estar desactivada. Photon no es compatible con los tipos de instancia con GPU.
- El tipo de worker debe ser un tipo de instancia con GPU.
- La casilla Nodo único se puede activar para obtener una sola instancia de GPU.
El proceso para configurar instancias de GPU mediante la API de clústeres varía en función de si se establece el kind campo.
kind determina si la solicitud usa la especificación de formulario simple :
- Si
kind = CLASSIC_PREVIEW, establezca"use_ml_runtime": true. - Si no establece el
kindcampo, establezcaspark_versionen una versión habilitada para GPU, como 15.4.x-gpu-ml-scala2.12.
Tipos de instancia admitidos
Advertencia
Azure Databricks dejará de admitir el aprovisionamiento de recursos de proceso mediante tipos de instancia de la serie NC v3, ya que Azure va a retirar Nc24rs antes del 31 de marzo de 2025 y NC6s_v3, NC12s_v3 y NC24s_v3 antes del 30 de septiembre de 2025.
Azure Databricks admite los tipos de instancia siguientes:
NCads_H100_v5
- Tipo de GPU: GPU NVIDIA H100 NVL
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_NC40ads_H100_v5 | 1 | 94 GB | 40 | 320 GB |
| Standard_NC80adis_H100_v5 | 2 | 94 GB x 2 | 80 | 640 GB |
NC_A100_v4
- Tipo de GPU: GPU NVIDIA A100 PCIe
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_NC24ads_A100_v4 | 1 | 80 GB | veinticuatro | 220 GB |
| Standard_NC48ads_A100_v4 | 1 | 80 GB x 2 | 48 | 440 GB |
| Standard_NC96ads_A100_v4 | 1 | 80 GB x 4 | 96 | 880 GB |
NDasrA100_v4
- Tipo de GPU: GPU NVIDIA Ampere A100 40GB Tensor Core
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_ND96asr_v4 | 8 | 40 GB x 8 | 96 | 900 GB |
NVadsA10_v5
- Tipo de GPU: GPU NVIDIA A10
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_NV36ads_A10_v5 | 1 | 24 GB | 36 | 440 GB |
| Standard_NV36adms_A10_v5 | 1 | 24 GB | 36 | 880 GB |
| Standard_NV72ads_A10_v5 | 2 | 24 GB x 2 | 72 | 880 GB |
NCasT4_v3
- Tipo de GPU: GPU NVIDIA T4
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_NC4as_T4_v3 | 1 | 16 GB | 4 | 28 GB |
| Standard_NC8as_T4_v3 | 1 | 16 GB | 8 | 56 GB |
| Standard_NC16as_T4_v3 | 1 | 16 GB | 16 | 110 GB |
| Standard_NC64as_T4_v3 | 4 | 16 GB x 4 | 64 | 440 GB |
NC_v3
- Tipo de GPU: GPU NVIDIA Tesla V100
| Nombre de la instancia | Número de GPU | Memoria de GPU | vCPU | Memoria de CPU |
|---|---|---|---|---|
| Standard_NC6s_v3 | 1 | 16 GB | 6 | 112 GB |
| Standard_NC12s_v3 | 2 | 16 GB x 2 | 12 | 224 GB |
| Standard_NC24s_v3 | 4 | 16 GB x 4 | veinticuatro | 448 GB |
| Standard_NC24rs_v3 | 4 | 16 GB x 4 | veinticuatro | 448 GB |
Consulte Precios de Azure Databricks para una lista actualizada de los tipos de instancia de GPU admitidos y sus regiones de disponibilidad. La implementación de Azure Databricks debe residir en una región admitida para iniciar procesos habilitados para GPU.
Programación de GPU
La programación de GPU distribuye las tareas de Spark de forma eficaz en un número grande de GPU.
Databricks Runtime admite la programación compatible con GPU de Apache Spark 3.0. Azure Databricks lo configura previamente en procesos de GPU.
Nota:
La programación de GPU no está habilitada en los procesos de nodo único.
Programación de GPU para IA y ML
spark.task.resource.gpu.amount es la única configuración de Spark relacionada con la planificación consciente de GPU que quizá deba configurar.
La configuración predeterminada utiliza una GPU por tarea, una buena línea base para cargas de trabajo de inferencia distribuida y entrenamiento distribuido si utiliza todos los nodos de GPU.
Para reducir la sobrecarga de comunicación durante el entrenamiento distribuido, Databricks recomienda establecer spark.task.resource.gpu.amount en el número de GPU por nodo de trabajo en la configuración de Spark del proceso. Esto crea solo una tarea de Spark para cada trabajo de Spark y asigna todas las GPU de ese nodo de trabajo a la misma tarea.
A fin de aumentar la paralelización para la inferencia de aprendizaje profundo distribuido, puede establecer spark.task.resource.gpu.amount en valores fraccionarios como 1/2, 1/3, 1/4, etc. 1/N. Esto crea más tareas de Spark que las GPU disponibles, lo que permite que más tareas simultáneas controlen las solicitudes de inferencia en paralelo. Por ejemplo, si se configura spark.task.resource.gpu.amount en 0.5, 0.33 o 0.25, las GPU disponibles se dividirán entre un número de tareas dos, tres o cuatro veces mayor.
Índices de GPU
Para las tareas de PySpark, Azure Databricks reasigna automáticamente las GPU asignadas a los índices basados en cero. En la configuración predeterminada que usa una GPU por tarea, puede utilizar la GPU predeterminada sin comprobar cuál está asignada a la tarea.
Si configura varias GPU por tarea, por ejemplo, cuatro, los índices de las GPU asignadas siempre son 0, 1, 2 y 3. Si necesita los índices físicos de las GPU asignadas, puede obtenerlos de la variable de entorno CUDA_VISIBLE_DEVICES.
Si usa Scala, puede obtener los índices de las GPU asignadas a la tarea desde TaskContext.resources().get("gpu").
Controlador de GPU de NVIDIA, CUDA y cuDNN
Azure Databricks instala el controlador NVIDIA y las bibliotecas necesarias para usar GPU en las instancias de trabajo y del controlador de Spark:
-
CUDA Toolkit, instalado en
/usr/local/cuda. - cuDNN: biblioteca de redes neuronales profundas CUDA de NVIDIA.
- NCCL: biblioteca de comunicaciones colectivas de NVIDIA.
La versión del controlador NVIDIA incluida es la 535.54.03, que admite CUDA 11.0. Para la serie de tipos de instancia NV A10 v5, la versión del controlador NVIDIA incluida es 535.154.05.
Para consultar las versiones de las bibliotecas incluidas, consulte las notas de la versión correspondientes a la versión específica de Databricks Runtime que esté utilizando.
Nota:
Este software contiene código fuente proporcionado por NVIDIA Corporation. En concreto, para admitir las GPU, Azure Databricks incluye código de CUDA Samples.
Contrato de licencia para el usuario final (CLUF) de NVIDIA
Al seleccionar una "versión de Databricks Runtime" habilitada para GPU en Azure Databricks, acepta implícitamente los términos y condiciones descritos en el CLUF de NVIDIA sobre las bibliotecas CUDA, cuDNN y Tesla, así como el Contrato de licencia de usuario final de NVIDIA (con el complemento NCCL) para la biblioteca NCCL.
Databricks Container Services en cómputo con GPU
Importante
Esta característica está en versión preliminar pública.
Puede usar Databricks Container Services en procesos con GPU para crear entornos de aprendizaje profundo portátiles con bibliotecas personalizadas. Consulte Databricks Container Services para cómputo dedicado para obtener instrucciones.
Para crear imágenes personalizadas para procesos con GPU, debe seleccionar una versión de runtime estándar en lugar de Databricks Runtime ML para GPU. Al seleccionar Use your own Docker container, puede elegir el cómputo con GPU con una versión estándar del entorno de ejecución. Las imágenes personalizadas para GPU se basan en los contenedores CUDA oficiales, que son diferentes a Databricks Runtime ML para GPU.
Al crear imágenes personalizadas para procesos con GPU, no se puede cambiar la versión del driver NVIDIA, ya que debe coincidir con la versión del equipo host.
databricksruntime
Docker Hub contiene imágenes base de ejemplo con funcionalidad para GPU. Los dockerfiles usados para generar estas imágenes se encuentran en repositorio de GitHub de contenedores de ejemplo, que también tiene detalles sobre lo que proporcionan las imágenes de ejemplo y cómo personalizarlas.