Communitygithub.com

2233admin/performance-patterns-skill

SKILL.md playbook qui aide Codex et Claude à diagnostiquer et résoudre les problèmes de performance sous Windows, WSL, Linux et CUDA.

Qu'est-ce que performance-patterns-skill ?

Ce skill fournit un catalogue structuré de motifs de code bien connus causant des problèmes de performance, avec des signaux de détection et des playbooks de résolution pour chaque motif. Il s'appuie sur une architecture de routage multiplateforme : Windows natif, WSL Linux, Linux natif et environnements CUDA/NVIDIA. Le cœur du catalogue se concentre sur le code CPU x86, mais les mécanismes changent selon la plateforme (vocabulaire du profileur, drapeaux du compilateur, format des informations de débogage, primitives de synchronisation, détection des fonctionnalités CPU). Une fois le motif identifié via un profil ou une inspection du code source, le skill guide l'agent pas à pas dans l'application de la correction et sa vérification. Il inclut également une bibliothèque de modules réutilisables (dispatch CPU, algorithmes SIMD, CRC32C rapide) et des références spécifiques à chaque plateforme. Supporté par Codex et Claude, ce skill fonctionne aussi bien seul qu'en combinaison avec d'autres skills de profilage.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add 2233admin/performance-patterns-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Skill des motifs de performance

Un catalogue croissant de motifs de code bien connus causant des problèmes de performance, avec des signaux de détection et des playbooks de résolution pour chacun. Le catalogue principal de motifs se concentre sur le code CPU x86, avec un routage par plateforme pour Windows, WSL Linux, Linux natif et les environnements CUDA/NVIDIA.

Les connaissances d'optimisation sont portables lorsque le matériel est le même. Ce qui change par plateforme, ce sont les mécanismes : le vocabulaire du profileur, les drapeaux du compilateur, le format des informations de débogage, les primitives de synchronisation, la détection des fonctionnalités CPU, et si le goulot d'étranglement est le code hôte CPU ou le travail sur périphérique CUDA.


Étape 0 — Router la plateforme

Si l'utilisateur mentionne WSL, Linux, CUDA, NVIDIA, GPU, Nsight, une incohérence pilote/boîte à outils, des conteneurs, ou si la plateforme n'est pas claire, lisez d'abord references/platform-routing.md.

Chargez ensuite la référence spécifique à la plateforme :

Plateforme / symptômeLire
Performances CPU Windows natif C/C++PORTING-NOTES.md
Performances CPU WSL Linuxreferences/wsl-linux.md, puis references/linux-native.md
Performances CPU Linux natifreferences/linux-native.md
Configuration CUDA/NVIDIA ou performances GPUreferences/cuda.md

Utilisez scripts/collect-perf-env.ps1 sur Windows et scripts/collect-perf-env.sh dans WSL/Linux natif lorsque l'environnement est le problème ou que l'utilisateur n'a pas fourni suffisamment de contexte sur la chaîne d'outils/le profileur.


Comment utiliser ce skill

Étape 1 — Charger le bon fichier pour votre contexte

ContexteLire ce fichier
Vous avez une sortie de profilage (VTune, AMD uProf, ETW/WPA, perf, flamegraph, résumé Nsight, etc.)triggers/from-profile.md
Vous lisez du code source existant sans aucune donnée de profilagetriggers/from-source.md
Vous écrivez du nouveau code C/C++ ou SIMD sensible aux performancesguidelines/new-code.md

Les fichiers déclencheurs couvrent tous les mêmes motifs ; ils sont séparés pour que vous ne chargiez que ce qui est pertinent. guidelines/new-code.md est une liste de contrôle au moment de l'écriture — chargez-le à la place d'un fichier déclencheur lorsque vous générez du nouveau code, pas lors d'une révision.

Étape 2 — Identifier le motif correspondant

Chaque fichier déclencheur contient un tableau compact et des descriptions brèves — assez pour décider si le code ou le profil correspond à un motif connu.

Étape 3 — Lire le fichier détaillé du motif

Lorsqu'un motif correspond, lisez le fichier correspondant dans patterns/. Ne tentez pas la correction de mémoire.

Étape 4 — Appliquer la correction et vérifier

Suivez les instructions pas à pas et la méthode de vérification dans le fichier motif, en utilisant les mécanismes de la plateforme chargés à l'étape 0.

Plusieurs motifs peuvent s'appliquer simultanément. Vérifiez toutes les correspondances plausibles avant d'en choisir une.


Modules de bibliothèque réutilisables

Ces guides d'implémentation autonomes sont disponibles pour tout agent travaillant dans ce skill, pas seulement lors du suivi d'un motif spécifique. Chargez le fichier pertinent directement si la capacité est nécessaire.

ModuleCe qu'il fournit
library/cpu-dispatch.mdDétection des fonctionnalités CPU au runtime et sélection de variantes sous Windows. Dispatch manuel par pointeur de fonction uniquement — target_clones n'est pas disponible sur la cible PE/COFF (pas d'IFUNC). Couvre __builtin_cpu_supports, le chemin explicite __cpuid/_xgetbv, et __attribute__((target(...))) par variante. Neutre vis-à-vis du fabricant (Intel + AMD). À utiliser lorsqu'une fonction a plusieurs implémentations de niveaux de performance qui doivent être connectées au runtime.
patterns/simd-upconversion-impl.mdAlgorithme zip complet pas à pas pour doubler la largeur des registres vectoriels en intrinsèques (SSE→AVX2 ou AVX2→AVX-512) ; modèle d'accumulateur AVX-512 ; liste de contrôle post-transformation (garde CPUID, vzeroupper, attributs de cible).
patterns/fast-crc32c-impl.mdBibliothèque CRC32C prête à l'emploi : fusion AVX-512 VPCLMULQDQ, multi-accumulateur SSE4.2 + PCLMULQDQ, repli en C simple. Dispatch CPU au runtime inclus. À utiliser chaque fois qu'un nouveau code CRC32C est nécessaire ou qu'une implémentation existante est le goulot d'étranglement.
references/platform-routing.mdRouter les requêtes Windows / WSL / Linux natif / CUDA avant d'appliquer un motif.
references/cuda.mdConfiguration CUDA et triage des performances : visibilité pilote/boîte à outils, Nsight Systems vs Nsight Compute, limites GPU WSL.

Intégration avec d'autres skills

Les skills de collecte de données/profilage peuvent invoquer ce skill après avoir identifié un motif connu. Ce skill fonctionne également de manière autonome à partir du code source, d'extraits de profileur ou de la sortie de sondes d'environnement.

Statut du skill

Porté et révisé pour Windows natif C/C++, puis étendu avec des notes de routage pour WSL Linux, Linux natif et les environnements CUDA/NVIDIA. Les fichiers suivants sont présents : ce SKILL.md, PORTING-NOTES.md, triggers/from-source.md, triggers/from-profile.md, guidelines/new-code.md, design.md, library/cpu-dispatch.md, les sources de la bibliothèque CRC32C, les références de plateforme, les tests de performance et tous les fichiers de motifs :

  • parallel-accumulator, missing-vzeroupper, missing-restrict
  • ttas, false-sharing, per-cpu-stats, cold-path-annotation
  • cv-thundering-herd, mutex-to-rwlock, simd-sort
  • simd-upconversion + simd-upconversion-impl
  • fast-crc32c + fast-crc32c-impl
  • library-version-upgrade

references/library-versions.md conserve intentionnellement des entrées de DLL tierces non vérifiées dans un tableau TODO ; ne les promouvez pas en recommandations sans vérification de la source primaire et mesure sous Windows.

Skills associés