Compartilhar via


Computação habilitada para GPU

Observação

Alguns tipos de instância habilitados para GPU estão em Beta e são marcados como tal na lista suspensa quando você seleciona os tipos de driver e de trabalho durante a criação da computação.

Visão geral

O Azure Databricks dá suporte à computação acelerada com unidades de processamento gráfico (GPUs). Este artigo descreve como criar computação com instâncias habilitadas para GPU e descreve os drivers e as bibliotecas de GPU instalados nessas instâncias.

Para saber mais sobre o aprendizado profundo na computação habilitada para GPU, consulte Aprendizado profundo.

Criar uma computação de GPU

A criação de uma computação de GPU é semelhante à criação de qualquer computação. Lembre-se do seguinte:

  • A caixa de seleção aprendizado de máquina deve ser marcada. A versão de ML da GPU é escolhida automaticamente com base no tipo de trabalho.
  • A caixa de seleção "Photon acceleration" deve ser desmarcada. Photon não tem suporte a tipos de instância de GPU.
  • O tipo de trabalho deve ser um tipo de instância de GPU.
  • A caixa de seleção Nó único pode ser selecionada para obter uma única instância de GPU.

O processo de configuração de instâncias de GPU usando a API de Clusters varia dependendo se o kind campo está definido. kind determina se sua solicitação usa a especificação de formulário simples :

  • Se kind = CLASSIC_PREVIEW, defina "use_ml_runtime": true.
  • Se você não definir o kind campo, defina spark_version como uma versão habilitada para GPU, como 15.4.x-gpu-ml-scala2.12.

Tipos de instância com suporte

Aviso

O Azure Databricks não dará mais suporte à ativação de computação usando a série de instâncias NC v3, uma vez que o Azure está descontinuando o Nc24rs até 31 de março de 2025 e as instâncias NC6s_v3, NC12s_v3 e NC24s_v3 até 30 de setembro de 2025.

O Azure Databricks dá suporte aos seguintes tipos de instância:

NCads_H100_v5

  • Tipo de GPU: GPU NVIDIA H100 NVL
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da 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: NVIDIA A100 PCIe GPU
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da CPU
Standard_NC24ads_A100_v4 1 80 GB 24 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: NVIDIA Ampere A100 40 GB Tensor Core GPU
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da CPU
Standard_ND96asr_v4 oito 40 GB x 8 96 900 GB

NVadsA10_v5

  • Tipo de GPU: GPU NVIDIA A10
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da 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 Setenta e dois 880 GB

NCasT4_v3

  • Tipo de GPU: GPU NVIDIA T4
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da CPU
Standard_NC4as_T4_v3 1 16 GB 4 28 GB
Standard_NC8as_T4_v3 1 16 GB oito 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
Nome da Instância Número de GPUs Memória de GPU vCPUs (unidades de processamento central virtual) Memória da 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 24 448 GB
Standard_NC24rs_v3 4 16 GB x 4 24 448 GB

Confira os Preços do Azure Databricks para obter uma lista atualizada dos tipos de instância de GPU com suporte e suas regiões de disponibilidade. Sua implantação do Azure Databricks deve residir em uma região com suporte para iniciar a computação habilitada para GPU.

Agendamento de GPU

O agendamento de GPU distribui tarefas do Spark com eficiência em um grande volume de GPUs.

O Databricks Runtime dá suporte ao agendamento com reconhecimento de GPU no Apache Spark 3.0. O Azure Databricks o pré-configura na computação de GPU.

Observação

O agendamento de GPU não está habilitado na computação de nó único.

Agendamento de GPU para IA e ML

spark.task.resource.gpu.amount é a única configuração do Spark relacionada ao agendamento com reconhecimento de GPU que talvez seja necessário configurar. A configuração padrão usa uma GPU por tarefa, que é uma boa linha de base para cargas de trabalho de inferência e treinamento distribuídos, se você usar todos os nós de GPU.

Para reduzir a sobrecarga de comunicação durante o treinamento distribuído, o Databricks recomenda definir spark.task.resource.gpu.amount como o número de GPUs por nó de trabalho na configuração do Spark de computação. Isso cria apenas uma tarefa para cada trabalho do Spark e atribui todas as GPUs nesse nó de trabalho à mesma tarefa.

Para aumentar a paralelização para inferência de aprendizado profundo distribuído, defina spark.task.resource.gpu.amount com valores fracionários, como 1/2, 1/3, 1/4... 1/N. Isso cria mais tarefas do Spark do que GPUs, permitindo que mais tarefas simultâneas lidem com as solicitações de inferência em paralelo. Por exemplo, se você definir spark.task.resource.gpu.amount como 0.5, 0.33 ou 0.25, as GPUs disponíveis serão divididas entre o dobro, o triplo ou o quádruplo do número de tarefas.

Índices de GPU

Para tarefas do PySpark, o Azure Databricks remapeia automaticamente as GPUs atribuídas para índices baseados em zero. Na configuração padrão que usa uma GPU por tarefa, você pode simplesmente usar a GPU padrão sem verificar qual GPU está atribuída à tarefa. Se você definir várias GPUs por tarefa, por exemplo, quatro, os índices das GPUs atribuídas serão sempre 0, 1, 2 e 3. Se você precisar dos índices físicos das GPUs atribuídas, poderá obter os índices da variável CUDA_VISIBLE_DEVICES de ambiente.

Se você usar o Scala, poderá obter os índices das GPUs atribuídas à tarefa de TaskContext.resources().get("gpu").

Driver NVIDIA GPU, CUDA e cuDNN

O Azure Databricks instala o driver NVIDIA e as bibliotecas necessárias para usar as GPUs em instâncias de trabalho e no driver do Spark:

  • Kit de ferramentas CUDA, instalado em /usr/local/cuda.
  • cuDNN: Biblioteca de Rede Neural Profunda CUDA da NVIDIA.
  • NCCL: Biblioteca de Comunicações Coletivas da NVIDIA.

A versão do driver NVIDIA incluída é 535.54.03, que dá suporte ao CUDA 11.0. Para a série de tipos de instância NV A10 v5, a versão do driver NVIDIA incluída é 535.154.05.

Para as versões das bibliotecas incluídas, consulte as notas sobre a versão específica do Databricks Runtime que você está usando.

Observação

Esse software contém o código-fonte fornecido pela NVIDIA Corporation. Especificamente, para dar suporte a GPUs, Azure Databricks inclui código de exemplos de CUDA.

EULA (Contrato de Licença de Usuário Final) da NVIDIA

Ao selecionar uma "Versão do Databricks Runtime" habilitada para a GPU no Azure Databricks, você concorda implicitamente com os termos e condições descritos no EULA da NVIDIA em relação às bibliotecas CUDA, cuDNN e Tesla e o Contrato de Licença de Usuário Final da NVIDIA (com o Suplemento NCCL) para a biblioteca NCCL.

Serviços de contêineres do Databricks na computação de GPU

Importante

Esse recurso está em uma versão prévia.

Você pode usar os Serviços de Contêiner do Databricks na computação com GPUs para criar ambientes portáteis de aprendizagem profunda com bibliotecas personalizadas. Confira Personalizar contêineres com o Serviço de Contêiner do Databricks para obter instruções.

Para criar imagens personalizadas para computação de GPU, você deve selecionar uma versão de runtime padrão em vez do Databricks Runtime ML para GPU. Quando você seleciona Usar seu próprio contêiner do Docker, pode escolher a computação de GPU com uma versão de runtime padrão. As imagens personalizadas para GPU são baseadas nos contêineres CUDA oficiais, que são diferentes do Databricks Runtime ML para GPU.

Ao criar imagens personalizadas para a computação de GPU, você não pode alterar a versão do driver NVIDIA, pois ela deve corresponder à versão do driver no computador host.

O databricksruntimeDocker Hub contém imagens base de exemplo com a funcionalidade de GPU. Os Dockerfiles usados para gerar essas imagens estão localizados no repositório de contêineres de exemplo do GitHub, que também tem detalhes sobre o que as imagens de exemplo fornecem e como personalizá-las.