Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Desativar o recurso de isolamento de memória do cGPU

Última atualização: Jun 27, 2026

Este tópico utiliza um aplicativo de exemplo simples para demonstrar como desativar o isolamento de memória GPU em workloads de um cluster. O agendador de compartilhamento de GPU do cGPU aloca uma quantidade fixa de memória GPU para cada contêiner e aplica esse limite durante a execução. Ao desativar o isolamento de memória, o contêiner consegue visualizar e utilizar toda a memória física da GPU do nó, enquanto o agendador continua rastreando a cota alocada para fins de agendamento.

Desative o isolamento de memória quando um workload exigir acesso total à memória GPU na inicialização — por exemplo, quando frameworks de deep learning como TensorFlow verificam a memória GPU disponível durante a inicialização e a pré-alocam. Sem desativar o isolamento, esses frameworks enxergam apenas a cota alocada (por exemplo, 3 GiB) e podem falhar ou apresentar baixo desempenho.

Este procedimento se aplica a clusters dedicados ACK e clusters ACK Pro que possuem o recurso de isolamento de memória do cGPU ativado.

Pré-requisitos

Antes de começar, verifique se você possui:

Desativar o isolamento de memória para um contêiner

Etapa 1: Verificar o status atual do compartilhamento de GPU

Execute o comando abaixo para visualizar como a memória GPU está alocada nos nós do seu cluster:

kubectl inspect cgpu

A saída esperada é semelhante a:

NAME                      IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
cn-beijing.192.16x.x.xx3  192.16x.x.xx3  0/15                   0/15
cn-beijing.192.16x.x.xx1  192.16x.x.xx1  0/15                   0/15
cn-beijing.192.16x.x.xx2  192.16x.x.xx2  0/15                   0/15
---------------------------------------------------------------------
Allocated/Total GPU Memory In Cluster:
0/45 (0%)
Para obter informações detalhadas sobre o compartilhamento de GPU, execute kubectl inspect cgpu -d .

Etapa 2: Implantar um contêiner com isolamento de memória desativado

Crie um Job do Kubernetes que solicite memória GPU via cGPU, mas opte por não aplicar o isolamento de memória. Defina a variável de ambiente CGPU_DISABLE como "true" na especificação do contêiner.

apiVersion: batch/v1
kind: Job
metadata:
  name: disable-cgpu
spec:
  parallelism: 1
  template:
    metadata:
      labels:
        app: disable-cgpu
    spec:
      containers:
      - name: disable-cgpu
        image: registry.cn-hangzhou.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5
        env:
        - name: CGPU_DISABLE   # Set to "true" to disable memory isolation
          value: "true"
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            aliyun.com/gpu-mem: 3   # Requests 3 GiB of GPU memory for scheduling
        workingDir: /root
      restartPolicy: Never

Campos principais nesta configuração:

Campo

Descrição

CGPU_DISABLE: "true"

Desativa a aplicação do isolamento de memória. O contêiner visualiza toda a memória física da GPU em vez de apenas a cota alocada.

aliyun.com/gpu-mem: 3

Solicita 3 GiB de memória GPU ao agendador cGPU. Este valor serve para agendamento e rastreamento de alocação, não para imposição de limites quando CGPU_DISABLE estiver definido.

Etapa 3: Verificar o agendamento de GPU

Após o agendamento do Job, confirme se o agendador cGPU alocou a memória GPU solicitada em um nó:

kubectl inspect cgpu

A saída esperada é semelhante a:

NAME                      IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
cn-beijing.192.16x.x.xx1  192.16x.x.xx1  0/15                   0/15
cn-beijing.192.16x.x.xx2  192.16x.x.xx2  0/15                   0/15
cn-beijing.192.16x.x.xx3  192.16x.x.xx3  3/15                   3/15
---------------------------------------------------------------------
Allocated/Total GPU Memory In Cluster:
3/45 (6%)

Analise os campos abaixo para confirmar que o agendamento foi bem-sucedido:

  • GPU0(Allocated/Total) em cn-beijing.192.16x.x.xx3: Exibe 3/15, confirmando que 3 GiB foram alocados do total de 15 GiB deste nó.

  • Allocated/Total GPU Memory In Cluster: Mostra 3/45 (6%), indicando que a alocação no nível do cluster foi atualizada corretamente.

Confirmar que o isolamento de memória está desativado

Utilize um dos métodos a seguir para validar se o contêiner consegue acessar toda a memória física da GPU, e não apenas a cota alocada.

Método 1: Consultar o log do aplicativo

kubectl logs disable-cgpu-xxxx --tail=1

A saída esperada é semelhante a:

2020-08-25 08:14:54.927965: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 15024 MB memory) -> physical GPU (device: 0, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:07.0, compute capability: 7.0)

Valide os seguintes valores:

  • 15024 MB memory: O contêiner identifica 15.024 MiB — correspondente à memória física total da GPU, e não à cota de 3 GiB. Caso o isolamento de memória estivesse ativo, este valor mostraria 3 GiB.

Método 2: Executar nvidia-smi dentro do contêiner

kubectl exec disable-cgpu-xxxx nvidia-smi

A saída esperada é semelhante a:

Tue Aug 25 08:23:33 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  Off  | 00000000:00:07.0 Off |                    0 |
| N/A   33C    P0    55W / 300W |  15453MiB / 16130MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

Verifique estes valores:

  • 15453MiB / 16130MiB: O contêiner está utilizando 15.453 MiB do total de 16.130 MiB disponíveis no host. Se o isolamento de memória estivesse habilitado, o uso ficaria restrito a 3 GiB.

Próximos passos