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

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

A versão com suporte é a IoT Edge 1.4. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

As GPUs são uma opção popular para computação de inteligência artificial, pois oferecem recursos de processamento paralelo e muitas vezes podem executar inferência baseada em visão mais rapidamente do que as CPUs. Para aprimorar o suporte a aplicativos de inteligência artificial e machine learning, o EFLOW (Azure IoT Edge para Linux no Windows) pode expor uma GPU ao 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 pertencentes à 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 os recursos de aceleração de GPU, você está aceitando e concordando com os termos do Contrato de Licença do Usuário Final da NVIDIA.

Pré-requisitos

Atualmente, os recursos de aceleração de GPU do Azure IoT Edge para Linux no Windows dão suporte a um conjunto selecionado de hardware de GPU. Além disso, o uso desse recurso pode exigir versões do Windows específicas.

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

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 a determinadas gerações de processadores ou arquiteturas de GPU, conforme a determinação do fornecedor da 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, você pode verificar o de versão do 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 aprimorar 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 desenvolvido para o WSL, os drivers CUDA para WSL também são usados para o Azure IoT Edge para Linux no Windows.

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

Intel iGPUs

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

Windows 10 os usuários também devem instalar o WSL porque algumas das bibliotecas são compartilhadas entre WSL e 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 que a instalação do sistema for concluída, você poderá criar a implantação do Azure IoT Edge para Linux no Windows. Durante esse processo, você precisa 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 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, você pode executar o seguinte comando ou procurar adaptadores de vídeo no Gerenciador de dispositivos.

(Get-WmiObject win32_VideoController).caption

Quando a instalação for concluída, você poderá implantar e executar módulos Linux acelerados por GPU por meio do Azure IoT Edge para Linux no Windows.

Configurar a aceleração da 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 habilitar ou desabilitar 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óximas etapas

Introdução aos exemplos

Visite nossa página de amostras EFLOW para descobrir várias amostras de GPU que você pode experimentar e usar. Esses exemplos ilustram cenários comuns de fabricação e varejo, como detecção de defeitos, segurança do trabalhador e gerenciamento de estoque. As amostras 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 nossos parceiros

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

Observação

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 da DDA e a postagem no blog da GPU-PV.