Share via


Compartilhamento de GPU em seu dispositivo de GPU Azure Stack Edge Pro

A unidade de processamento gráfico (GPU) é um processador especializado projetado para acelerar a renderização gráfica. As GPUs podem processar muitos dados simultaneamente, tornando-as úteis para aprendizado de máquina, edição de vídeo e aplicativos de jogos. Além da CPU para computação de uso geral, seus dispositivos de GPU Azure Stack Edge Pro podem conter uma ou duas GPUs Nvidia Tesla T4 para cargas de trabalho de computação intensiva, como inferência acelerada por hardware. Para obter mais informações, consulte GPU Tesla T4 da Nvidia.

Sobre o compartilhamento de GPU

Muitas cargas de trabalho de aprendizado de máquina ou outras cargas de trabalho de computação podem não precisar de uma GPU dedicada. As GPUs podem ser compartilhadas e o compartilhamento de GPUs entre cargas de trabalho em contêineres ou VM ajuda a aumentar a utilização da GPU sem afetar significativamente os benefícios de desempenho da GPU.

Usando GPU com VMs

No seu dispositivo Azure Stack Edge Pro, uma GPU não pode ser compartilhada ao implantar cargas de trabalho de VM. Uma GPU só pode ser mapeada para uma VM. Isso implica que você só pode ter uma VM GPU em um dispositivo com uma GPU e duas VMs em um dispositivo equipado com duas GPUs. Há outros fatores que também devem ser considerados ao usar VMs de GPU em um dispositivo que tenha o Kubernetes configurado para cargas de trabalho em contêineres. Para obter mais informações, consulte VMs GPU e Kubernetes.

Usando GPU com contêineres

Se você estiver implantando cargas de trabalho em contêineres, uma GPU poderá ser compartilhada de mais de uma maneira na camada de hardware e software. Com a GPU Tesla T4 no seu dispositivo Azure Stack Edge Pro, estamos limitados à partilha de software. No seu dispositivo, as duas abordagens a seguir para compartilhamento de software da GPU são usadas:

  • A primeira abordagem envolve o uso de variáveis de ambiente para especificar o número de GPUs que podem ser compartilhadas por tempo. Considere as seguintes advertências ao usar essa abordagem:

    • Você pode especificar uma ou ambas ou nenhuma GPU com esse método. Não é possível especificar o uso fracionado.
    • Vários módulos podem ser mapeados para uma GPU, mas o mesmo módulo não pode ser mapeado para mais de uma GPU.
    • Com a saída SMI da Nvidia, você pode ver a utilização geral da GPU, incluindo a utilização da memória.

    Para obter mais informações, consulte como implantar um módulo IoT Edge que usa GPU em seu dispositivo.

  • A segunda abordagem requer que você habilite o Multi-Process Service em suas GPUs Nvidia. MPS é um serviço de tempo de execução que permite que vários processos usando CUDA sejam executados simultaneamente em uma única GPU compartilhada. O MPS permite a sobreposição de operações de kernel e memcopy de diferentes processos na GPU para alcançar a máxima utilização. Para obter mais informações, consulte Multi-Process Service.

    Considere as seguintes advertências ao usar essa abordagem:

    • O MPS permite especificar mais sinalizadores na implantação da GPU.
    • Você pode especificar o uso fracionado via MPS, limitando assim o uso de cada aplicativo implantado no dispositivo. Você pode especificar a porcentagem de GPU a ser usada para cada aplicativo na env seção do deployment.yaml adicionando o seguinte parâmetro:
    // Example: application wants to limit gpu percentage to 20%
    
        env:
            - name: CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
                value: "20"
    

Utilização da GPU

Ao compartilhar GPU em cargas de trabalho conteinerizadas implantadas em seu dispositivo, você pode usar a Nvidia System Management Interface (nvidia-smi). Nvidia-smi é um utilitário de linha de comando que ajuda você a gerenciar e monitorar dispositivos GPU Nvidia. Para obter mais informações, consulte Nvidia System Management Interface.

Para exibir o uso da GPU, primeiro conecte-se à interface do PowerShell do dispositivo. Execute o Get-HcsNvidiaSmi comando e visualize a saída SMI da Nvidia. Você também pode ver como a utilização da GPU muda habilitando o MPS e, em seguida, implantando várias cargas de trabalho no dispositivo. Para obter mais informações, consulte Habilitar serviço multiprocesso.

Próximos passos