CommunityCodierung & Entwicklunggithub.com

pytorch/at-dispatch-v2

Konvertiert PyTorch AT_DISPATCH-Makros in das AT_DISPATCH_V2-Format im ATen C++-Code. Verwenden Sie dies beim Portieren von AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES* oder anderen Dispatch-Makros auf die neue v2-API. Für ATen-Kernel-Dateien, CUDA-Kernel und native Operator-Implementierungen.

Was ist at-dispatch-v2?

Diese Fähigkeit automatisiert die Migration von PyTorch AT_DISPATCH-Makros zur neueren AT_DISPATCH_V2-API im ATen C++-Code. Sie ist besonders nützlich für Entwickler, die an PyTorch-Codebasis arbeiten und ATen-Kernel-Dateien, CUDA-Kernel oder native Operator-Implementierungen portieren. Die Konvertierung betrifft Makros wie AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES* und andere Dispatch-Makros, die typischerweise in GPU-Kernels und Operator-Implementierungen verwendet werden. Die v2-API bietet eine sauberere Syntax und konsistentere Verhalten, was die Wartbarkeit und Lesbarkeit des Dispatch-Codes verbessert. Die Fähigkeit erkennt automatisch die relevanten Makros in Dateien mit den Endungen .cpp, .h, .cu oder .cuh und führt eine regelbasierte Transformation durch, wobei die semantische Korrektheit des generierten Codes sichergestellt wird.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht at-dispatch-v2?

Konvertiert PyTorch AT_DISPATCH-Makros in das AT_DISPATCH_V2-Format im ATen C++-Code. Verwenden Sie dies beim Portieren von AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES* oder anderen Dispatch-Makros auf die neue v2-API. Für ATen-Kernel-Dateien, CUDA-Kernel und native Operator-Implementierungen.

Unterstützte Makros

  • AT_DISPATCH_ALL_TYPES_AND*
  • AT_DISPATCH_FLOATING_TYPES*
  • AT_DISPATCH_COMPLEX_TYPES*
  • AT_DISPATCH_INTEGRAL_TYPES*
  • AT_DISPATCH_QINT_TYPES*

Funktionsweise

Die Konvertierung erfolgt durch:

  1. Erkennen des Dispatch-Makros und seiner Argumente
  2. Ersetzen durch das entsprechende AT_DISPATCH_V2-Äquivalent
  3. Beibehalten des Lambda-Körpers und aller Typparameter
  4. Anpassen der Typ-Alias-Deklarationen an die v2-Konvention

Beispiel

Vorher (v1):

AT_DISPATCH_FLOATING_TYPES(input.scalar_type(), "my_kernel", [&]() {
    auto output = input * scalar_t(2.0);
    return output;
});

Nachher (v2):

AT_DISPATCH_V2(input.scalar_type(), "my_kernel", AT_EXPAND(AT_FLOAT_TYPES), [&]() {
    using scalar_t = scalar_t;
    auto output = input * scalar_t(2.0);
    return output;
});

Wichtige Hinweise

  • Stellen Sie sicher, dass die Quelldatei die erforderlichen Includes für die v2-API enthält (z.B. <ATen/Dispatch_v2.h>)
  • Überprüfen Sie nach der Konvertierung die Korrektheit des generierten Codes
  • Die Konvertierung bewahrt alle Lambda-Körper und Typargumente unverändert
  • Bei gemischten v1/v2-Projekten kann eine schrittweise Migration durchgeführt werden

Verwendung

Führen Sie die Konvertierung auf einer einzelnen Datei oder einem Verzeichnis aus:

# Einzelne Datei konvertieren
skills/at-dispatch-v2 path/to/kernel.cpp

# Alle Dateien in einem Verzeichnis konvertieren
skills/at-dispatch-v2 path/to/aten/

Die Fähigkeit erkennt automatisch Dateien mit den Endungen .cpp, .h, .cu oder .cuh und führt die Konvertierung nur durch, wenn relevante Makros gefunden werden.

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.

Verwandte Skills