O cGPU é um módulo da Alibaba Cloud que isola memória e poder de computação da GPU. Ele permite que vários containers compartilhem uma única GPU sem interferir nos recursos uns dos outros. Este tópico aborda requisitos de compatibilidade e problemas conhecidos a verificar antes de implantar ou atualizar o cGPU.
Pré-requisitos
Um nó de GPU tem isolamento cGPU ativado se possuir qualquer um dos seguintes rótulos:
ack.node.gpu.schedule=cgpuack.node.gpu.schedule=core_memcgpu=true
Para consultar o mapeamento de versões entre os componentes ack-ai-installer e cGPU, acesse as notas de versão do ack-ai-installer.
Para obter mais informações sobre o cGPU, consulte a documentação oficial da NVIDIA.
Limitações
Limite de pods por GPU: O cGPU suporta no máximo 20 pods em uma única GPU. Pods agendados para uma GPU além desse limite não são executados.
Compatibilidade com SO otimizado para containers: As versões 1.5.18 e anteriores do cGPU podem impedir a inicialização do primeiro pod em um nó cGPU ao usar uma imagem de SO otimizada para containers da Alibaba Cloud. Atualize para
ack-ai-installer ≥ 1.12.6para resolver essa questão.Risco de kernel panic: Um deadlock conhecido no driver de kernel das versões 1.5.7 e anteriores do cGPU causa kernel panics no Linux. Atualize para
cGPU ≥ 1.5.10.
Compatibilidade de versões do cGPU
Compatibilidade com drivers NVIDIA
|
Versão do cGPU |
Drivers NVIDIA suportados |
Não suportados |
|
1.5.3 – 1.5.20 |
Séries 460, 470, 510, 515, 525, 535, 550, 560, 565, 570, 575 |
— |
|
1.0.5 – 1.5.2 |
460; 470 ≤ 470.161.03; 510 ≤ 510.108.03; 515 ≤ 515.86.01; 525 ≤ 525.89.03 |
Séries 535, 550, 560, 565, 570, 575 |
|
0.8.13 – 1.0.3 |
460; 470 ≤ 470.161.03 |
Séries 510, 515, 525, 535, 550, 560, 565, 570, 575 |
Compatibilidade com famílias de instâncias
|
Versão do cGPU |
Famílias de instâncias suportadas |
Não suportadas |
|
1.5.19 – 1.5.20 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
— |
|
1.5.9 – 1.5.18 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia |
ebmgn9t |
|
1.5.7 – 1.5.8 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v |
gn8ia/ebmgn8ia; ebmgn9t |
|
1.5.5 – 1.5.6 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t |
gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
|
1.0.3 – 1.5.3 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e; gn7i/gn7/gn7e/ebmgn7i/ebmgn7e |
gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
|
0.8.13 – 0.8.17 |
gn6i/gn6e/gn6v/gn6t/ebmgn6i/ebmgn6t/ebmgn6e |
gn7i/gn7/gn7e/ebmgn7i/ebmgn7e; gn8t/ebmgn8t; gn8is/gn8v/ebmgn8is/ebmgn8v; gn8ia/ebmgn8ia; ebmgn9t |
Compatibilidade com nvidia-container-toolkit
|
Versão do cGPU |
nvidia-container-toolkit suportado |
|
1.0.10 – 1.5.20 |
≤ 1.10 e 1.11 – 1.17 |
|
0.8.13 – 1.0.9 |
Apenas ≤ 1.10 (1.11 – 1.17 não suportado) |
Compatibilidade com versões de kernel
|
Versão do cGPU |
Versões de kernel suportadas |
|
1.5.9 – 1.5.20 |
3.x, 4.x, 5.x ≤ 5.15 |
|
1.5.3 – 1.5.8 |
3.x, 4.x, 5.x ≤ 5.10 |
|
1.0.3 – 1.5.2 |
3.x, 4.x, 5.x ≤ 5.1 |
|
0.8.17 |
3.x, 4.x, 5.x ≤ 5.0 |
|
0.8.10 – 0.8.13 |
3.x, 4.x (5.x não suportado) |
Solução de problemas
Kernel panic no Linux ao usar cGPU
Um deadlock no driver de kernel do cGPU faz processos concorrentes bloquearem uns aos outros, resultando em kernel panic do Linux. Esse problema afeta as versões 1.5.7 e anteriores do cGPU.
Atualize para cGPU ≥ 1.5.10 para evitar erros de kernel em novos services. Para instruções, consulte Atualizar a versão do cGPU de um nó.
Falha na inicialização de pod cGPU em nó com SO otimizado para containers
Ao usar uma imagem de SO otimizada para containers da Alibaba Cloud, o primeiro pod cGPU em um nó pode falhar ao iniciar e apresentar erro semelhante a:
Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 2, stdout: , stderr: Auto-detected mode as 'legacy': unknown
Esse cenário afeta as versões 1.5.18 e anteriores do cGPU. Atualize para ack-ai-installer ≥ 1.12.6. Para instruções, consulte Upgrade the shared GPU scheduling component.
Erro de modprobe ao criar pod cGPU
Se você encontrar um dos erros abaixo durante a criação de um pod cGPU:
modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted
modprobe: ERROR: could not insert 'km': Operation not permitted
A versão do sistema operacional é incompatível com o cGPU. Atualize o componente cGPU para a versão mais recente. Para instruções, consulte Upgrade the shared GPU scheduling component.
Falha na criação ou timeout em container de pod cGPU
Uma incompatibilidade entre as versões 1.0.10 e anteriores do cGPU e as versões 1.11 e posteriores do nvidia-container-toolkit causa esse problema. Atualize o componente cGPU para a versão mais recente. Para instruções, consulte Upgrade the shared GPU scheduling component.
Erro "Error occurs when creating cGPU instance: unknown"
O cGPU suporta no máximo 20 pods por GPU. Se a quantidade de pods agendados para uma GPU ultrapassar esse limite, os pods subsequentes não executam e esse erro aparece. Mantenha o número de pods por GPU em 20 ou menos.
Erro "Failed to initialize NVML" ao executar nvidia-smi
Executar nvidia-smi em um pod que usa recursos de agendamento compartilhado de GPU retorna:
Failed to initialize NVML: GPU access blocked by operating system
Uma incompatibilidade entre as versões 1.5.2 e anteriores do cGPU e versões de drivers de GPU lançadas após julho de 2023 causa esse erro. Para verificar a lista de datas de lançamento dos drivers de GPU, acesse Datas de lançamento de drivers de GPU. Para conhecer as versões padrão de drivers de GPU suportadas pelas versões de cluster do ACK, veja a Lista de versões de drivers NVIDIA suportadas pelo ACK.
Atualize o componente cGPU para a versão mais recente. Para instruções, consulte Upgrade the shared GPU scheduling component.