Todos os produtos
Search
Central de documentação

:Running the ack-cgpu component

Última atualização: Jun 27, 2026

Este tópico descreve como usar o recurso cGPU em um cluster de GPU dedicado após instalar o componente ack-cgpu.

Pré-requisitos

Verifique se o componente ack-cgpu está instalado. Para mais informações, consulte Instalar o componente ack-cgpu.

Observações de uso

Em nós de GPU gerenciados em clusters do Container Service for Kubernetes (ACK), observe os seguintes pontos ao solicitar e usar recursos de GPU para aplicações.

  • Não execute aplicações com uso intensivo de GPU diretamente nos nós.

  • Não use ferramentas como Docker, Podman ou nerdctl para criar contêineres e solicitar recursos de GPU. Por exemplo, não execute o comando docker run --gpus all ou docker run -e NVIDIA_VISIBLE_DEVICES=all para rodar aplicações que demandam muita GPU.

  • Não adicione a variável de ambiente NVIDIA_VISIBLE_DEVICES=all ou NVIDIA_VISIBLE_DEVICES=<GPU ID> na seção env do arquivo yaml do pod. Além disso, não use a variável de ambiente NVIDIA_VISIBLE_DEVICES para solicitar recursos de GPU aos pods e executar aplicações pesadas.

  • Se a variável de ambiente NVIDIA_VISIBLE_DEVICES não estiver especificada no arquivo yaml do pod, não defina NVIDIA_VISIBLE_DEVICES=all durante a criação de imagens de contêiner para executar aplicações com alto consumo de GPU.

  • Não inclua privileged: true na seção securityContext do arquivo yaml do pod para rodar aplicações que exigem muitos recursos de GPU.

O uso dos métodos acima para solicitar recursos de GPU pode gerar os seguintes riscos:

  • Se você solicitar recursos de GPU em um nó usando um dos métodos anteriores, mas não especificar os detalhes no registro de recursos de dispositivo do agendador, as informações reais de alocação de GPU poderão divergir desse registro. Nesse cenário, o agendador ainda poderá alocar certos pods que solicitam esses recursos no mesmo nó. Consequentemente, suas aplicações podem competir pelos recursos da mesma GPU e algumas podem falhar ao iniciar devido à insuficiência de recursos.

  • A utilização desses métodos também pode causar outros problemas desconhecidos, como os problemas relatados pela comunidade NVIDIA.

Procedimento

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Nodes > Node Pools.

  3. Acesse o nó mestre de destino e execute o comando abaixo para consultar as capacidades cGPU do cluster.

    Nota
    kubectl inspect cgpu

    Saída esperada:

    NAME                     IPADDRESS    GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX   192.168.XX.XX  0/7                    0/7                    0/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/14 (0%)
    Nota

    Para obter informações detalhadas sobre as capacidades cGPU, execute o comando kubectl inspect cgpu -d.

  4. No painel de navegação à esquerda, escolha Workloads > Jobs. Na página Jobs, clique em Create from YAML no canto superior direito. Na página exibida, selecione um namespace e escolha um modelo na lista suspensa Sample Template ou use um modelo personalizado. Em seguida, insira o exemplo de yaml abaixo no editor de código e clique em Create.

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-share-sample
    spec:
      containers:
      - name: gpu-share-sample
        image: registry.cn-hangzhou.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5    
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            # Unit: GiB. The Pod requests a total of 3 GiB of GPU memory.
            aliyun.com/gpu-mem: 3 # Specify the amount of GPU memory.
        workingDir: /root                    
  5. No nó mestre, execute novamente o comando a seguir para verificar o uso de memória da GPU no cluster.

    kubectl inspect cgpu

    Saída esperada:

    NAME                      IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX  192.168.XX.XX  3/14                   3/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    3/14 (21%)

    A saída indica que o nó cn-beijing.192.168.XX.XX possui um total de 14 GiB de memória de GPU, dos quais 3 GiB foram alocados.

Verificar o resultado

Siga estas etapas para confirmar se o isolamento de memória da GPU está ativado no nó.

  1. Acesse o nó mestre de destino.

  2. Execute o comando abaixo para visualizar os logs da aplicação e confirmar que o isolamento de memória cGPU está habilitado.

    kubectl logs gpu-share-sample --tail=1

    Saída esperada:

    2023-08-07 09:08:13.931003: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 2832 MB memory) -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:07.0, compute capability: 7.5)

    Essa saída mostra que o contêiner solicitou 2.832 MB de memória de GPU.

  3. Execute o seguinte comando para entrar no contêiner e verificar a quantidade total de memória de GPU alocada a ele.

    kubectl exec -it gpu-share-sample nvidia-smi

    Saída esperada:

    Mon Aug 7 08:52:18 2023
    +-----------------------------------------------------------------------------+
    | 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 T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   41C    P0    26W /  70W |   3043MiB /  3231MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    O resultado indica que o total de memória de GPU alocada para este contêiner é de 3.231 MiB.

  4. Conecte-se ao nó de GPU que executa a aplicação de exemplo e verifique a memória total de GPU do nó.

    nvidia-smi

    Saída esperada:

    Mon Aug  7 09:18:26 2023 
    +-----------------------------------------------------------------------------+
    | 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 T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   40C    P0    26W /  70W |   3053MiB / 15079MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0      8796      C   python3                                     3043MiB |
    +-----------------------------------------------------------------------------+
    
                            

    A saída revela que o nó host possui um total de 15.079 MiB de memória de GPU, dos quais 3.053 MiB estão alocados ao contêiner.

Tópicos relacionados