Communitygithub.com

2233admin/性能模式技能

帮助 Codex 和 Claude 诊断和解决 Windows、WSL、Linux 及 CUDA 环境下的性能问题的 SKILL.md 指南。

性能模式技能 是什么?

该 AI 技能提供了一个不断增长的已知代码模式目录,这些模式会导致性能问题,包括每种模式的检测信号和解决方案手册。核心模式目录专注于 x86 CPU 代码,并支持根据平台(Windows、WSL Linux、原生 Linux 和 CUDA/NVIDIA 环境)进行路由。该技能首先指导您确定平台,加载相应的参考文件(如 `references/linux-native.md` 或 `references/cuda.md`),然后根据您是否拥有性能分析输出或源代码来选择触发器文件(`triggers/from-profile.md` 或 `triggers/from-source.md`)。识别出匹配的模式后,它会引导您到 `patterns/` 目录下的详细修复文件,并提供逐步说明和验证方法。它还包括可重用的库模块,例如用于运行时 CPU 功能检测的 `library/cpu-dispatch.md` 和用于 SIMD 优化的 `patterns/simd-upconversion-impl.md`。此技能旨在与代码分析工具集成,也可独立使用。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add 2233admin/performance-patterns-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

性能模式技能 是做什么的?

一份不断增长的、已知会导致性能问题的代码模式目录,其中包含每种模式的检测信号和解决方案手册。核心模式目录专注于 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、火焰图、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 中加载的路由文件中的平台特定机制。

多个模式可以同时应用。在选择一个模式之前,检查所有看似合理的匹配项。


可重用的库模块

这些独立的实现指南可供在此技能中工作的任何智能体使用,而不仅仅是在遵循特定模式时。如果需要该功能,请直接加载相关文件。

模块提供的内容
library/cpu-dispatch.md在 Windows 上进行运行时 CPU 特性检测和变体选择。仅限手动函数指针分发 — target_clones 在 PE/COFF 目标上不可用(无 IFUNC)。涵盖 __builtin_cpu_supports、显式 __cpuid/_xgetbv 路径以及每个变体的 __attribute__((target(...)))。供应商中立(Intel + AMD)。当函数有多个需要运行时连接在一起的性能级别实现时使用。
patterns/simd-upconversion-impl.md用于在 intrinsics 中加倍向量寄存器宽度的完整逐步拉链算法(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 条目保留在待办表格中;未经原始来源验证和 Windows 测量,不得将其提升为推荐项。

相关技能