spark-training-gotchas
Ajuda seu agente a prever e resolver problemas comuns em tarefas de ML. Use antes de tarefas longas para evitar falhas, lentidão ou erros de memória.
O que ela faz
Esta ferramenta ajuda a encontrar e corrigir problemas comuns que podem fazer seus treinos de inteligência artificial falharem ou ficarem lentos no sistema DGX Spark. Ela verifica dez tipos de falhas conhecidas.
Quando usar
- ✓Seu treino falha ao iniciar com erros estranhos.
- ✓Seu treino usa muita memória e trava, mesmo parecendo ter espaço.
- ✓Seu treino começa rápido mas depois fica lento.
Exemplo do que pedir para a IA
“Meu treino no DGX Spark está travando, o que pode ser?”
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
A ferramenta analisa seu sistema e verifica se algum dos dez problemas conhecidos está acontecendo. Ela te diz qual é o problema e como tentar consertar.
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-training-gotchasOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/dgx-spark-ops/skills/spark-training-gotchas/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.
Gotchas de Treinamento Spark
O chip GB10 do DGX Spark (Grace Blackwell, SM121, 128GB de memória unificada, aarch64) tem dez modos de falha recorrentes em lançamento, memória, térmicas, largura de banda e precisão. Cada um é nomeado G1–G10 para que possa ser verificado por número — a numeração é crucial para ferramentas que executam essas verificações. Leia isto antes de uma execução longa, não depois da sexta hora.
Quando Usar Esta Habilidade
- Uma execução de treinamento falha ao iniciar, com um erro de importação ou um segfault que não aponta para a causa real.
- Uma execução OOM (Out Of Memory) enquanto
nvidia-smiainda mostra espaço livre. - A taxa de transferência degrada no meio de uma execução que começou bem.
- Antes de qualquer job de várias horas ou várias épocas no GB10.
- Conectando dois Sparks, antes de escolher uma estratégia de paralelismo.
- Escolhendo entre FP8 e NVFP4 para uma execução hospedada no Spark.
Referência Rápida de Problemas Comuns
| # | Sintoma | Correção |
|---|---|---|
| G1 | Símbolo indefinido / segfault | Roda cu130 ou container |
| G2 | flash-attn usa backend errado | pular build pip; monkeypatch no NGC |
| G3 | OOM apesar de espaço livre | liberar cache de página |
| G4 | queda de taxa de transferência / reinício | esperar ~100W de limite sustentado |
| G5 | passo limitado por memória lento | orçar 180–192 GB/s |
| G6 | cache evictado no meio da execução | um servidor GPU por vez |
| G7 | NVFP4 mais lento que FP8 | manter FP8 a menos que sm_121a |
| G8 | playbook falha completamente | verificar problemas upstream |
| G9 | ambiente quebra após instalação | usar um container |
| G10 | TP de 2-Spark trava | apenas DDP/FSDP, nunca TP |
Os Dez Gotchas
G1: Incompatibilidade ABI CUDA 12/13
- SINTOMA:
ImportError: undefined symbolnomeando uma função CUDA, ou um segfault na primeira chamada.cuda(). - CAUSA: a maioria das rodas PyPI linka
libcudart.so.12; Spark envia CUDA 13. pip nunca verifica ABI CUDA, então isso só aparece na importação ou no primeiro lançamento do kernel. - VERIFICAÇÃO:
references/gotcha-checks.mdG1 — a tag de build CUDA da roda. - CORREÇÃO: reinstalar de
download.pytorch.org/whl/cu130ou usar um container compatível.
G2: flash-attn — Pule o Build Pip, Observe a Autodetecção do Unsloth
- SINTOMA:
pip install flash-attnainda falha/trava. Unsloth também pode treinar silenciosamente flash-attn sobre um SDPA explicitamente solicitado. - CAUSA: não há roda aarch64/sm_121 para pip puro — mas containers NGC enviam um flash-attn SM121 funcional, e Unsloth o prefere automaticamente, descartando
attn_implementation="sdpa". - VERIFICAÇÃO:
references/gotcha-checks.mdG1 — se flash-attn já está presente e funcionando. - CORREÇÃO: pip puro — pule flash-attn, use SDPA (inalterado). No NGC — a única substituição confiável é o monkeypatch em
references/gotcha-checks.mdG2.
G3: OOM UMA Abaixo de 128GB
- SINTOMA: OOM durante o carregamento/treinamento do modelo enquanto
nvidia-smiainda relata memória livre abaixo do limite de 128GB — ou, em algumas configurações,[N/A]diretamente em vez de um número. - CAUSA: mmap e o alocador CUDA contam páginas em dobro durante o carregamento safetensors; QLoRA pode OOM mais cedo que bf16, pois a desquantização adiciona alocações transitórias.
- VERIFICAÇÃO:
references/gotcha-checks.mdG3 — leiafree -ge/proc/meminfo, nãonvidia-smi. - CORREÇÃO: liberar o cache de página com
sync; echo 3 > /proc/sys/vm/drop_caches— precisa de root, um reset entre execuções, não um passo no meio do treinamento.
G4: Limitação Térmica
- SINTOMA: a taxa de transferência cai no meio de uma execução de várias horas, ou a caixa reinicia espontaneamente sob carga sustentada.
- CAUSA: o consumo de energia sustentado é limitado em torno de 100W versus o valor nominal de 240W; execuções longas atingem esse teto e limitam ou, às vezes, reiniciam.
- VERIFICAÇÃO:
references/gotcha-checks.mdG4 — amostrenvidia-smi --query-gpu=temperature.gpu,power.draw. - CORREÇÃO: se a energia se estabiliza abaixo de 240W enquanto a temperatura sobe, trate a limitação como a causa; melhore o resfriamento ou limite a duração da execução.
G5: Teto de Largura de Banda
- SINTOMA: workloads limitados por memória, especialmente loops de RL com decodificação pesada, atingem um platô bem abaixo da taxa de transferência esperada.
- CAUSA: 273 GB/s é um teto de especificação, não sustentado; a largura de banda medida opera em 180–192 GB/s.
- VERIFICAÇÃO:
references/gotcha-checks.mdG5 — tempo de passo observado versus a faixa medida, não a especificação. - CORREÇÃO: orçar a taxa de transferência de 180–192 GB/s; revise um plano construído sobre o valor de 273 GB/s.
G6: Contenção Global de Recursos UMA
- SINTOMA: o cache KV/pesos de um processo são evictados no meio da execução silenciosamente, sem OOM em seus próprios logs.
- CAUSA: memória unificada é um pool global único; um processo sem limite ou próximo da capacidade compete com qualquer outra coisa e pode evictá-la. Um pequeno,
…
Perguntas frequentes
O que é DGX Spark?
É um tipo de computador potente, feito para treinar modelos de inteligência artificial rapidamente.
O que são 'failure modes'?
São as maneiras como algo pode dar errado ou falhar.
Preciso saber programar para usar isso?
Não, a ferramenta é feita para ser usada mesmo sem conhecimento de programação. Ela te guia com as instruções.
Detalhes
Descrição original do autor
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4854
- 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