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

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

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

As GPUs são uma escolha popular para cálculos de inteligência artificial, porque oferecem recursos de processamento paralelo e muitas vezes podem executar inferências baseadas em visão mais rapidamente do que CPUs. Para oferecer melhor suporte a aplicativos de inteligência artificial e aprendizado de máquina, o Azure IoT Edge para Linux no Windows (EFLOW) pode expor uma GPU ao módulo Linux da máquina virtual.

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

  • Direct Device Assignment (DDA) - Os núcleos de GPU são alocados para a máquina virtual Linux ou para o host.

  • GPU-Paravirtualização (GGP-PV) - 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 suportados do hardware da GPU do seu dispositivo.

Importante

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

Ao usar os recursos de aceleração de GPU, você está aceitando e concordando com os termos do Contrato de Licença de Usuário Final da 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 selecionado de hardware de GPU. Além disso, o uso desse recurso pode exigir versões específicas do Windows.

As GPUs suportadas e as versões necessárias do Windows estão listadas abaixo:

GPUs suportadas Tipo de passagem GPU Versões suportadas do Windows
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)
Intel iGPU [en] GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)

Importante

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

Os usuários do Windows Server 2019 devem usar a compilação mínima 17763 com todas as atualizações cumulativas atuais instaladas.

Os usuários do Windows 10 devem usar a compilação de atualização de novembro de 2021 19044.1620 ou superior. Após a instalação, você pode verificar sua versão de compilação executando winver no prompt de comando.

A passagem de GPU não é suportada com virtualização aninhada, como a execução de 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 configuração e instalação, de acordo com sua GPU.

NVIDIA T4/A2 GPUs

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

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, consulte Implantar dispositivos gráficos usando atribuição de dispositivo discreto.

NVIDIA GeForce/Quadro/RTX GPUs

Para GPUs NVIDIA GeForce/Quadro/RTX, baixe e instale o driver habilitado para NVIDIA CUDA para Windows Subsystem for Linux (WSL) para usar com seus fluxos de trabalho CUDA ML existentes. Originalmente desenvolvido para WSL, os drivers CUDA para WSL também são usados para o Azure IoT Edge para Linux no Windows.

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

Intel® iGPUs

Para Intel iGPUs, baixe e instale o driver de gráficos Intel com suporte a GPU WSL.

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

Habilite a aceleração de GPU em sua implantação do Azure IoT Edge Linux no Windows

Quando a configuração do sistema estiver concluída, você estará pronto para criar sua implantação do Azure IoT Edge para Linux no Windows. Durante esse processo, você deve habilitar a GPU como parte da implantação do EFLOW.

Por exemplo, os comandos a seguir 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 encontrar o nome da GPU, pode executar o seguinte comando ou procurar adaptadores de vídeo no Gestor de dispositivos.

(Get-WmiObject win32_VideoController).caption

Quando a instalação estiver concluída, você estará pronto para implantar e executar 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 Linux no Windows

Atribuir a GPU no momento da implantação resultará na experiência mais simples. No entanto, para ativar ou desativar a GPU após a implantação, use o comando 'set-eflowvm'. Ao usar 'set-eflowvm', o parâmetro padrão será usado para qualquer argumento não especificado. 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, otherwise they will be 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, otherwise the GPU will be 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óximos passos

Introdução aos exemplos

Visite a nossa página de amostras EFLOW para descobrir várias amostras de GPU que pode experimentar e utilizar. Esses exemplos ilustram cenários comuns de fabricação e varejo, como deteção de defeitos, segurança do trabalhador e gerenciamento de estoque. Os exemplos de código aberto podem servir como um modelo de solução para criar seu próprio aplicativo de aprendizado de máquina baseado em visão.

Saiba mais com os nossos parceiros

Vários fornecedores de GPU forneceram guias ao usuário sobre como aproveitar ao máximo seu hardware e software com o EFLOW.

Nota

Este guia não abrange GPUs baseadas em DDA, como NVIDIA T4 ou A2.

Mergulhe na tecnologia

Saiba mais sobre as tecnologias de passagem de GPU visitando a documentação do DDA e a postagem do blog GPU-PV.