Ilustración editorial para ¿Cabe este modelo en tu GPU? Cómo estimar la VRAM antes de elegir hardware
Imagen generada con gpt-image-2.5-sunburst para InferamaFonte ↗
01

A pergunta não é apenas quantos parâmetros o modelo tem

Saber quantos parâmetros um modelo tem pode ajudar a formar uma ideia inicial, mas não responde, por si só, à pergunta prática: ele vai funcionar com a configuração de que preciso nesta GPU? Para responder, é necessário considerar o modelo específico, o formato dos pesos, o runtime, o contexto que se pretende processar, as solicitações simultâneas e a memória que o sistema já está usando.

Por isso, “caber” não é uma propriedade isolada do modelo. Ele pode caber no momento do carregamento e ficar sem memória quando o contexto crescer; pode funcionar para uma solicitação e não para várias; ou pode iniciar porque parte do trabalho é executada na RAM, embora nem todo o modelo esteja na GPU. O resultado também pode mudar se você trocar de runtime ou alterar as opções de execução.

O objetivo deste guia é construir uma estimativa inicial e, em seguida, submetê-la a um teste controlado. A estimativa ajuda a descartar configurações claramente inviáveis e a identificar o que precisa ser medido. Ela não substitui um teste com o hardware, o runtime e a carga reais. Também não permite deduzir velocidade, qualidade das respostas ou estabilidade em execuções prolongadas.

02

O que ocupa memória durante a execução

Uma estimativa útil separa pelo menos quatro componentes: os pesos do modelo, o cache KV, os buffers temporários de cálculo e o espaço necessário para o runtime, o sistema e outros processos. Essa divisão é conceitual: dependendo do runtime, das opções e do hardware, as alocações podem ser registradas de maneiras diferentes e nem sempre aparecem como categorias independentes em uma ferramenta de monitoramento.

Os pesos são os dados do modelo que o runtime carrega para realizar a inferência. O tamanho do arquivo pode dar uma pista sobre eles, mas não equivale automaticamente à memória total necessária. O formato e a quantização influenciam o tamanho dos pesos, e o carregamento também envolve memória de trabalho e estruturas do runtime. Não transforme o tamanho do arquivo em uma estimativa de VRAM disponível sem medir a configuração escolhida.

O cache KV armazena informações associadas a tokens já processados, para que a geração possa continuar. Seu consumo depende da carga ativa e de características do modelo, não apenas do nome ou do número de parâmetros. O contexto previsto e as solicitações em paralelo são variáveis que precisam ser definidas antes da estimativa; a arquitetura e o tipo de cache configurado também podem alterar o resultado.

Os buffers de cálculo são áreas temporárias de memória usadas durante as operações do runtime. Seu tamanho pode depender da implementação e das opções ativas. O runtime e o sistema também precisam de espaço próprio; além disso, uma GPU pode compartilhar memória com a tela ou com outros processos. Portanto, a memória nominal da placa não deve ser tratada como se estivesse inteiramente livre para o modelo.

Inventário inicial de memória

Anote o que você já sabe e o que ainda precisa verificar. As categorias orientam a estimativa, mas não significam que o runtime exponha cada uso separadamente.

ComponenteO que o alteraO que registrar
PesosModelo, formato e quantizaçãoTamanho e formato exatos do artefato carregado pelo runtime
Cache KVContexto ativo, solicitações concorrentes, arquitetura e estratégia de cacheConfiguração de contexto, concorrência e cache
Buffers de cálculoRuntime, operação e opções de execuçãoPicos observados durante o carregamento e a inferência
Runtime e sistemaProcessos adicionais, memória usada pela tela e configuração do equipamentoMemória livre antes e durante o teste
03

Reúna os dados antes de fazer os cálculos

Comece identificando o artefato exato do modelo: não apenas o nome comercial, mas também o arquivo ou formato que você pretende carregar e a configuração associada. Uma ficha de configuração pode revelar dimensões que o nome não informa, como o número de camadas e determinadas dimensões e cabeças de atenção. Esses dados ajudam a descrever a arquitetura, mas não bastam, sozinhos, para calcular o consumo final: também importa como o runtime representa e aloca o cache e os buffers.

Em seguida, defina o runtime e suas opções. Registre a versão ou configuração que está testando, a quantidade de contexto solicitada, a concorrência prevista e qualquer escolha relativa ao tipo ou à localização do cache. Se o runtime permitir colocar algumas camadas na GPU, descarregar uma parte para a CPU ou distribuir o trabalho entre placas, anote também essas decisões. Uma estimativa sem essas condições mistura cenários diferentes.

Por fim, registre o ponto de partida do equipamento: memória total e disponível da GPU, processos que já a utilizam e se a placa está dedicada à inferência ou também desempenha outras funções. Ferramentas de gerenciamento de GPU podem mostrar memória total, reservada, usada e livre; essas são observações do estado do dispositivo, não uma explicação completa de qual componente do modelo ocupa cada bloco.

Ficha de configuração

Preencha esta ficha antes de estimar. Mantenha os mesmos valores durante o teste inicial para conseguir atribuir as mudanças a uma variável específica.

  1. 01Identifique o modelo e o formato exato dos pesos que o runtime vai carregar.
  2. 02Registre os parâmetros de arquitetura disponíveis na configuração do modelo; marque como desconhecidos os que não estiverem documentados.
  3. 03Especifique o runtime e as opções de execução, incluindo qualquer descarregamento para a RAM ou divisão entre GPUs.
  4. 04Defina o contexto máximo que você realmente espera usar e quantas solicitações podem estar ativas ao mesmo tempo.
  5. 05Meça a memória livre da GPU antes de iniciar e registre os processos que já a estão usando.
04

Como construir uma estimativa inicial

Como primeira aproximação, pense na VRAM necessária como a soma dos pesos residentes na GPU, do cache KV alocado na GPU, dos buffers e do custo do runtime, além de uma margem para variações de carga e outros usos da placa. Não se trata de uma fórmula exata nem de um valor que possa ser preenchido com dados genéricos: as categorias e seus tamanhos dependem da implementação e da configuração.

Separe os valores conhecidos das aproximações. O tamanho do arquivo é um dado observável, mas não prova quanto desse tamanho ficará residente na GPU nem qual será o pico de memória. O contexto e a concorrência desejados são decisões suas. A arquitetura e a estratégia de cache exigem informações sobre o modelo e o runtime. Os buffers e a margem normalmente precisam ser medidos no sistema em que o modelo será executado.

Se uma variável importante for desconhecida, não esconda essa incerteza atrás de um único número. É mais honesto preparar cenários: por exemplo, uma configuração com contexto moderado e outra mais exigente, cada uma com a concorrência necessária para o serviço. Esses rótulos não garantem consumos específicos; servem para assegurar que o teste cubra as condições de uso, em vez de validar apenas o caso mais simples.

A documentação de um runtime pode ajudar a entender as opções disponíveis e os limites declarados, mas uma capacidade anunciada ou um valor de configuração não prova que o equipamento suporta a carga durante a execução. Use a documentação para planejar o teste e as medições de uso para verificar a configuração.

05

O cache KV muda conforme o contexto e a carga

O cache KV merece atenção porque seu consumo está ligado ao trabalho ativo. Um contexto mais longo pode exigir que mais informações sejam mantidas para continuar a geração; várias solicitações simultâneas podem manter diversas sequências ativas. Não é possível inferir um valor preciso a partir do nome do modelo ou da quantidade de parâmetros.

A arquitetura importa. Para fazer uma estimativa mais fundamentada, são necessários atributos da configuração do modelo e detalhes sobre como o runtime lida com a atenção e o cache. Mesmo com essas informações, o valor observado pode depender do tipo de cache escolhido, da alocação de memória e das opções do runtime. Portanto, uma regra genérica sem esses dados pode servir como orientação qualitativa, mas não como garantia de que uma configuração cabe.

Os runtimes podem oferecer estratégias diferentes, como caches dinâmicos, estáticos, quantizados ou descarregados para a CPU. Alterar a estratégia pode mudar a distribuição de memória e as condições de execução. Não compare duas estimativas como se fossem equivalentes quando uma delas usa outra estratégia ou quando o runtime e suas opções são diferentes.

O que verificar quando o cache cresce

Use esta tabela para localizar a possível causa de uma mudança observada; ela não pressupõe uma taxa universal de crescimento.

Mudança no testeO que pode estar mudandoO que manter constante ou registrar
Aumentar o contextoMais tokens ativos e uma alocação diferente de cacheContexto solicitado e memória durante o carregamento e a geração
Aumentar as solicitações paralelasMais sequências ativas e mais cache associado à cargaNúmero de solicitações simultâneas e duração do teste
Mudar a estratégia de cacheRepresentação, localização ou alocação de memória diferentesTipo de cache e opções exatas do runtime
Mudar de runtimeImplementação e gerenciamento de memória diferentesRepetir o teste; não transferir diretamente o resultado anterior
06

GPU inteira, descarregamento para a RAM ou várias placas

Uma execução pode usar a GPU inteira para o modelo, colocar apenas parte das camadas nela, descarregar parte do cache para a CPU ou distribuir o modelo entre GPUs. Algumas dessas opções permitem testar configurações que não caberiam com todos os componentes em uma única placa, mas não demonstram que o modelo está inteiramente residente na VRAM. Também não permitem deduzir, por si só, o desempenho que será obtido.

Verifique o modo de execução nas opções do runtime e nos registros. Em ferramentas que permitem especificar camadas na GPU ou dividir o trabalho entre placas, anote os valores aplicados. Se houver descarregamento para a CPU ou uma estratégia de cache na CPU, a memória da GPU deixa de representar, sozinha, todo o uso de memória da execução. Diferencie “o aplicativo iniciou” de “a configuração atende aos requisitos de residência e carga definidos”.

Em várias GPUs, conhecer a soma da memória nominal das placas também não basta para saber como o modelo será distribuído. A divisão depende das capacidades do runtime e da configuração escolhida. Avalie cada dispositivo e a alocação efetiva; não presuma que toda a memória somada estará disponível para qualquer distribuição.

O que significa o processo iniciar

Classifique o resultado de acordo com o modo de execução que você verificou, não apenas pela ausência de um erro ao iniciar.

ResultadoO que é possível concluirO que não é possível concluir
Pesos e cache na GPU conforme a configuração previstaA execução observada usa a GPU de acordo com as opções verificadasQue suportará qualquer contexto, concorrência ou duração
Parte das camadas ou do cache na CPUO runtime conseguiu continuar com descarregamento ou divisão de memóriaQue o modelo inteiro cabe na VRAM
Modelo carregado, mas sem testar a carga previstaA etapa de carregamento foi concluída nessas condiçõesQue um contexto longo ou várias solicitações vão funcionar
Falha ao carregar ou durante o testeA configuração atual não concluiu essa execuçãoQue o modelo não possa funcionar com outras opções ou hardware
07

Verifique a estimativa com um teste controlado

O teste deve reproduzir o cenário que você pretende implantar. Fixe o modelo, o formato, o runtime, o contexto, a concorrência e as opções de cache e descarregamento. Registre o estado inicial da memória e qualquer processo externo que compartilhe a GPU. Se você mudar várias opções de uma vez, será difícil identificar qual delas explica o resultado.

Carregue o modelo e registre a memória usada e disponível. Em seguida, execute uma solicitação com a configuração prevista. Aumente o contexto ou a concorrência gradualmente, uma variável por vez, e anote quando aparece um erro, quando o descarregamento é ativado ou quando o consumo se aproxima do limite observado. Não interprete uma única leitura como um máximo estável: acompanhe a carga durante a execução, pois o uso pode diferir entre o carregamento inicial e a inferência.

Use os registros do runtime para verificar a distribuição entre GPU e CPU e as opções que foram efetivamente aplicadas. Compare as observações com uma ferramenta de GPU que exiba memória total, usada, reservada e livre. Essa leitura ajuda a caracterizar o estado do dispositivo; por si só, nem sempre separa pesos, cache e buffers. Repita a execução para detectar variações no mesmo equipamento e registre as condições exatas.

Defina antecipadamente o que significa passar no teste: concluir o contexto previsto, suportar a concorrência necessária e não depender de um descarregamento que não estava previsto. Se o sistema precisar reservar margem para outros processos, inclua isso como requisito. Um teste que termina sem erros, mas deixa de manter essa margem, pode ser insuficiente para o uso pretendido.

Etapas de verificação

Execute esta sequência sem alterar várias condições ao mesmo tempo. Guarde os registros para repetir o teste depois de mudar o hardware ou o runtime.

  1. 01Anote modelo, formato, runtime, opções de cache, contexto, concorrência e modo de distribuição.
  2. 02Meça a memória livre antes de carregar e registre outros processos que usam a GPU.
  3. 03Carregue o modelo e observe a memória e os registros do runtime; confirme se há camadas ou cache na CPU.
  4. 04Comece com uma carga pequena e depois aumente o contexto, mantendo a concorrência fixa.
  5. 05Reinicie ou deixe o estado comparável e aumente a concorrência com o contexto definido.
  6. 06Registre erros, picos observados, descarregamento para a RAM e o resultado de cada execução.
  7. 07Repita o teste e avalie se a margem disponível atende ao requisito operacional definido.
08

Erros frequentes e limites da estimativa

O erro mais comum é usar o tamanho do arquivo como se fosse o consumo total. Esse dado não inclui necessariamente o cache, os buffers, o runtime nem a memória que o sistema já está usando. Outro erro é comparar com a capacidade nominal da GPU sem medir a memória disponível quando o equipamento está em seu estado real de uso.

Também é fácil testar apenas a inicialização e presumir que isso valida um contexto extenso ou várias solicitações. O carregamento inicial e a carga sustentada são etapas diferentes do teste. Se você mudar o contexto, a concorrência, o tipo de cache, o runtime ou a divisão entre GPU e CPU, estará testando outra configuração.

Por fim, não extrapole sem cautela um valor de um runtime para outro. As ferramentas podem diferir na forma como gerenciam a memória e apresentam suas métricas. Os valores observados descrevem o equipamento e as opções testadas; não garantem o mesmo resultado em outro sistema nem uma execução estável por tempo indefinido. O teste também não determina a qualidade da saída nem se a velocidade será suficiente para um caso de uso.

Decisão prática

A estimativa serve para orientar o próximo passo. Se as evidências não respondem a uma condição crítica, a conclusão correta é “falta testar”, não “cabe”.

SituaçãoDecisão razoávelPróximo passo
A estimativa excede claramente a memória disponível antes mesmo de incluir cache e buffersDescartar essa configuração nessa GPU ou alterar os requisitosAvaliar outro formato, distribuição ou hardware e medir novamente
O carregamento inicial termina, mas o contexto necessário não foi testadoNão considerar o caso de uso validadoAumentar o contexto de forma controlada
O processo funciona por meio de descarregamento para a CPU que não estava previstoNão afirmar que o modelo cabe inteiramente na VRAMVerificar as opções do runtime e decidir se o descarregamento é aceitável
O contexto e a concorrência necessários passam em testes repetidos com margemA configuração tem evidências práticas para esse equipamento e runtimeDocumentar as condições e repetir o teste se algum componente mudar
09

Critérios finais para escolher ou reutilizar hardware

Antes de comprar uma GPU, identifique uma carga representativa e verifique se a memória disponível pode acomodar os componentes que você quer manter nela, além da margem necessária para o sistema. Se a estimativa já exceder claramente a capacidade utilizável, não há motivo para fingir precisão: essa combinação exige mudar os requisitos, a distribuição ou o hardware. Se estiver perto do limite, o teste no equipamento exato é especialmente importante.

Ao reutilizar uma GPU, meça o estado real dela e verifique quem compartilha a memória. Não trate a capacidade total como se estivesse livre. Se aceitar execução parcial na RAM ou distribuição entre placas, registre essa decisão como parte da configuração, não como um detalhe invisível. Ao comparar alternativas, use a mesma carga e os mesmos critérios.

Para aprofundar a análise de modelos locais, consulte o guia de modelos locais, o comparador e a seção de descoberta. Mantenha a mesma disciplina ao avaliar uma opção: identifique a configuração exata e verifique as condições importantes para o seu caso. A conclusão útil não é um valor universal de VRAM, mas um resultado reproduzível para um modelo, runtime, hardware e carga definidos.

Questões em aberto

  • A documentação citada não fornece uma fórmula universal para calcular o consumo total de VRAM de qualquer modelo, runtime e hardware.
  • A separação observada entre pesos, cache KV, buffers e memória do runtime depende de como o runtime gerencia e apresenta suas alocações.
  • Os valores de uso podem variar entre execuções e runtimes; os testes devem ser repetidos no equipamento e com as opções previstos.
  • Os parâmetros disponíveis na configuração do modelo não bastam, por si só, para deduzir o consumo final sem conhecer a estratégia do runtime.
10

Continue a explorar

10

Fontes consultadas

03

Correções e transparência

Se encontrar informação incorreta ou desatualizada, envie-nos a página e a fonte que devemos rever.

Propor uma correção