Was macht aoti-debug?
Debuggen von AOTInductor (AOTI)-Fehlern und Abstürzen. Verwenden bei AOTI-Segfaults, Geräteinkonsistenzfehlern, Fehlern beim Laden von Konstanten oder Laufzeitfehlern von aot_compile, aot_load, aoti_compile_and_package oder aoti_load_package.
Häufige Probleme und Lösungen
1. Segmentierungsfehler (Segfaults)
Symptom: Der Prozess stürzt mit einer Segmentation-Fault-Meldung ab.
Mögliche Ursachen:
- Inkompatible C++-ABI zwischen Kompilierungs- und Ausführungsumgebung
- Unzusammenhängende Speicherzugriffe im generierten Code
- Fehlerhafte benutzerdefinierte Kernel
Lösung:
- Überprüfen Sie die Konsistenz der C++-ABI mit
python -c "import torch; print(torch._C._GLIBCXX_USE_CXX11_ABI)" - Versuchen Sie, die Umgebungsvariable
TORCHINDUCTOR_COMPILE_ONLY=1zu setzen, um die Ausführung zu isolieren - Verwenden Sie einen Debug-Build von PyTorch, um detailliertere Stacktraces zu erhalten
2. Geräteinkonsistenzfehler
Symptom: Fehlermeldung wie "expected all tensors to be on the same device"
Ursache: Eingabetensoren befinden sich auf unterschiedlichen Geräten (z.B. CPU und CUDA).
Lösung:
- Stellen Sie sicher, dass alle Eingabetensoren auf demselben Gerät liegen, z.B. mit
.to(device) - Überprüfen Sie das standardmäßige Gerät mit
torch.cuda.current_device()oderstr(tensor.device)
3. Fehler beim Laden von Konstanten
Symptom: Fehler beim Aufruf von aot_load oder aoti_load_package
Ursache: Die kompilierte Artefaktdatei fehlt oder wurde mit inkompatiblen PyTorch-Versionen erstellt.
Lösung:
- Stellen Sie sicher, dass die Datei existiert:
ls -la <pfad-zur-datei> - Überprüfen Sie die PyTorch-Versionen:
python -c "import torch; print(torch.__version__)" - Kompilieren Sie erneut mit der aktuellen Umgebung
Debugging-Workflow
- Identifizieren Sie die Fehlerquelle: Handelt es sich um einen Segfault, einen Python-Ausnahmefehler oder einen Laufzeitfehler?
- Isolieren Sie das Problem: Versuchen Sie, das Problem mit minimalen reproduzierbaren Beispielen zu reproduzieren
- Überprüfen Sie die Umgebungskonsistenz: Stellen Sie sicher, dass Kompilierungs- und Ausführungsumgebung identisch sind
- Aktivieren Sie die detaillierte Protokollierung: Setzen Sie
TORCHINDUCTOR_DEBUG=1oderTORCH_COMPILE_DEBUG=1 - Verwenden Sie Debug-Tools: GDB für Segfaults, Python-Traceback für Ausnahmen
Unterstützte Plattformen
Dieser Skill funktioniert mit Claude Code, Cursor, Codex und anderen KI-Agent-Plattformen, die benutzerdefinierte Skills unterstützen.