Communitygithub.com

성능 패턴 스킬

Windows, WSL, Linux, CUDA 환경에서 발생하는 성능 문제를 진단하고 해결하는 플레이북입니다.

성능 패턴 스킬란 무엇인가요?

이 스킬은 성능 문제를 일으키는 잘 알려진 코드 패턴을 카탈로그화하고, 각 패턴에 대한 탐지 신호와 해결 플레이북을 제공합니다. 주로 x86 CPU 코드를 대상으로 하며, Windows, WSL Linux, 네이티브 Linux, CUDA/NVIDIA 환경에 대한 플랫폼 라우팅 기능을 포함합니다. 사용자가 프로파일링 출력(VTune, perf, Nsight 등)을 가지고 있거나, 소스 코드를 리뷰 중이거나, 새로운 성능에 민감한 코드를 작성할 때 적절한 트리거 파일을 로드하여 패턴을 식별하고, 'patterns/' 디렉토리의 상세한 단계별 지침에 따라 수정 및 검증을 수행할 수 있습니다. 또한 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, 플레임 그래프, 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.mdWindows에서 런타임 CPU 기능 탐지 및 변형 선택. 수동 함수 포인터 디스패치 전용 — PE/COFF 대상에서는 target_clones를 사용할 수 없음(IFUNC 없음). __builtin_cpu_supports, 명시적 __cpuid/_xgetbv 경로, 변형별 __attribute__((target(...)))를 다룹니다. 벤더 중립적(Intel + AMD). 여러 성능 수준 구현을 런타임에 연결해야 하는 함수가 있을 때 사용하십시오.
patterns/simd-upconversion-impl.md내장 함수에서 벡터 레지스터 너비를 두 배로 늘리는(SSE→AVX2 또는 AVX2→AVX-512) 완전한 단계별 지퍼 알고리즘; AVX-512 누산기 템플릿; 변환 후 체크리스트(CPUID 가드, vzeroupper, target 속성).
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 측정 없이 이를 권장 사항으로 승격하지 마십시오.

관련 스킬