Usar instâncias de GPU ou RDMA em pools do Lote

Para executar determinados trabalhos do Batch, você pode usar tamanhos de VM do Azure desenvolvidos para computação em larga escala. Por exemplo:

  • Para executar cargas de trabalho MPI de várias instâncias, escolha as séries HB, HC, NC ou ND ou outros tamanhos que tenham um adaptador de rede para Acesso Remoto Direto à Memória (RDMA). Esses tamanhos se conectam a uma rede InfiniBand para comunicação entre nós, o que pode acelerar aplicativos de MPI.

  • Para aplicativos CUDA, escolha os tamanhos da série N que incluem as placas GPU (unidade de processamento gráfico) NVIDIA Tesla.

Este artigo fornece diretrizes e exemplos para usar alguns dos tamanhos especializados do Azure nos pools do Lote. Para obter especificações e contexto, consulte:

  • Tamanhos de VM de computação de alto desempenho (Linux, Windows)

  • Tamanhos de VM habilitados para GPU (Linux, Windows)

Observação

Determinados tamanhos de VM podem não estar disponíveis nas regiões onde você cria as contas do Batch. Para verificar se um tamanho de VM está disponível, consulte Produtos disponíveis por região e Escolher um tamanho de VM para um pool do Batch.

Dependências

Os recursos de GPU ou RDMA de tamanhos de computação intensiva no Lote têm suporte apenas em determinados sistemas operacionais. Os sistemas operacionais com suporte para esses tamanhos de VM incluem apenas um subconjunto daqueles disponíveis para criação de máquina virtual. Dependendo de como você cria o pool do Lotes, talvez seja necessário instalar ou configurar um driver adicional ou outro software nos nós. As tabelas a seguir resumem essas dependências. Consulte os artigos vinculados para obter detalhes. Para ver as opções de configuração dos pools do Batch, consulte mais adiante neste artigo.

Pools do Linux – configuração de máquina virtual

Tamanho Capacidade Sistemas operacionais Software necessário Configurações do pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS
(Azure Marketplace)
Intel MPI 5

Drivers RDMA para Linux
Habilitar a comunicação entre nós, desabilitar a execução de tarefas simultâneas
Séries NCv3, NDv2, NDv4, NDv5 NVIDIA Tesla GPU (varia de acordo com a série) Ubuntu 22.04 LTS
(Azure Marketplace)
Drivers CUDA Toolkit ou NVIDIA CUDA N/D
Séries NVv3, NVv4, NVv5 GPU de Visualização Acelerada Ubuntu 22.04 LTS
(Azure Marketplace)
Drivers NVIDIA GRID ou drivers GPU AMD N/D

*Os tamanhos da série N compatíveis com RDMA também incluem GPUs NVIDIA Tesla

Importante

Este documento se refere a uma versão do Linux que está se aproximando do fim de vida útil (EOL) ou já chegou a ele. Considere atualizar para uma versão mais atual.

Pools do Windows – Configuração de Máquina Virtual

Tamanho Capacidade Sistemas operacionais Software necessário Configurações do pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Windows Server 2016, 2012 R2 ou
2012 (Azure Marketplace)
Microsoft MPI 2012 R2 ou posterior, ou
Intel MPI 5

Drivers de RDMA do Windows
Habilitar a comunicação entre nós, desabilitar a execução de tarefas simultâneas
Séries NC, NCv2, NCv3, ND, NDv2 NVIDIA Tesla GPU (varia de acordo com a série) Windows Server 2016 ou
2012 R2 (Azure Marketplace)
Drivers CUDA Toolkit ou NVIDIA CUDA N/D
Séries NV, NVv2, NVv4 GPU NVIDIA Tesla M60 Windows Server 2016 ou
2012 R2 (Azure Marketplace)
Drivers NVIDIA GRID N/D

*Os tamanhos da série N compatíveis com RDMA também incluem GPUs NVIDIA Tesla

Pools do Windows – Configuração de Serviços de Nuvem

Aviso

Os pools de configuração dos Serviços de Nuvem estão obsoletos. Como alternativa, use pools de Configuração de Máquina Virtual.

Tamanho Capacidade Sistemas operacionais Software necessário Configurações do pool
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012 ou
2008 R2 (família de sistema operacional convidado)
Microsoft MPI 2012 R2 ou posterior, ou
Intel MPI 5

Drivers de RDMA do Windows
Habilitar a comunicação entre nós,
desabilitar a execução de tarefas simultâneas

Observação

Os tamanhos da série N não são compatíveis com os pools de Configuração dos Serviços de Nuvem.

Opções de configuração do pool

Para configurar um tamanho especializado de VM para seu pool do Batch, você tem várias opções para instalar o software e os drivers necessários:

  • Para pools na configuração da máquina virtual, escolha uma imagem de VM do Azure Marketplace pré-configurada que tenha drivers e software pré-instalados. Exemplos:

  • Crie uma imagem personalizada da VM do Windows ou Linux na qual você instalou drivers, software ou outras configurações necessárias para o tamanho da VM.

  • Instale os drivers de GPU e RDMA usando a extensão da VM.

  • Crie um pacote de aplicativo do Lote com base em um driver compactado ou instalador de aplicativo. Em seguida, configure o Lote para implantar esse pacote em nós de pool e instale uma vez quando cada nó for criado. Por exemplo, se o pacote de aplicativos for um instalador, crie uma linha de comando start task para instalar silenciosamente o aplicativo em todos os nós do pool. Considere usar um pacote de aplicativo e uma tarefa de inicialização do pool caso sua carga de trabalho dependa de uma versão específica de driver.

    Observação

    A tarefa de inicialização deve ser executada com privilégios elevados (de administrador) e deve aguardar a conclusão com êxito. Tarefas de longa duração aumentam o tempo necessário para provisionar um pool do Batch.

Exemplo: drivers de GPU da NVIDIA em pool de VMs NC do Windows

Para executar aplicativos CUDA em um pool de nós do Windows NC, você precisa instalar drivers de GPU NVIDIA. As etapas de exemplo a seguir usam um pacote de aplicativos para instalar os drivers GPU NVIDIA. Será possível escolher essa opção, se a carga de trabalho depender de uma versão específica do driver GPU.

  1. Baixe um pacote de instalação dos drivers GPU no Windows Server 2016 pelo Site da NVIDIA - por exemplo, versão 411.82. Salve o arquivo localmente usando um nome curto como GPUDriverSetup.exe.
  2. Crie um arquivo zip do pacote.
  3. Envie o pacote para sua conta do Batch. Para obter as etapas, consulte as diretrizes sobre pacotes de aplicativos. Especifique uma ID de aplicativo como GPUDriver e uma versão como 411.82.
  4. Usando as APIs do Lote ou o portal do Azure, crie um pool na configuração da máquina virtual com o número desejado de nós e escala. A tabela a seguir mostra as configurações de exemplo para instalar os drivers GPU NVIDIA silenciosamente usando uma tarefa inicial:
Configuração Valor
Tipo de imagem Marketplace (Linux/Windows)
Publicador MicrosoftWindowsServer
Oferta WindowsServer
Sku 2016-Datacenter
Tamanho do nó NC6 Padrão
Referências do pacote de aplicativos GPUDriver, versão 411.82
Início da tarefa ativado Verdadeiro
Linha de comando - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Identidade de usuário – Pool autouser, administrador
Aguardar o êxito – True

Exemplo: drivers de GPU da NVIDIA em um pool de VMs NC do Linux

Para executar aplicativos CUDA em um pool de nós NC do Linux, é necessário instalar os drivers de GPU NVIDIA Tesla necessários do CUDA Toolkit. As seguintes etapas de exemplo criam e implantam uma imagem personalizada do Ubuntu 22.04 LTS com os drivers de GPU:

  1. Implante uma VM do Azure série NC executando Ubuntu 22.04 LTS. Por exemplo, crie a VM na região Centro-Sul dos EUA.
  2. Adicione a extensão dos drivers GPU NVIDIA à VM, usando o portal do Azure, um computador cliente que conecta-se à assinatura do Azure ou ao Azure Cloud Shell. Como alternativa, siga as etapas para conectar à VM e instalar os drivers CUDA manualmente.
  3. Siga as etapas para criar uma imagem do Azure Compute Gallery para o Batch.
  4. Crie uma conta do Batch em uma região compatível com VMs NC.
  5. Usando as APIs do Batch ou o portal do Azure, crie um pool usando a imagem personalizada, com o número de nós e a escala desejados. A tabela a seguir mostra configurações de exemplo do pool para a imagem:
Configuração Valor
Tipo de imagem Imagem personalizada
Imagem personalizada Nome da imagem
SKU do agente do nó batch.node.ubuntu 22.04
Tamanho do nó NC6 Padrão

Exemplo: Microsoft MPI em um pool de VM do Windows H16r

Para executar aplicativos Windows MPI em um pool de nós de VM do Azure H16r, é necessário configurar a extensão HpcVmDrivers e instalar o Microsoft MPI. A seguir, são apresentados exemplos de etapas para implantar uma imagem personalizada do Windows Server 2016 com os drivers e softwares necessários:

  1. Implante uma VM do Azure H16r em execução no Windows Server 2016. Por exemplo, crie a VM na região Oeste dos EUA.
  2. Adicione a extensão HpcVmDrivers à VM, executando um comando do Azure PowerShell de um computador cliente que conecta-se à assinatura do Azure ou usando o Azure Cloud Shell.
  3. Faça uma conexão de Área de Trabalho Remota para a VM.
  4. Baixe o pacote de instalação (MSMpiSetup.exe) da última versão do Microsoft MPI e, em seguida, instale o Microsoft MPI.
  5. Siga as etapas para criar uma imagem do Azure Compute Gallery para o Batch.
  6. Usando as APIs do Batch ou o portal do Azure, crie um pool usando a Galeria de Computação do Azure com o número desejado de nós e a configuração de escala desejada. A tabela a seguir mostra configurações de exemplo do pool para a imagem:
Configuração Valor
Tipo de imagem Imagem personalizada
Imagem personalizada Nome da imagem
SKU do agente do nó batch.node.windows amd64
Tamanho do nó H16r Standard
Comunicação entre nós habilitada Verdadeiro
Máx. de tarefas por nó 1

Próximas etapas

  • Para executar trabalhos de MPI em um pool do Lote do Azure, consulte os exemplos para Windows ou Linux.