Este tópico apresenta a solução de compartilhamento de GPU da Alibaba Cloud, descreve os benefícios da GPU Sharing Professional Edition e compara os recursos e cenários de uso das edições Basic e Professional. O conteúdo ajuda você a compreender e utilizar melhor o compartilhamento de GPU.
Informações básicas
O compartilhamento de GPU permite executar vários containers no mesmo dispositivo GPU. Após a Alibaba Cloud Container Service for Kubernetes (ACK) tornar o compartilhamento de GPU open-source, é possível implementar essa estrutura em clusters de containers tanto na Alibaba Cloud quanto em data centers on-premises. Isso possibilita que múltiplos containers compartilhem o mesmo dispositivo GPU e reduz os custos de uso.
Além da eficiência de custos, é fundamental garantir a operação estável dos containers na GPU. O isolamento dos recursos de GPU alocados para cada container limita o uso de recursos por container no mesmo dispositivo e evita interferências mútuas causadas pelo consumo excessivo. Para resolver esse problema, a indústria de computação oferece diversas soluções, como NVIDIA vGPU, Multi-Process Service (MPS) e vCUDA, que proporcionam um gerenciamento mais refinado do uso da GPU.
Para atender a esses requisitos, o ACK introduziu a solução de compartilhamento de GPU. Essa solução não apenas permite que uma única GPU seja compartilhada por várias tarefas, mas também isola a memória e particiona o poder de computação da GPU para diferentes aplicações no mesmo dispositivo.
Recursos e benefícios
A solução de compartilhamento de GPU utiliza o driver de kernel de servidor desenvolvido pela Alibaba Cloud para proporcionar um uso mais eficiente dos drivers subjacentes das GPUs NVIDIA. O compartilhamento de GPU oferece os seguintes recursos:
Alta compatibilidade: o compartilhamento de GPU é compatível com soluções open-source padrão, como Kubernetes e NVIDIA Docker.
Facilidade de uso: a solução proporciona uma excelente experiência ao usuário. Para substituir uma biblioteca Compute Unified Device Architecture (CUDA) de uma aplicação de IA, não é necessário recompilar a aplicação ou criar uma nova imagem de container.
Estabilidade: o compartilhamento de GPU garante operações subjacentes estáveis em GPUs NVIDIA. Operações de API em bibliotecas CUDA e algumas operações de API privadas na CUDA Deep Neural Network (cuDNN) são complexas de invocar.
Isolamento de recursos: a solução assegura que a memória de GPU e o poder de computação alocados não interfiram entre si.
O compartilhamento de GPU oferece uma solução econômica, confiável e fácil de usar que permite ativar o agendamento de GPU e o isolamento de memória.
|
Benefício |
Descrição |
|
Suporte a compartilhamento, agendamento e isolamento de memória de GPU. |
|
|
Políticas flexíveis de compartilhamento de GPU e isolamento de memória. |
|
|
Monitoramento abrangente de recursos de GPU. |
Permite monitorar tanto GPUs exclusivas quanto compartilhadas. |
|
Gratuito |
É necessário ativar o Cloud Native AI Suite antes de usar o compartilhamento de GPU. A partir das 00:00:00 (UTC+8) de 6 de junho de 2024, o Cloud Native AI Suite está totalmente aberto para uso gratuito. |
Observações de uso
O compartilhamento de GPU suporta apenas clusters ACK Pro. Para mais informações sobre como instalar e usar o compartilhamento de GPU, consulte os seguintes tópicos:
Também é possível utilizar os seguintes recursos avançados do compartilhamento de GPU:
Ativar compartilhamento de múltiplas GPUs com agendamento de GPU compartilhada
Alocar poder de computação via agendamento de GPU compartilhada
Configurar a política de seleção de GPU para compartilhamento
Configurar compartilhamento de GPU sem isolamento de memória
Configurar uma política de agendamento cGPU para compartilhamento
Termos
Modo compartilhado e modo exclusivo
O modo compartilhado permite que vários pods compartilhem uma única GPU, conforme ilustrado na figura a seguir. 
O modo exclusivo permite que um pod ocupe uma ou mais GPUs de forma exclusiva, conforme mostrado na figura a seguir. 
Isolamento de memória da GPU
O compartilhamento de GPU garante apenas que vários pods executem em uma única GPU, mas não impede a contenção de recursos entre eles quando o isolamento de memória está desativado. O exemplo a seguir ilustra essa situação.
O Pod 1 solicita 5 GiB de memória de GPU e o Pod 2 solicita 10 GiB. Com o isolamento de memória desativado, o Pod 1 pode consumir até 10 GiB, incluindo os 5 GiB solicitados pelo Pod 2. Consequentemente, o Pod 2 falha ao iniciar devido à insuficiência de memória. Quando o isolamento de memória está ativado, se o Pod 1 tentar usar uma quantidade de memória superior ao valor solicitado, o módulo de isolamento forçará a falha do Pod 1. 