Skip to content

[SIMD][09][P0] Gates de correctness, benchmark, telemetria e release para SIMD #313

Description

@wesleysimplicio

Parent: #304
Depends on: #305, #306, #307, #308, #309, #310, #311, #312
Complements: #145, #252

Objetivo

Criar a camada de prova e release gate que impede o Simplicio Local de anunciar ou habilitar SIMD/AVX sem execução física, correção diferencial, segurança em hosts incompatíveis e ganho medido no fluxo de inferência real.

Escopo de correctness

  • Differential tests scalar/reference vs cada kernel SIMD registrado.
  • Property/fuzz tests para shapes, strides, alinhamento, tails, quant blocks, scales e layouts packed.
  • Casos extremos: overflow de acumulador, NaN, Inf, subnormais, dimensão zero/inválida e buffers truncados.
  • Guardas contra illegal instruction usando capability fixtures e processos isolados quando necessário.
  • Sanitizers aplicáveis e regressão fixa para todo finding reproduzível.
  • Comparação de logits e tokens com modelo/fixture real; nenhuma equivalência baseada apenas em kernel interno do mesmo caminho.
  • Testes de cancelamento, timeout, concorrência, memory pressure e fallback.

Escopo de benchmark

Microarquitetura

  • Scalar, AVX2, AVX-512/VNNI, AMX e NEON/I8MM onde disponíveis.
  • Decode matvec, prefill matmul e operações auxiliares separadas.
  • Shapes/dtypes/quant types representativos e packing cold/warm.

End-to-end

  • Artefato instalado, não apenas binário interno da árvore.
  • Modelo real compatível, quantização, contexto, batch/sessões e comando completos.
  • Prompt tok/s, generation tok/s, TTFT, p50/p95, wall time e CPU time.
  • CPU utilization e CPU-seconds, deixando claro quando menor latência usa mais CPU total.
  • RSS/peak/scratch, page faults, bytes lidos, bandwidth, IPC/instructions/cache misses quando observáveis.
  • Frequência/thermal throttling e energia somente quando medidos; caso contrário null com motivo.
  • Repetições suficientes, dispersão e comparação no mesmo host/estado térmico.

Telemetria obrigatória

  • ISA detectada e fonte/proveniência;
  • kernel solicitado e efetivo por operação/shape class;
  • baseline/fallback e reason code;
  • tuning key, cache hit/miss, candidatos rejeitados e orçamento;
  • layout/packing version e cache hit;
  • workers/threads/batch e indicação de oversubscription;
  • wall time, CPU time, CPU %, CPU-seconds e métricas indisponíveis com motivo;
  • versão/build/commit do runtime e digest do modelo/quantização.

Release gates

  • Correção, ausência de instrução ilegal e segurança de memória são não dispensáveis.
  • Kernel regressivo, instável ou sem evidência fica desabilitado por padrão.
  • Performance gate compara ao baseline aplicável com threshold e significância definidos; waiver deve ser explícito, temporário e nunca pode dispensar correctness.
  • Universal artifact deve iniciar em CPU baseline e selecionar scalar.
  • Kill switches global e por ISA/kernel devem ser testados.
  • Rollback deve restaurar o caminho anterior sem alterar o modelo/cache do usuário.
  • Procedimento executável localmente; GitHub Actions pago não é requisito.

Critérios de aceite

  • Existe matriz automatizada scalar vs SIMD para todas as variantes promovíveis.
  • Fuzz/property tests cobrem quantização, tails, alinhamento, layouts e parsers relevantes.
  • Host/fixture incompatível comprova fallback sem illegal instruction.
  • Benchmark end-to-end usa modelo real e artefato instalado.
  • Relatório distingue latência, throughput, CPU %, CPU time e CPU-seconds.
  • Receipts permitem reconstruir por que e onde cada kernel foi selecionado.
  • Kernel sem ganho medido não é default.
  • Correção e OOM/safety não podem receber waiver.
  • Kill switch e rollback são exercitados.
  • Documentação pública não transforma capability/planejamento em prova de aceleração.

Evidências para fechar

PR/commit, comandos e ambiente, logs completos, corpus/fuzz findings, matriz de correctness, JSON bruto de benchmark, relatório Markdown, receipts, análise de regressões e procedimento de rollback.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions