debug-cuda-crash
Déboguer les plantages CUDA dans FlashInfer
Les plantages CUDA laissent souvent aucune information de débogage. Ce tutoriels vous apprend à utiliser la journalisation des API de FlashInfer pour capturer les métadonnées des tenseurs avant les plantages. Apprenez à identifier rapidement les incompatibilités de formes, les erreurs de dtype et les problèmes numériques.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“debug-cuda-crash”。 Mon batch_decode_with_padded_kv_cache a planté avec 'accès mémoire illégal'
预期结果:
- Définir les variables d'environnement : export FLASHINFER_LOGLEVEL=3, export FLASHINFER_LOGDEST=debug.log
- Exécuter à nouveau votre code - les entrées seront journalisées AVANT le plantage
- Vérifier le journal pour les formes et dtypes des tenseurs
- Problèmes courants : incompatibilité de forme, mauvais dtype, tenseur CPU passé au GPU
- Pour une analyse plus approfondie : compute-sanitizer --tool memcheck python votre_script.py
正在使用“debug-cuda-crash”。 Ma sortie d'attention contient des valeurs NaN
预期结果:
- Utiliser la journalisation de niveau 5 : export FLASHINFER_LOGLEVEL=5
- Vérifier nan_count et inf_count dans le fichier journal
- Chercher les grandes valeurs min/max indiquant une instabilité numérique
- Vérifier les opérations précédentes pour division par zéro ou dépassement
正在使用“debug-cuda-crash”。 Mon entraînement distribué a planté sur plusieurs GPU
预期结果:
- Utiliser des journaux spécifiques au processus : export FLASHINFER_LOGDEST=rank_%i.log
- Chaque processus GPU crée son propre fichier journal
- Vérifier les journaux de chaque rang pour identifier quel processus a planté en premier
- Comparer les entrées entre les rangs pour trouver les incohérences
安全审计
安全All 160 static findings are FALSE POSITIVES. This skill contains ONLY markdown documentation with zero executable code. The 'backtick execution' findings flag markdown code block formatting, not shell commands. 'Weak cryptographic algorithm' findings flag hash identifiers in metadata. 'System reconnaissance' findings flag environment variable documentation. Pure educational content for CUDA debugging.
风险因素
⚡ 包含脚本 (1)
质量评分
你能构建什么
Déboguer les plantages ML en production
Diagnostiquer les erreurs CUDA dans les charges de service LLM en production à l'aide de la journalisation des API pour capturer les entrées qui échouent
Déboguer les erreurs mémoire du noyau
Utiliser compute-sanitizer combiné avec la journalisation des API pour trouver les accès mémoire illégaux et les erreurs hors limites
Corriger l'instabilité numérique
Détecter les valeurs NaN/Inf dans les calculs d'attention en examinant les statistiques des tenseurs à partir des sorties journalisées
试试这些提示
Mon code FlashInfer a planté avec 'accès mémoire illégal'. Aidez-moi à configurer la journalisation des API pour déboguer cela.
Mon noyau d'attention produit des valeurs NaN. Comment utiliser la journalisation de niveau 5 pour trouver la source ?
Mon travail d'entraînement multi-GPU a planté. Montrez-moi comment journaliser chaque rang séparément pour le débogage.
Combiner la journalisation des API FlashInfer avec compute-sanitizer pour déboguer les erreurs d'accès mémoire. Donnez-moi la commande exacte.
最佳实践
- Toujours commencer par la journalisation de niveau 3 pour les métadonnées des tenseurs sans surcharger la sortie
- Journaliser dans un fichier plutôt que dans stdout pour préserver les journaux après les plantages
- Comparer le dernier appel API réussi (entrées et sorties journalisées) avec le premier appel échoué (seulement les entrées journalisées)
避免
- Utiliser la journalisation de niveau 5 par défaut (ajoute une surcharge de statistiques pour chaque appel)
- Journaliser dans stdout quand le programme plante (la sortie peut être perdue)
- Oublier de désactiver la journalisation en production (ajoute une surcharge même au niveau 1)