Todos os produtos
Search
Central de documentação

:Configure compartilhamento de GPU sem isolamento de memória da GPU

Última atualização: Jun 27, 2026

Em alguns cenários, o compartilhamento de GPU sem isolamento de memória da GPU pode ser necessário. Certas aplicações, como as desenvolvidas em Java, permitem especificar a quantidade máxima de memória da GPU que podem utilizar. Nesses casos, o uso do isolamento de memória da GPU pode causar exceções. Para resolver esse problema, desative o isolamento de memória da GPU nos nós que suportam compartilhamento de GPU. Este tópico descreve como configurar o compartilhamento de GPU sem isolamento de memória da GPU.

Pré-requisitos

Etapa 1: Crie um node pool

Siga os passos abaixo para criar um node pool com o isolamento de memória da GPU desativado.

  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 que deseja gerenciar e escolha Nodes > Node Pools no painel de navegação à esquerda.

  3. Na página Node Pools, clique em Create Node Pool. Na caixa de diálogo Create Node Pool, configure os parâmetros e clique em Confirm Order.

    A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Crie um node pool.

Etapa 2: Envie um job

  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 seu cluster. No painel de navegação à esquerda, clique em Workloads > Jobs.

  3. Na página Jobs, clique em Create from YAML. No editor de código da página Create, cole o conteúdo a seguir e clique em Create.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-share
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist-share
        spec:
          containers:
          - name: tensorflow-mnist-share
            image: registry.cn-beijing.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:
                aliyun.com/gpu-mem: 4 # Request 4 GiB of GPU memory. 
            workingDir: /root
          restartPolicy: Never

    Descrição do código:

    • O conteúdo YAML define um job do TensorFlow. O job cria um pod e esse pod solicita 4 GiB de memória da GPU.

    • Para solicitar 4 GiB de memória da GPU, defina aliyun.com/gpu-mem: 4 abaixo de resources.limits.

Etapa 3: Verifique a configuração

  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 seu cluster. No painel de navegação à esquerda, clique em Workloads > Pods.

  3. Na página Pods, escolha Terminal > tensorflow-mnist-share na coluna Actions do pod criado na Etapa 2 para fazer login no pod.

  4. Execute o comando a seguir para consultar as informações de memória da GPU:

    nvidia-smi

    Saída esperada:

    Wed Jun 14 06:45:56 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 515.105.01   Driver Version: 515.105.01   CUDA Version: 11.7     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM2...  On   | 00000000:00:09.0 Off |                    0 |
    | N/A   35C    P0    59W / 300W |    334MiB / 16384MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    A saída indica que a GPU alocada ao pod fornece 16.384 MiB de memória. Neste exemplo, o modelo da GPU é V100. Se o isolamento de memória da GPU estivesse ativado, o valor seria igual à quantidade de memória solicitada pelo pod, ou seja, 4 GiB. Isso confirma que a configuração está em vigor.

    A aplicação precisa ler as informações de alocação de memória da GPU nas seguintes variáveis de ambiente.

    ALIYUN_COM_GPU_MEM_CONTAINER=4 # The GPU memory available for the pod. 
    ALIYUN_COM_GPU_MEM_DEV=16 # The total GPU memory provided by each GPU.

    Caso a aplicação necessite da proporção de memória da GPU disponível, utilize a fórmula a seguir para calcular a razão entre a memória da GPU usada pela aplicação e a memória total fornecida pela GPU, com base nas variáveis de ambiente anteriores:

    percetange = ALIYUN_COM_GPU_MEM_CONTAINER / ALIYUN_COM_GPU_MEM_DEV = 4 / 16 = 0.25

Referências