spark-memory-thermal-ops
Ajuda seu agente a gerenciar memória e temperatura em tarefas de ML longas. É útil para planejar recursos ou quando tarefas falham por falta de memória ou superaquecimento.
O que ela faz
Esta ferramenta ajuda a gerenciar a memória e a temperatura em computadores potentes (DGX Spark) durante tarefas longas de aprendizado de máquina. Ela garante que você tenha memória suficiente e que o computador não superaqueça.
Quando usar
- ✓Antes de iniciar uma tarefa longa, para saber quanta memória você vai precisar.
- ✓Se a sua tarefa falhar por falta de memória.
- ✓Para monitorar a temperatura e o consumo de energia durante tarefas longas.
Exemplo do que pedir para a IA
“Como posso saber quanta memória minha tarefa de aprendizado de máquina vai usar antes de começar?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela verifica a memória total disponível no sistema, não apenas a memória da placa de vídeo. Ela também monitora a temperatura e a energia para evitar que o computador diminua a velocidade ou pare de funcionar.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill spark-memory-thermal-opsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/dgx-spark-ops/skills/spark-memory-thermal-ops/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Spark Memory & Thermal Ops
O chip GB10 do DGX Spark possui um pool de memória unificada (UMA) de 128GB compartilhado por CPU e GPU, e um limite de energia sustentado bem abaixo de seu valor nominal. Ambos quebram as suposições de GPUs discretas: o espaço livre não é o que nvidia-smi relata, e uma execução que começa rápido desacelerará no meio do trabalho sem nada mal configurado. Esta habilidade cobre o planejamento do espaço livre de memória, o trabalho com um OOM real e a observação das temperaturas em um trabalho longo. Para modos de falha no momento do lançamento (incompatibilidades de ABI, flash-attn, quebra de playbook), veja spark-training-gotchas — esta habilidade assume que o trabalho começa.
Referência Rápida de Problemas Comuns
| Situação | Faça isso |
|---|---|
| Planejando espaço livre antes do lançamento | Orce contra free -g, não nvidia-smi — veja Modelo de Memória UMA |
| Trabalho OOMs na memória unificada | Trabalhe a Escada OOM em ordem: flush, depois batch/pack, depois downgrade de método |
| Throughput cai no meio da execução | Verifique o log de energia/temperatura antes de assumir um bug de configuração — veja Monitoramento Térmico |
| Treinador + servidor de inferência ambos desejados | Execute um de cada vez — veja Cargas de Trabalho Concorrentes |
Quando Usar Esta Habilidade
- Dimensionar uma execução de treinamento contra o pool de 128GB antes do lançamento — se este modelo, método e combinação de batch/pack caberão.
- Uma execução OOMs no meio do carregamento ou no meio do passo e a ordem de remediação importa — o que tentar primeiro, segundo, terceiro.
- Observar a temperatura e a energia durante um trabalho de várias horas, decidindo se uma desaceleração é limitação térmica ou algo mais.
- Planejar executar um treinador ao lado de um servidor de inferência (vLLM, Ollama) na mesma máquina.
Modelo de Memória UMA
Spark não tem VRAM de GPU separada — a GPU e a CPU compartilham um pool de 128GB. Duas consequências:
nvidia-smiecudaMemGetInfosubestimam a pressão — ou não relatam nada. Ambos relatam memória visível pelo alocador CUDA, não o estado real do pool — uma máquina pode mostrar espaço livre emnvidia-smie ainda assim OOM, porque o cache de página e as páginas mmap'd que o alocador não vê consomem o mesmo pool. Em alguns drivers/configurações, a consulta de memória retorna[N/A], [N/A]diretamente em vez de um número — um script que busca um valor numérico lá não obtém nada, não uma subcontagem enganosa (veja a pegadinha G3 despark-training-gotchas).O carregamento do modelo é um pico transitório, não o estado estável. Carregar pesos safetensors mmap'a o arquivo, depois copia para tensores CUDA — por uma janela durante o carregamento, tanto as páginas mmap'd quanto a cópia CUDA contam contra o pool ao mesmo tempo. Um modelo que cabe durante o treinamento ainda pode OOM durante o carregamento se o espaço livre foi dimensionado para a pegada pós-carregamento em vez desta duplicação transitória.
Planeje e diagnostique com free -g, não nvidia-smi:
free -g | awk 'NR==2 {print "free:", $4, "GB"}'
Regra geral: pegue esse valor livre, subtraia alguns GB para sobrecarga do sistema operacional/driver e orce contra o resultado — não o número da especificação de 128GB.
A planilha em references/uma-accounting.md aceita contagem de parâmetros, dtype e método como entrada, e retorna uma estimativa de memória para comparar com âncoras conhecidas.
Sequência de Planejamento
Antes do lançamento, trabalhe nestes em ordem:
- Leia
free -g; subtraia a sobrecarga do sistema operacional/driver para o orçamento. - Estime pesos + otimizador + gradientes + ativações de
references/uma-accounting.md. - Compare com a âncora mais próxima (70B QLoRA, 27B LoRA, 9B FT completo), não apenas a estimativa.
- Se a estimativa estiver próxima do orçamento, comece com um packing mais curto ou um batch menor — mais barato do que atingir a Escada OOM no meio da execução.
Exemplo: Dimensionando uma Execução QLoRA de 70B
Uma verificação de sanidade da fórmula da planilha contra a âncora de ≈40GB:
params = 70e9
weights_gb = params * 0.5 / 1e9 # NF4, step 1
adapter_gb = 0.5 # step 5, negligible
total_gb = weights_gb + adapter_gb # + activations
print(f"{total_gb:.0f}GB before activations")
Apenas os pesos ficam perto da âncora de ≈40GB — um plano que estima muito acima disso para a mesma classe de modelo é um sinal para verificar novamente o dtype e o método.
A Escada OOM
Quando um trabalho OOMs na memória unificada, trabalhe nesta escada em ordem. Cada passo é mais disruptivo que o anterior — não pule etapas: reduzir o tamanho do batch nunca é o passo 1.
Limpe o cache do buffer. O cache de página de uma execução anterior ou a leitura de um grande conjunto de dados geralmente responde por GB do espaço livre "faltando". Isso não custa nada além de uma nova execução e não mexe na configuração do trabalho:
sync; echo 3 > /proc/sys/vm/drop_cachesPrecisa de root; um reset entre execuções, não um
Perguntas frequentes
Por que `nvidia-smi` não mostra a memória correta?
O `nvidia-smi` só mostra a memória que o programa pode usar diretamente. No DGX Spark, a CPU e a GPU compartilham a mesma memória, e outras partes do sistema também usam essa memória, o que o `nvidia-smi` não mostra.
Minha tarefa falhou com 'OOM'. O que eu faço?
Primeiro, tente liberar a memória cache. Se não funcionar, reduza o tamanho do lote (batch size) ou o comprimento da sequência. Se ainda assim falhar, considere usar um método de treinamento mais simples.
Por que meu computador fica mais lento durante tarefas longas?
Isso pode ser por causa do superaquecimento ou porque o computador está atingindo seu limite de energia. Esta ferramenta ajuda a monitorar isso para que você saiba se é um problema de temperatura ou outra coisa.
Detalhes
Descrição original do autor
Manage unified memory and thermals during long-running ML jobs on NVIDIA DGX Spark. Use when planning memory headroom for a training run on GB10, when a job OOMs on unified memory, or when monitoring temperature and power during multi-hour training.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4853
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC