As lacunas de utilização da GPU surgem normalmente quando o agendador de batching contínuo não consegue reunir trabalho executável ou alimentar o acelerador sem uma espera causada por dependências.
Um servidor LLM doméstico pode comunicar um débito elevado e, ainda assim, apresentar vales periódicos na GPU entre iterações de descodificação. O batching contínuo remove as sequências concluídas e admite novas, mas não consegue criar trabalho quando as chegadas são esparsas, os blocos KV não estão disponíveis, os prefills longos bloqueiam a descodificação ou o runtime da CPU prepara os lotes demasiado lentamente. A sincronização e a movimentação de memória também podem criar lacunas, mesmo com uma fila de pedidos cheia.
A oferta de pedidos e a rotação de sequências podem esvaziar um lote
O batching contínuo substitui as sequências concluídas nos limites das iterações. Se as chegadas forem intermitentes, as saídas terminarem em simultâneo ou os limites de admissão mantiverem os pedidos fora da fila executável, o número de tokens ativos pode cair abaixo do intervalo de funcionamento eficiente da GPU.
Os benchmarks de pertença contínua a lotes comparam a pertença estática e contínua a pedidos com diferentes comprimentos de entrada, comprimentos de saída e tempos de chegada. O padrão característico é um número baixo de tokens executáveis durante as lacunas de utilização, apesar de um acelerador saudável e da ausência de erros de memória.
Uma fila verdadeiramente vazia não é uma falha do agendador. Compare a taxa de chegada, as sequências admitidas e os tokens agendados por iteração antes de interpretar cada intervalo de inatividade como capacidade perdida. Esta distinção continua visível durante os testes domésticos posteriores.
O prefill, a descodificação e a alocação de KV criam lacunas no agendador
O prefill processa muitos tokens do prompt com kernels intensivos em computação, enquanto a descodificação avança cada sequência um token de cada vez e é frequentemente limitada pela memória. Misturar as fases pode atrasar a descodificação, e reservar ou recuperar blocos KV pode interromper a admissão entre iterações.
O design de agendamento de prefill em blocos utiliza prefill em blocos para impedir que prompts longos monopolizem as iterações de serviço. O seu mecanismo identifica lacunas que se correlacionam com limites do prefill, alocação de KV ou preempção de pedidos, e não com uma procura fraca. O resultado intermédio tem de continuar a ser inspecionável antes de a automatização avançar.
Se as lacunas da GPU aumentarem com o comprimento do prompt, mas não com o comprimento da saída, o agendamento do prefill é a causa mais provável. Se acompanharem a pressão da cache ou as expulsões, a admissão de memória é responsável, mesmo quando a fila continua cheia. Esse limite deve ser medido separadamente em condições de funcionamento realistas.
A alimentação pela CPU e a sincronização entre dispositivos podem deixar os kernels sem trabalho
A tokenização, a amostragem, as decisões do agendador, os metadados dos tensores, as cópias do anfitrião para o dispositivo, as operações coletivas distribuídas e o registo ocorrem fora dos kernels principais. Um thread da CPU saturado ou uma sincronização bloqueante pode deixar a GPU à espera entre lotes válidos. A consequência prática surge quando várias fontes competem por um contexto limitado.
A investigação sobre interferência entre prefill e descodificação separa os recursos de prefill e descodificação para reduzir a interferência e cumprir objetivos de latência. O resultado reforça que um único gráfico de utilização combina o comportamento do agendador, do anfitrião, da comunicação e do acelerador. Esta dependência deve permanecer explícita na interface final.
O limite da falha é um intervalo de amostragem curto que comunica limites normais dos kernels como utilização zero. Confirme as lacunas com um trace ou contadores de hardware; a média do painel pode criar vales aparentes que não reduzem os tokens por segundo.
Alinhe as cronologias da fila, do agendador e dos kernels
Reproduza chegadas controladas, estáveis e intermitentes, enquanto regista pedidos em espera, admitidos e em execução, tokens de prompt e de descodificação por iteração, blocos KV livres, preempções, tempo do agendador da CPU, tokenização, amostragem, cópias, operações coletivas, lacunas no lançamento de kernels, frequências da GPU e débito de saída.
Compare o padrão com o comportamento do batching contínuo e, em seguida, varie individualmente a taxa de chegada, o comprimento do prompt, o tamanho do prefill em blocos, o orçamento da cache e a afinidade da CPU. Mantenha o modelo, a quantização e o objetivo de latência. O resultado deve, portanto, ser verificado face às evidências originais.
Classifique cada vale como ausência de procura, bloqueio de admissão, interferência do prefill, pressão da cache, falta de recursos no anfitrião ou sincronização antes de ajustar os parâmetros. Otimize o limite responsável; forçar um lote maior não corrige uma fila vazia nem um thread do anfitrião bloqueado.
Centro de Tecnologia e IA
Mais para Ler

O que faz com que um planeador de agentes de IA repita passos que já concluiu?
Rastreie passos repetidos do planeador através da persistência do estado, das evidências de conclusão, da análise dos resultados das ferramentas, da retenção do contexto,...

O que causa erros de permissões apenas dentro de subprocessos de agentes de IA?
Compare a identidade do processo-pai e do processo-filho, a vista do sistema de ficheiros, o ambiente, as capacidades, a política de segurança e o...

O que causa a saturação da CPU quando a transcodificação de hardware e a IA de vídeo são executadas em simultâneo?
Analise a saturação da CPU no processamento externo de codecs, na conversão de píxeis, nas cópias de fotogramas, no pré-processamento de IA, no áudio,...

