Pular para o conteúdo
    NotíciaInfraestrutura e hardware

    NVIDIA leva limite real de memória a GPUs compartilhadas no Kubernetes com CUDA 13.4

    A NVIDIA detalhou como o CUDA 13.4 impõe limites de memória por tarefa quando várias cargas dividem a mesma GPU no Kubernetes. A ideia é aproveitar melhor as placas, mas ainda há limitações conhecidas.

    Placa de GPU aberta sobre bancada de servidor, com chips de memória separados por fitas coloridas em fatias distintas, sob luz lateral fria
    Com o CUDA 13.4, a NVIDIA passa a impor limites de memória por tarefa quando várias cargas dividem a mesma GPU no Kubernetes.
    Neste artigo

    Dividir uma GPU entre várias tarefas de inteligência artificial sempre fez sentido no papel, porque nem todo programa precisa de uma placa inteira. O problema começa quando essas tarefas passam a dividir a mesma máquina. Basta uma delas pedir memória demais para espremer as vizinhas. Nesta terça-feira (27), a NVIDIA (abre em nova aba) explicou em seu blog técnico (abre em nova aba) como pretende resolver isso no Kubernetes (abre em nova aba). A novidade central é que o limite de memória agora é aplicado pelo próprio CUDA. O programa não precisa colaborar e nem sequer sabe que está rodando numa fatia da placa.

    Parece um ajuste de bastidor, mas não é. É a diferença entre uma regra de convivência e uma parede.

    O que mudou

    Dois nomes ajudam a entender a notícia. O CUDA é a camada de software que permite aos programas usar as GPUs da NVIDIA. O Kubernetes é o sistema que distribui programas pelas máquinas de um data center e decide o que roda onde.

    Placa de GPU de servidor sobre uma bancada, com os chips de memória separados por fitas coloridas em quatro faixas, sob luz lateral suave
    Com o CUDA 13.4, cada tarefa que divide uma mesma GPU no Kubernetes passa a ter um limite próprio de memória.

    A versão 13.4 do CUDA saiu em setembro (abre em nova aba) com novidades vistosas, como suporte a Windows em chips Arm e uma prévia da arquitetura Rubin. Para quem administra GPUs, porém, o item mais importante estava no meio da lista: a terceira versão do MPS, o serviço que permite a vários processos usar a mesma placa ao mesmo tempo. Ele ganhou limites de memória integrados aos cgroups, o mecanismo do Linux que define quanto de cada recurso um programa pode consumir.

    Os limites antigos funcionavam no nível dos aplicativos. Segundo a documentação da NVIDIA, o novo sistema contabiliza toda a memória da placa e se apoia diretamente no kernel do Linux. O objetivo declarado é impedir que um único cliente monopolize a GPU e permitir que o Kubernetes encaixe as tarefas pela memória que cada uma precisa. Cada tarefa enxerga só a sua fração, como se a placa fosse menor do que realmente é.

    Duas formas de pedir espaço

    Quem dispara uma tarefa pode escolher entre dois tipos de pedido:

    • Quantidade exata: a tarefa pede um tamanho de memória e o CUDA a mantém nesse limite. Qualquer tentativa de ir além falha com erro de falta de memória.
    • Faixa: a tarefa recebe um mínimo garantido e pode crescer até um teto quando há memória sobrando. Ao passar do mínimo, ela vira candidata a ser expulsa, mas só é encerrada de fato quando a memória realmente aperta.

    A faixa é a parte mais interessante, porque permite aproveitar sobras sem reservar a placa inteira "por via das dúvidas". Como veremos adiante, também é a parte que ainda não está pronta.

    Para levar isso ao Kubernetes, a NVIDIA usa duas peças de código aberto. O GPU Fractioning Operator roda ao lado do GPU Operator da empresa. O KAI Scheduler decide em qual placa cada tarefa vai parar. Desde a versão 0.18.0, ele tem um modo de compartilhamento chamado NvFractions, que se ativa com uma única linha de configuração. Pedidos com várias placas funcionam como o bom senso manda: 40 GiB em quatro GPUs significam 40 GiB em cada uma delas.

    Revezar ou dividir

    O usuário também escolhe um modo de uso, que dá para resumir como revezar ou dividir. No revezamento (time-slicing), o modo padrão, as tarefas se alternam na placa, uma por vez, e cada uma fica isolada: se uma quebra, as outras seguem funcionando. A estreia do CUDA 13.4 está justamente aqui, porque o limite de memória passa a valer também nesse modo. No sm-sharing, que já existia no MPS, as tarefas rodam em paralelo e dividem as unidades de processamento da placa. Em troca, compartilham o mesmo "domínio de erro", e um problema grave em uma pode respingar nas outras. Por isso o KAI Scheduler nunca coloca uma tarefa de cada modo na mesma GPU.

    O asterisco

    Seria fácil tratar o assunto como resolvido, mas a própria NVIDIA não faz isso. A documentação do Run:ai, plataforma de gestão de GPUs da empresa que também adota essas frações dinâmicas, lista duas limitações conhecidas do CUDA 13.4 com o driver r615:

    • a memória é recuperada de uma tarefa por vez;
    • em alguns cenários, uma tarefa que pede memória dentro do seu mínimo garantido pode ser encerrada à força (SIGKILL).

    As duas têm correção prometida para uma versão futura. Não por acaso, o recurso vem desligado por padrão no Run:ai.

    O segundo ponto não é detalhe. A graça de um mínimo garantido é ser garantido. Enquanto uma tarefa bem-comportada puder cair, a faixa flexível serve para testes em ambiente controlado, e não para o serviço mais importante da empresa. Por ora, a quantidade exata, com sua parede firme, parece a aposta mais prudente.

    A lista de pré-requisitos também limita quem pode adotar o recurso agora:

    • Linux com cgroup v2;
    • kernel 6.14 ou mais novo para o controlador de memória principal (versões anteriores contam com um mecanismo alternativo);
    • driver r615 ou mais recente;
    • GPU Operator 26.7.1 ou superior, que não vem com esse driver por padrão;
    • placas fora do modo MIG, outra forma de fatiar GPUs que a NVIDIA declara explicitamente sem suporte.

    Mesmo com o asterisco, a direção parece a certa. Com a memória controlada de verdade, a pergunta de quem administra GPUs deixa de ser "cabe mais uma tarefa nesta placa?" e passa a ser "quanto cada uma realmente precisa?". O tema deve ganhar palco na KubeCon norte-americana, de 9 a 12 de novembro, em Salt Lake City, evento citado pela NVIDIA no anúncio. Até lá, a correção prometida merece tanta atenção quanto a novidade em si.

    Foto de Leandro Vieira

    Leandro Vieira

    CEO e founder | IA.com.br

    Ver perfil completo