pytorch/at-dispatch-v2

Converta macros AT_DISPATCH do PyTorch para o formato AT_DISPATCH_V2 em código C++ do ATen. Use ao portar AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES* ou outras macros de dispatch para a nova API v2. Para arquivos kernel do ATen, kernels CUDA e implementações nativas de operadores.

O que é at-dispatch-v2?

Este skill automatiza a migração de macros de dispatch legadas do PyTorch, como AT_DISPATCH_ALL_TYPES_AND* e AT_DISPATCH_FLOATING_TYPES*, para a nova API AT_DISPATCH_V2 em código C++ do ATen. A conversão é necessária para alinhar-se às práticas modernas de desenvolvimento do PyTorch, principalmente em arquivos kernel do ATen, kernels CUDA e implementações nativas de operadores. A habilidade analisa o código-fonte e substitui as chamadas de macro antigas pelo formato v2 correspondente, preservando a lógica de tipo e as operações internas. Funciona tanto para funções de CPU quanto para kernels CUDA, detectando automaticamente os tipos de macro (ex.: floating, integral, complex) e ajustando-as para a nova sintaxe. Suporta todos os ambientes onde o PyTorch utiliza dispatch type-based, incluindo arquivos .cpp e .cu. Com base na documentação SKILL.md, o skill é especialmente útil para desenvolvedores que estão atualizando código base do PyTorch para a versão 2.x, garantindo compatibilidade e melhor desempenho. A tradução considera os detalhes técnicos sem alterar nomes de tipos, classes ou variáveis, mantendo a integridade do código existente. A saída é pronta para uso imediato no ambiente de build do PyTorch.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pytorch/pytorch/tree/main/skills/at-dispatch-v2

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que at-dispatch-v2 faz?

Converta macros AT_DISPATCH do PyTorch para o formato AT_DISPATCH_V2 em código C++ do ATen. Use ao portar AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES* ou outras macros de dispatch para a nova API v2. Para arquivos kernel do ATen, kernels CUDA e implementações nativas de operadores.

Descrição

Este skill converte automaticamente as chamadas de macro de dispatch do PyTorch, como AT_DISPATCH_ALL_TYPES_AND* e AT_DISPATCH_FLOATING_TYPES*, para o novo formato AT_DISPATCH_V2. Isso é necessário para migrar código C++ do ATen (incluindo kernels CUDA e implementações nativas) para a API v2 do PyTorch.

Uso

  1. Selecione o bloco de código contendo macros AT_DISPATCH.
  2. Execute o comando pytorch/at-dispatch-v2.
  3. O código será convertido para o formato AT_DISPATCH_V2 equivalente.

Exemplo de Conversão

Antes:

AT_DISPATCH_ALL_TYPES_AND(kHalf, input, "my_op", [&]() {
  // ... código usando scalar_t ...
});

Depois:

AT_DISPATCH_ALL_TYPES_AND_V2(kHalf, input, "my_op", AT_EXPAND(AT_WRAP([&]() {
  // ... código usando scalar_t ...
})));

Macros Suportadas

  • AT_DISPATCH_ALL_TYPES_AND → AT_DISPATCH_ALL_TYPES_AND_V2
  • AT_DISPATCH_FLOATING_TYPES → AT_DISPATCH_FLOATING_TYPES_V2
  • AT_DISPATCH_COMPLEX_TYPES → AT_DISPATCH_COMPLEX_TYPES_V2
  • AT_DISPATCH_INTEGRAL_TYPES → AT_DISPATCH_INTEGRAL_TYPES_V2
  • Outras macros similares

Detalhes Técnicos

  • Preserva a indentação e estrutura do código.
  • Mantém comentários e espaços em branco.
  • Converte corretamente listas de tipos (ex.: kHalf, kBFloat16).
  • Funciona em arquivos .cpp e .cu.

Limitações

  • Não modifica a lógica interna das lambdas (apenas o invólucro da macro).
  • Requer que as macros estejam escritas no formato padrão (sem customizações).

Contribuições

Relate problemas ou sugira melhorias no repositório oficial.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

pytorch/add-uint-support

Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.

pytorch/aoti-debug

Debug AOTInductor (AOTI) errors and crashes. Use when encountering AOTI segfaults, device mismatch errors, constant loading failures, or runtime errors from aot_compile, aot_load, aoti_compile_and_package, or aoti_load_package.

pytorch/docstring

Write docstrings for PyTorch functions and methods following PyTorch conventions. Use when writing or updating docstrings in PyTorch code.

pytorch/metal-kernel

Write Metal/MPS kernels for PyTorch operators. Use when adding MPS device support to operators, implementing Metal shaders, or porting CUDA kernels to Apple Silicon. Covers native_functions.yaml dispatch, host-side operators, and Metal kernel implementation.

pytorch/pr-review

Review PyTorch pull requests for code quality, test coverage, security, and backward compatibility. Use when reviewing PRs, when asked to review code changes, or when the user mentions "review PR", "code review", or "check this PR".

pytorch/pyrefly-type-coverage

Migrate a file to use stricter Pyrefly type checking with annotations required for all functions, classes, and attributes.

pytorch/skill-writer

Guide users through creating Agent Skills for Claude Code. Use when the user wants to create, write, author, or design a new Skill, or needs help with SKILL.md files, frontmatter, or skill structure.

pytorch/triaging-issues

Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.

Habilidades Relacionadas