Communitygithub.com

2233admin/performance-patterns-skill

CodexおよびClaudeがWindows、WSL、Linux、CUDAのパフォーマンス問題をルーティングして解決するためのSKILL.mdプレイブックです。

performance-patterns-skill とは?

このスキルは、Windows、WSL、ネイティブLinux、CUDA/NVIDIA環境におけるCPUおよびGPUのパフォーマンス問題を診断・解決するための総合的なプレイブックです。x86 CPUコードに焦点を当てた既知のパフォーマンスパターンのカタログを提供し、各パターンに検出シグナルと解決手順を定義しています。プラットフォームが変わっても最適化知識は移植可能であり、プロファイラ用語、コンパイラフラグ、デバッグ情報形式、同期プリミティブ、CPU機能検出などの仕組みが自動的に切り替わります。ユーザーはプロファイリング出力、ソースコードレビュー、新規コード作成のいずれかのトリガーファイルからパターンマッチングを開始し、該当するパターン詳細ファイルを読み込んで修正を適用・検証します。また、CPUディスパッチ、SIMDアップコンバージョン、高速CRC32Cなどの再利用可能なライブラリモジュールも備えており、クロススキル統合も可能です。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

パフォーマンスパターンスキル

パフォーマンス問題を引き起こす既知のコードパターンの拡大するカタログです。各パターンには検出シグナルと解決プレイブックが含まれています。コアパターンカタログはx86 CPUコードに焦点を当て、Windows、WSL Linux、ネイティブLinux、CUDA/NVIDIA環境向けのプラットフォームルーティングを備えています。

最適化知識は、ハードウェアが同じであれば移植可能です。プラットフォームによって変わるのは、プロファイラ用語、コンパイラフラグ、デバッグ情報形式、同期プリミティブ、CPU機能検出、そしてボトルネックがCPUホストコードかCUDAデバイスワークかという点です。


ステップ0 — プラットフォームをルーティングする

ユーザーがWSL、Linux、CUDA、NVIDIA、GPU、Nsight、ドライバ/ツールキットの不一致、コンテナ、またはプラットフォームが不明な場合は、まず references/platform-routing.md を読んでください。

次に、プラットフォーム固有のリファレンスを読み込んでください:

プラットフォーム / 症状読むファイル
Windows ネイティブ C/C++ CPU パフォーマンスPORTING-NOTES.md
WSL Linux CPU パフォーマンスreferences/wsl-linux.md、その後 references/linux-native.md
ネイティブ Linux CPU パフォーマンスreferences/linux-native.md
CUDA/NVIDIA セットアップまたは GPU パフォーマンスreferences/cuda.md

環境が問題である場合、またはユーザーが十分なツールチェーン/プロファイラのコンテキストを提供していない場合、Windowsでは scripts/collect-perf-env.ps1 を、WSL/ネイティブLinux内では scripts/collect-perf-env.sh を使用してください。


このスキルの使い方

ステップ1 — コンテキストに合った正しいファイルを読み込む

コンテキスト読むファイル
プロファイリング出力がある(VTune、AMD uProf、ETW/WPA、perf、flamegraph、Nsightサマリーなど)triggers/from-profile.md
既存のソースコードを読んでいて、プロファイリングデータがないtriggers/from-source.md
パフォーマンスに敏感なC/C++またはSIMDコードを新しく書いているguidelines/new-code.md

トリガーファイルは同じパターンをすべてカバーしていますが、関連するものだけを読み込めるよう分離されています。guidelines/new-code.md は作成時のチェックリストです — レビュー時ではなく、新しいコードを生成する際にトリガーファイルの代わりに読み込んでください。

ステップ2 — 一致するパターンを特定する

各トリガーファイルには、コードまたはプロファイルが既知のパターンに一致するかどうかを判断するのに十分なコンパクトな表と簡単な説明が含まれています。

ステップ3 — パターン詳細ファイルを読む

パターンに一致した場合は、patterns/ から対応するファイルを読んでください。記憶から修正を試みないでください。

ステップ4 — 修正を適用して検証する

パターンファイルのステップバイステップの手順と検証方法に従い、ステップ0で読み込んだルーティングファイルのプラットフォームメカニクスを使用してください。

複数のパターンが同時に適用される可能性があります。1つを選ぶ前に、可能性のあるすべての一致を確認してください。


再利用可能なライブラリモジュール

これらのスタンドアロン実装ガイドは、特定のパターンに従う場合だけでなく、このスキル内で作業する任意のエージェントが利用できます。必要な機能がある場合は、関連するファイルを直接読み込んでください。

モジュール提供内容
library/cpu-dispatch.mdWindows上でのランタイムCPU機能検出とバリアント選択。手動関数ポインタディスパッチのみ — target_clones はPE/COFFターゲットでは利用不可(IFUNCなし)。__builtin_cpu_supports、明示的な __cpuid/_xgetbv パス、バリアントごとの __attribute__((target(...))) をカバー。ベンダーニュートラル(Intel + AMD)。実行時に複数のパフォーマンスレベルの実装を結合する必要がある関数で使用してください。
patterns/simd-upconversion-impl.mdイントリンシクスでのベクトルレジスタ幅を倍にする完全なステップバイステップのジッパーアルゴリズム(SSE→AVX2またはAVX2→AVX-512)。AVX-512アキュムレータテンプレート。変換後のチェックリスト(CPUIDガード、vzeroupper、ターゲット属性)。
patterns/fast-crc32c-impl.mdドロップインCRC32Cライブラリ:AVX-512 VPCLMULQDQ融合、SSE4.2 + PCLMULQDQマルチアキュムレータ、プレーンCフォールバック。ランタイムCPUディスパッチラッパー付き。新しいCRC32Cコードが必要な場合、または既存の実装がボトルネックになっている場合に使用してください。
references/platform-routing.mdパターンを適用する前にWindows/WSL/ネイティブLinux/CUDAリクエストをルーティングします。
references/cuda.mdCUDAセットアップとパフォーマンストリアージ:ドライバ/ツールキットの可視性、Nsight SystemsとNsight Computeの比較、WSL GPU境界。

クロススキル統合

プロファイラ/データ収集スキルは、既知のパターンを特定した後、このスキルを呼び出すことができます。このスキルは、ソースコード、プロファイラスニペット、または環境プローブ出力からスタンドアロンでも動作します。

スキルステータス

Windows ネイティブ C/C++ 向けに移植およびレビューされ、その後WSL Linux、ネイティブLinux、CUDA/NVIDIA環境向けのルーティングノートが拡張されました。以下のコアファイルが存在します:この SKILL.md、PORTING-NOTES.md、triggers/from-source.md、triggers/from-profile.md、guidelines/new-code.md、design.md、library/cpu-dispatch.md、CRC32Cライブラリソース、プラットフォームリファレンス、ベンチマークテスト、およびすべてのパターンファイル:

  • 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 には、検証されていないサードパーティDLLエントリが意図的にTODOテーブルに残されています。一次ソースの検証とWindowsでの測定なしに、これらを推奨事項に昇格させないでください。

関連スキル