Máquina virtual (VM) da unidade de processamento gráfico (GPU) no Azure Stack Hub

Este artigo descreve que modelos de unidades de processamento gráfico (GPU) são suportados num sistema integrado do Azure Stack Hub. Também pode encontrar instruções sobre como instalar os controladores utilizados com as GPUs. O suporte de GPU no Azure Stack Hub permite soluções como inteligência artificial, preparação, inferência e visualização de dados. O AMD Radeon Instinct MI25 pode ser utilizado para suportar aplicações com utilização intensiva de gráficos, como o AutoCAD de Autodesk.

Pode escolher entre três modelos de GPU. Estão disponíveis em GPUs NVIDIA V100, NVIDIA T4 e AMD MI25. Estas GPUs físicas estão alinhadas com os seguintes tipos de máquinas virtuais (VMs) da Série N do Azure da seguinte forma:

Aviso

As VMs de GPU não são suportadas nesta versão. Terá de atualizar para o Azure Stack Hub 2005 ou posterior. Além disso, o hardware do Azure Stack Hub tem de ter GPUs físicas.

NCv3

As VMs da série NCv3 são alimentadas por GPUs NVIDIA Tesla V100. Os clientes podem tirar partido destas GPUs atualizadas para cargas de trabalho HPC tradicionais, como modelação de reservatórios, sequenciação de ADN, análise de proteínas, simulações monte Carlo, entre outras.

Tamanho vCPU Memória: GiB Armazenamento (SSD) temporário GiB GPU Memória de GPU: GiB Discos de dados máximos NICs máximos
Standard_NC6s_v3 6 112 736 1 16 12 4
Standard_NC12s_v3 12 224 1474 2 32 24 8
Standard_NC24s_v3 24 448 2948 4 64 32 8

NVv4

As máquinas virtuais da série NVv4 são alimentadas por GPUs MI25 AMD Radeon Instinct. Com a série NVv4, o Azure Stack Hub está a introduzir máquinas virtuais com GPUs parciais. Este tamanho pode ser utilizado para aplicações gráficas aceleradas de GPU e ambientes de trabalho virtuais. Atualmente, as máquinas virtuais NVv4 suportam apenas o sistema operativo convidado do Windows.

Tamanho vCPU Memória: GiB Armazenamento (SSD) temporário GiB GPU Memória de GPU: GiB Discos de dados máximos NICs máximos
Standard_NV4as_v4 4 14 88 1/8 2 4 2
Standard_NV8as_v4 8 28 176 1/4 4 8 4
Standard_NV16as_v4 16 56 352 1/2 8 16 8
Standard_NV32as_v4 32 112 704 1 16 32 8

NCasT4_v3

Tamanho vCPU Memória: GiB GPU Memória de GPU: GiB Discos de dados máximos NICs máximos
Standard_NC4as_T4_v3 4 28 1 16 8 4
Standard_NC8as_T4_v3 8 56 1 16 16 8
Standard_NC16as_T4_v3 16 110 1 16 32 8
Standard_NC64as_T4_v3 64 440 4 64 32 8

NC_A100 v4

As VMs da série NC_A100 são alimentadas por GPUs NVIDIA Ampere A100, a sucessora das GPUs Tesla V100. Pode tirar partido destas GPUs atualizadas para cargas de trabalho HPC tradicionais, como modelação de reservatórios, sequenciação de ADN, análise de proteínas, simulações de Monte Carlo, entre outras.

Tamanho vCPU Memória: GiB Armazenamento temporário (GiB) Discos de dados máximos GPU GiB de memória gpu NICs máximos
Standard_NC24ads_A100_v4 24 220 1123 12 1 80 2
Standard_NC48ads_A100_v4 48 440 2246 24 2 160 4

Considerações sobre o sistema de GPU

  • A GPU tem de ser um destes SKUs: AMD MI-25, Nvidia V100 (e variantes), Nvidia T4.
  • Número de GPUs por servidor suportado (1, 2, 3, 4). Os favoritos são: 1, 2 e 4.
  • Todas as GPUs têm de ter exatamente o mesmo SKU em toda a unidade de dimensionamento.
  • Todas as quantidades de GPU por servidor têm de ser as mesmas em toda a unidade de dimensionamento.
  • O tamanho da partição de GPU (para AMD Mi25) tem de ser o mesmo em todas as VMs de GPU na unidade de escala.

Planeamento de capacidade

O planeador de capacidade do Azure Stack Hub foi atualizado para suportar configurações de GPU. Está acessível em https://aka.ms/azstackcapacityplanner.

Adicionar GPUs num Azure Stack Hub existente

Agora, o Azure Stack Hub suporta a adição de GPUs a qualquer sistema existente. Para tal, execute stop-azurestack, execute o procedimento stop-azurestack, adicione GPUs e, em seguida, execute start-azurestack até à conclusão. Se o sistema já tiver GPUs, todas as VMs de GPU criadas anteriormente terão de ser paradas desalocadas e, em seguida, reiniciadas.

Patch and update, FRU behavior of VMs

As VMs de GPU serão submetidas a períodos de indisponibilidade durante operações como patch e atualização (PnU) e substituição de hardware (FRU) do Azure Stack Hub. A tabela seguinte abrange o estado da VM conforme observado durante estas atividades e a ação manual que pode efetuar para disponibilizar estas VMs após a operação.

Operação PnU – Atualização Completa, Atualização do OEM FRU
Estado da VM Indisponível durante a atualização. Pode ser disponibilizado com a operação manual. A VM está automaticamente online após a atualização. Indisponível durante a FRU. Pode ser disponibilizado com a operação manual. A VM tem de ser reativada após a FRU
Operação manual Se a VM precisar de ser disponibilizada durante a atualização, se existirem partições de GPU disponíveis, a VM pode ser reiniciada a partir do portal ao clicar no botão Reiniciar . A VM voltará automaticamente após a atualização A VM não está disponível durante a FRU. Se existirem GPUs disponíveis, a VM poderá ser interrompida e reiniciada durante a FRU. Após a conclusão da FRU, a VM tem de ser interrompida com o botão Parar e iniciada a cópia de segurança com o botão Iniciar .

Instalação do controlador convidado

Os seguintes cmdlets do PowerShell podem ser utilizados para a instalação do controlador:

$VmName = <VM Name In Portal>
$ResourceGroupName = <Resource Group of VM>
$Location = "redmond"
$driverName = <Give a name to the driver>
$driverPublisher = "Microsoft.HpcCompute"
$driverType = <Specify Driver Type> #GPU Driver Types: "NvidiaGpuDriverWindows"; "NvidiaGpuDriverLinux"; "AmdGpuDriverWindows"
$driverVersion = <Specify Driver Version> #Nvidia Driver Version:"1.3"; AMD Driver Version:"1.0"

Set-AzureRmVMExtension  -Location $Location `
                            -Publisher $driverPublisher `
                            -ExtensionType $driverType `
                            -TypeHandlerVersion $driverVersion `
                            -VMName $VmName `
                            -ResourceGroupName $ResourceGroupName `
                            -Name $driverName `
                            -Settings $Settings ` # If no settings are set, omit this parameter
                            -Verbose

Dependendo do SO, escreva e conectividade da VM da GPU do Azure Stack Hub, terá de modificar com as definições abaixo.

AMD MI25

A versão do controlador convidado tem de corresponder à versão do Azure Stack Hub, independentemente do estado de conectividade. A utilização de versões mais recentes não alinhadas com a versão do Azure Stack Hub pode causar problemas de utilização.

Versão do Azure Stack Hub Controlador amd convidado
2206 21.Q2-1, 20.Q4-1
2108 21.Q2-1, 20.Q4-1
2102 21.Q2-1, 20.Q4-1

Ligada

Utilize o script do PowerShell na secção anterior com o tipo de controlador adequado para AMD. O artigo Instalar controladores GPU AMD em VMs da série N com o Windows fornece instruções sobre como instalar o controlador para o AMD Radeon Instinct MI25 dentro da VM ativada para GPU-P NVv4, juntamente com passos sobre como verificar a instalação do controlador.

Desligado

Uma vez que a extensão retira o controlador de uma localização na Internet, uma VM desligada da rede externa não consegue aceder ao mesmo. Pode transferir o controlador da tabela anterior e carregá-lo para uma conta de armazenamento na sua rede local que esteja acessível à VM.

Adicione o controlador AMD a uma conta de armazenamento e especifique o URL para essa conta em Settings. Estas definições têm de ser utilizadas no cmdlet Set-AzureRMVMExtension . Por exemplo:

$Settings = @{
"DriverURL" = <URL to driver in storage account>
}

NVIDIA

Os controladores NVIDIA têm de ser instalados na máquina virtual para cargas de trabalho CUDA ou GRID com a GPU.

Caso de utilização: gráficos/grelha de visualização

Este cenário requer a utilização de controladores GRID. Os controladores grid podem ser transferidos através do Hub de Aplicações NVIDIA, desde que tenha as licenças necessárias. Os controladores GRID também necessitam de um servidor de licenças GRID com licenças GRID adequadas antes de utilizar os controladores GRID na VM.

$Settings = @{
"DriverURL" = "https://download.microsoft.com/download/e/8/2/e8257939-a439-4da8-a927-b64b63743db1/431.79_grid_win10_server2016_server2019_64bit_international.exe"; "DriverCertificateUrl" = "https://go.microsoft.com/fwlink/?linkid=871664"; 
"DriverType"="GRID"
}

Caso de utilização: computação/CUDA – Ligado

Os controladores CUDA não precisam de um servidor de licenças e não precisam de definições modificadas.

Caso de utilização: computação/CUDA – Desligado

As ligações para controladores CUDA NVIDIA podem ser obtidas através da ligação: https://raw.githubusercontent.com/Azure/azhpc-extensions/master/NvidiaGPU/resources.json

Windows:

$Settings = @{
"DriverURL" = "";
"DriverCertificateUrl" = "https://go.microsoft.com/fwlink/?linkid=871664"; 
"DriverType"="CUDA"
}

Linux:

Terá de referenciar alguns URLs para as suas definições.

URL Notas
PUBKEY_URL A PUBKEY_URL é a chave pública para o repositório do controlador Nvidia e não para a VM do Linux. É utilizado para instalar o controlador do Ubuntu.
DKMS_URL DKMS_URL é utilizado para obter o pacote para compilar o módulo kernel Nvidia em RedHat/CentOs.
DRIVER_URL DRIVER_URL é o URL para transferir as informações do repositório do controlador Nvidia e é adicionado à lista de repositórios da VM do Linux.
LIS_URL LIS_URL é o URL para transferir o pacote do Serviço de Integração do Linux para RedHat/CentOs, Linux Integration Services v4.3 para Hyper-V e Azure no URL https://www.microsoft.com/download/details.aspx?id=55106 por predefinição, não está instalado LIS_RHEL_ver é a versão do kernel de contingência que deve funcionar com o controlador Nvidia. É utilizado em RedHat/CentOs se o kernel da VM do Linux não for compatível com o controlador Nvidia pedido.

Adicione os URLs às suas definições.

$Settings=@{
"isCustomInstall"=$true;
"DRIVER_URL"="https://go.microsoft.com/fwlink/?linkid=874273";
"CUDA_ver"="10.0.130";
"PUBKEY_URL"="http://download.microsoft.com/download/F/F/A/FFAC979D-AD9C-4684-A6CE-C92BB9372A3B/7fa2af80.pub";
"DKMS_URL"="https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm";
"LIS_URL"="https://aka.ms/lis";
"LIS_RHEL_ver"="3.10.0-1062.9.1.el7"
}

Passos seguintes