Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Change the GPU memory allocation unit

Última atualização: Sep 29, 2026

Por padrão, o agendamento de GPU compartilhada aloca memória da GPU em unidades de 1 GiB. Este tópico descreve como alterar a unidade mínima de alocação de memória para 128 MiB, permitindo alocações mais refinadas.

Pré-requisitos

Você deve ter um ACK managed Pro cluster da versão 1.18.8 ou posterior. Para mais informações, consulte {{XREF_0}} e {{XREF_1}}.

Limitações

  • Se o seu cluster contiver pods que solicitem recursos de GPU compartilhada usando aliyun.com/gpu-mem, exclua esses pods antes de alterar a unidade de alocação de memória. Caso contrário, o agendador pode rastrear os recursos incorretamente.

  • Este recurso oferece suporte apenas a nós em que o compartilhamento de GPU está ativado sem isolamento (nós com o rótulo ack.node.gpu.schedule=share). Para nós que usam compartilhamento e isolamento (nós com o rótulo ack.node.gpu.schedule=cgpu), o módulo de isolamento limita cada placa de GPU a no máximo 16 pods, mesmo que cada pod solicite apenas 128 MiB de memória da GPU.

  • Quando os nós reportam recursos de memória da GPU em unidades de 128 MiB, não há suporte para dimensionamento automático. Por exemplo, se um pod solicitar 32 unidades do recurso aliyun.com/gpu-mem e nenhum nó no cluster tiver memória da GPU suficiente para atender a essa solicitação, o pod permanecerá no estado Pending. Mesmo com o dimensionamento automático configurado, o cluster não adicionará um novo nó para o pod.

  • Para clusters criados antes de 20 de outubro de 2021, você deve envie um ticket e solicitar ao suporte técnico que reinicie o agendador. A configuração só entra em vigor após a reinicialização do agendador.

Alterar a unidade de alocação de memória

ack-ai-installer não instalado

  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 Applications > Cloud-native AI Suite.

  3. Na parte inferior da página, clique em Quick Deployment, selecione Scheduling Policy Extension (Batch Task Scheduling, GPU Sharing, Topology-aware GPU Scheduling) e, em seguida, clique em Advanced.

  4. Clique em Advanced Settings, adicione o código gpuMemoryUnit: 128MiB e clique em OK.

    gpushare:
        enabled: true
        image: acs/gpushare-device-plugin
        tag: v3.4.3-b04ef87-aliyun
        imagePullPolicy: IfNotPresent
        mpsImage: acs/mps
        mpsTag: latest
        gpuMemoryUnit: 128MiB
        loglevel: 5
  5. Clique em Deploy Cloud-native AI Suite.

    O componente será implantado com sucesso quando o Status do ack-ai-installer mudar de Deploying para Deployed.

ack-ai-installer instalado

  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 Applications > Cloud-native AI Suite.

  3. Na lista de componentes, localize o ack-ai-installer e clique em Uninstall na respectiva linha. Em seguida, clique em OK.

  4. Após a conclusão da desinstalação, clique em Deployments na linha do ack-ai-installer. Adicione a linha gpuMemoryUnit: 128MiB à configuração.

        image: acs/gpushare-device-plugin
        tag: v3.4.3-b04ef87-aliyun
        imagePullPolicy: IfNotPresent
        mpsImage: acs/mps
        mpsTag: latest
        gpuMemoryUnit: 128MiB
        loglevel: 5
  5. Clique em OK.

    O componente ack-ai-installer será reimplantado com sucesso quando seu Status mudar de Deploying para Deployed.

Exemplo: Solicitar memória da GPU

O YAML a seguir mostra um pod que solicita 16 unidades de memória da GPU usando o recurso aliyun.com/gpu-mem. Como cada unidade representa 128 MiB, o pod solicita um total de 2 GiB de memória da GPU (16 × 128 MiB).

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: binpack
  labels:
    app: binpack
spec:
  replicas: 1
  serviceName: "binpack-1"
  podManagementPolicy: "Parallel"
  selector: # define how the deployment finds the pods it manages
    matchLabels:
      app: binpack-1
  template:                # Defines the pod template.
    metadata:
      labels:
        app: binpack-1
    spec:
      containers:
      - name: binpack-1
        image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5
        command:
        - bash
        - gpushare/run.sh
        resources:
          limits:
            # Each unit is 128 MiB.
            aliyun.com/gpu-mem: 16   # Requests 16 units, for a total of 2 GiB.