Compartilhar via


Aceleração de GPU para o Azure IoT Edge para Linux no Windows

Aplica-se a:Marca de seleção do IoT Edge 1.5 IoT Edge 1.5

Importante

O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

As GPUs são uma opção popular para cálculos de inteligência artificial porque oferecem recursos de processamento paralelo e geralmente executam inferências baseadas em visão mais rapidamente do que as CPUs. Para dar suporte a aplicativos de inteligência artificial e machine learning, o Azure IoT Edge para Linux no Windows (EFLOW) expõe uma GPU para o módulo Linux da máquina virtual.

O Azure IoT Edge para Linux no Windows dá suporte a várias tecnologias de passagem de GPU, incluindo:

  • DDA (Atribuição direta de dispositivo) – os núcleos de GPU são alocados à máquina virtual Linux ou ao host.

  • GPU-PV (Paravirtualização de GPU) – a GPU é compartilhada entre a máquina virtual Linux e o host.

Você deve selecionar o método de passagem apropriado durante a implantação para corresponder aos recursos com suporte do hardware de GPU do dispositivo.

Importante

Esses recursos podem incluir componentes desenvolvidos e de propriedade da NVIDIA Corporation ou seus licenciadores. O uso dos componentes é regido pelo Contrato de Licença do Usuário Final da NVIDIA localizado no site da NVIDIA.

Usando recursos de aceleração de GPU, você aceita e concorda com os termos do Contrato de Licença de End-User NVIDIA.

Pré-requisitos

Os recursos de aceleração de GPU do Azure IoT Edge para Linux no Windows atualmente dão suporte a um conjunto seleto de hardware de GPU. Além disso, usar esse recurso pode exigir versões específicas do Windows.

As GPUs com suporte e as versões necessárias do Windows são:

GPUs com suporte Tipo de passagem de GPU Versões do Windows com suporte
NVIDIA T4, A2 DDA Windows Server 2019
Windows Server 2022
Windows 10/11 (Pro, Enterprise, IoT Enterprise)
NVIDIA GeForce, Quadro, RTX GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)
iGPU Intel GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)

Importante

O suporte a GPU-PV pode ser limitado, conforme determinado pelo fornecedor de GPU, a determinadas gerações de processadores ou arquiteturas de GPU. Para obter mais informações, confira a documentação do driver iGPU da Intel ou a documentação do CUDA para WSL da NVIDIA.

Os usuários do Windows Server 2019 precisam usar no mínimo o build 17763 com todas as atualizações cumulativas atuais instaladas.

Os usuários do Windows 10 precisam usar a atualização de novembro de 2021, build 19044.1620 ou superior. Após a instalação, verifique sua versão de build executando winver no prompt de comando.

Não há suporte para passagem de GPU com virtualização aninhada, como a execução do EFLOW em uma máquina virtual do Windows.

Configuração e instalação do sistema

As seções a seguir contêm informações de instalação e configuração, de acordo com o tipo de GPU.

GPUs NVIDIA T4/A2

Para GPUs T4/A2, a Microsoft recomenda a instalação de um driver de mitigação de dispositivo do fornecedor da GPU. Embora seja opcional, a instalação de um driver de mitigação pode melhorar a segurança de sua implantação. Para obter mais informações, confira Implantar dispositivos gráficos usando a atribuição direta de dispositivo.

Aviso

Habilitar a passagem de dispositivo de hardware pode aumentar os riscos de segurança. A Microsoft recomenda um driver de mitigação de dispositivo do fornecedor da GPU, quando aplicável. Para obter mais informações, confira Implantar dispositivos gráficos usando a atribuição discreta de dispositivo.

GPUs NVIDIA GeForce/Quadro/RTX

Para GPUs NVIDIA GeForce/Quadro/RTX, baixe e instale o driver habilitado para NVIDIA CUDA para o WSL (Subsistema do Windows para Linux) a ser usado com os fluxos de trabalho existentes de ML do CUDA. Originalmente desenvolvidos para WSL, os drivers CUDA para WSL também são usados com o Azure IoT Edge para Linux no Windows.

Os usuários do Windows 10 também devem instalar o WSL porque algumas bibliotecas são compartilhadas entre o WSL e o Azure IoT Edge para Linux no Windows.

IGPUs da Intel

Para iGPUs Intel, baixe e instale o Driver gráfico intel com suporte para GPU WSL.

Os usuários do Windows 10 também devem instalar o WSL porque algumas bibliotecas são compartilhadas entre o WSL e o Azure IoT Edge para Linux no Windows.

Habilitar a aceleração de GPU na implantação do Azure IoT Edge para Linux no Windows

Depois de concluir a instalação do sistema, comece a criar sua implantação do Azure IoT Edge para Linux no Windows. Durante esse processo, habilite o suporte à GPU como parte da implantação do EFLOW.

Por exemplo, esses comandos criam uma máquina virtual habilitada para GPU com uma GPU NVIDIA A2 ou uma placa gráfica Intel Iris Xe.

#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"

#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"

Para localizar o nome da GPU, execute este comando ou procure adaptadores de exibição no Gerenciador de Dispositivos.

(Get-WmiObject win32_VideoController).caption

Depois de concluir a instalação, implante e execute módulos linux acelerados por GPU por meio do Azure IoT Edge para Linux no Windows.

Configurar a aceleração de GPU em uma implantação existente do Azure IoT Edge para Linux no Windows

Configure a GPU durante a implantação para a experiência mais simples. Para habilitar ou desabilitar a GPU após a implantação, use o set-eflowvm comando. Quando você usa set-eflowvm, o parâmetro padrão é usado para qualquer argumento que você não especificar. Por exemplo,

# Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384

# Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, or they're set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Reduces the cpuCount and memory (GPU must still be specified, or the GPU is removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096

Próximas etapas

  • Experimente exemplos de GPU dos exemplos de EFLOW. Esses exemplos mostram cenários comuns de fabricação e varejo, como detecção de defeitos, segurança do trabalho e gerenciamento de inventário. Esses exemplos de software livre podem ser um modelo de solução para criar seu próprio aplicativo de machine learning baseado em visão.

  • Saiba mais sobre as tecnologias de passagem de GPU na documentação do DDA e na postagem no blogGPU-PV.

Vários fornecedores de GPU fornecem guias de usuário para obter o máximo de seu hardware e software com o EFLOW: