К основному содержанию
скилл CX Codex

system-profile — скилл для Claude Code: что делает и как установить

Профилирует скрипты, процессы, память и GPU с помощью системных утилит и точечной инъекции замеров в код. Помогает найти узкие места в обучении моделей или пайплайнах.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill system-profile -a claude-code
Открыть на GitHub

Что делает system-profile

Скилл анализирует производительность конкретного скрипта, процесса по PID, сервиса вроде vLLM или подсистем железа. Он сам выбирает способ замера под указанную цель. Для анализа задействуются профилировщики cProfile, py-spy, torch.profiler, nsys, системные команды вроде strace или анализ топологии через nvidia-smi.

Когда внешних утилит не хватает, ассистент сам дописывает замеры в исходный код. Он использует декораторы, контекстные менеджеры и таймеры CUDA-событий, помечая каждую правку комментарием # [PROFILE]. В циклах агент не ставит замеры на каждую итерацию, чтобы не искажать результаты. Это снижает эффект наблюдателя. Все артефакты, логи и трейсы сохраняются в каталог ./profile_output/.

Итоговый отчёт содержит таблицы накладных расходов CPU, памяти и шины данных, а также обязательный список изменённых файлов. Вы всегда можете потребовать откат всех правок. Агенту требуются локально установленные утилиты профилирования, иначе глубокий сбор метрик по GPU и сети сорвётся.

Какие задачи решает

  • замерить пропускную способность связок GPU и NVLink
  • найти узкие места в скриптах обучения и сервисах на vLLM
  • отследить избыточное дублирование данных между CPU и GPU
  • расставить замеры времени CUDA-событий без ручной правки кода

Примеры запросов агенту

  • Профиль train.py
  • Запусти бенчмарк vllm serving и найди узкие места
  • Сними профиль gpu и interconnect для pid 1234

Как установить system-profile

1Через Skills CLI (Vercel)

npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill system-profile -a claude-code

2Вручную: положить файлы

~/.claude/skills/system-profile/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/system-profile/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о system-profile

Как установить system-profile в Claude Code?

Выполните в терминале команду npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill system-profile -a claude-code. Также можно вручную сохранить файл в ~/.claude/skills/system-profile/SKILL.md.

Что делает скилл system-profile?

Он запускает системные профилировщики или внедряет таймеры в код целевого процесса, скрипта либо сервиса. По итогам агент формирует сводку узких мест и сохраняет трейсы в ./profile_output/.

Как вернуть код в исходное состояние после замеров?

Агент обязан составить таблицу со списком изменённых файлов и строк. После завершения анализа достаточно попросить его удалить всю добавленную разметку.

Исходный текст

SKILL.md · MIT
---
name: system-profile
description: "Profile a target (script, process, GPU, memory, interconnect) for performance analysis. Use when user says \"profile\", \"benchmark\", \"bottleneck\", or wants performance analysis."
argument-hint: '<target, e.g. "train.py", "gpu", "pid 1234", "vllm serving">'
---

# System Profile

Profile the specified target and summarize the results. Target: $ARGUMENTS

## Instructions

You are a profiling assistant. Based on the user's target, choose appropriate profiling strategies, **including writing instrumentation code when needed**, then run profiling, analyze results, and produce a summary.

### Step 1: Determine the profiling target

Parse `$ARGUMENTS` to understand what to profile. Examples:
- A Python script or module
- A running process (PID or service name)
- A specific function or code block
- An entire framework or system (e.g., "autogen", "vllm serving") — profile its end-to-end execution, identify bottlenecks across components
- "gpu" / "interconnect" / "memory" for focused profiling

If `$ARGUMENTS` is empty or unclear, ask the user.

### Step 2: Choose profiling methods

Select from external tools and/or code instrumentation as appropriate. Don't limit yourself to the examples below — use whatever makes sense for the target.

**External tools** (check availability first):
- CPU: `cProfile`, `py-spy`, `line_profiler`, `perf stat`, `/usr/bin/time -v`
- Memory: `tracemalloc`, `memory_profiler`, `memray`
- GPU: `nvidia-smi`, `nvidia-smi dmon`, `nvitop`, `torch.profiler`, `nsys`
- Interconnect: `nvidia-smi topo -m`, `nvidia-smi nvlink`, `NCCL_DEBUG=INFO`
- System: `strace -c`, `iostat`, `vmstat`

**Code instrumentation** — when external tools are insufficient, write and insert profiling code into the target. Typical scenarios:
- Timing specific code blocks (wall time vs CPU time)
- Measuring CPU-GPU or GPU-GPU transfer size, frequency, and bandwidth
- Tracking memory allocation across CPU and GPU to detect redundancy
- Wrapping NCCL collectives to measure latency and throughput
- Adding CUDA event timing around kernels

Design the instrumentation based on what you observe in the code — don't use a fixed template.

### Step 3: Key dimensions to investigate

Depending on the target, focus on some or all of these:

**CPU overhead**
- Context switching (voluntary / involuntary)
- CPU utilization: ratio of CPU time to wall time
- Per-function execution time hotspots

**Memory overhead**
- CPU and GPU memory usage (allocated vs reserved vs peak)
- Redundant replication: same data living on both CPU and GPU
- Per-device allocation balance in multi-GPU setups

**Interconnect & communication**
- CPU-GPU transfer: frequency, per-transfer size, total volume, bandwidth achieved
- GPU-GPU transfer: P2P bandwidth, NVLink vs PCIe topology impact
- NCCL collectives: operation type, message size distribution, latency
- Communication-to-computation ratio

**GPU compute**
- SM utilization, kernel launch overhead
- Memory bandwidth utilization vs peak

### Step 4: Instrumentation guidelines

When inserting code into the target:
1. Read and understand the target code first
2. Prefer wrapping (decorator, context manager, standalone runner) over inline edits
3. If inline edits are necessary, mark them clearly (e.g., `# [PROFILE]` comments)
4. Minimize observer effect — don't instrument tight inner loops; sample instead
5. Collect results into a structured log, don't scatter print statements

### Step 5: Run profiling

1. Check available tools and hardware topology
2. Run the chosen methods, capture all output
3. Save artifacts (flamegraphs, traces, logs) to `./profile_output/`

### Step 6: Produce the report

**Part A — Profiling results** (structured tables by dimension, as applicable):
- CPU overhead table
- Memory overhead table (with redundancy column)
- Interconnect table (transfer type / frequency / size / latency / bandwidth)
- Hotspots / bottleneck identification
- Actionable recommendations ranked by expected impact

**Part B — Instrumentation changelog** (MANDATORY):
List every file that was modified or created for profiling purposes:

| File | Change type | What was added/modified | Line(s) |
|------|-------------|------------------------|---------|
| ... | modified | ... | ... |
| ... | created | ... | — |

This allows the user to review and revert all instrumentation changes.
Offer to clean up (remove all instrumentation) when the user is done.

© wanshuiyin · MIT · wanshuiyin/Auto-claude-code-research-in-sleep

Похожие скиллы

Всё по теме «ИИ и ML» →
cuda-profiling mohitmishra786 Ведёт агента по профилированию CUDA-приложений: таймлайн в Nsight Systems, метрики ядер в Nsight Compute, разбор roofline и узких мест. CX Codex +1 316установок profile-model modular Профилирует модели MAX, чтобы проверить загрузку GPU и найти самые долгие GPU-ядра. Нужен при медленном инференсе или разборе трассировки. CX Codex +1 1 200установок rust-profiling mohitmishra786 Скилл для анализа производительности Rust: флеймграфы, размер бинарника, раздувание мономорфизации и микробенчмарки Criterion. CX Codex +1 586установок golang-benchmark samber Скилл помогает писать и запускать бенчмарки Go, разбирать профили и сравнивать результаты. Пригодится для поиска регрессий и анализа узких мест. CX Codex +1 39 500установок codspeed CodSpeed Подключает к Claude сервер CodSpeed MCP: агент видит результаты бенчмарков, флеймграфы и сравнения и сам ищет узкие места. ★ 376звёзд репо m10-performance actionbook Инструкции для агента по оптимизации Rust-кода: от замеров через бенчмарки до устранения лишних аллокаций памяти. CX Codex +1 3 600установок

Из того же набора78

training-check Периодически проверяет метрики WandB во время обучения и помогает заметить NaN, расхождение loss или деградацию метрик до завершения запуска. CX Codex +1 482установок citation-audit Сверяет каждую ссылку в статье с реальными источниками: существует ли работа, верны ли авторы, год и площадка, подходит ли контекст цитирования. CX Codex +1 483установок research-wiki Хранит статьи, идеи, гипотезы и результаты тестов в виде графа знаний проекта. Пригодится для фиксации исследовательского контекста между сессиями. CX Codex +1 479установок deepxiv Ищет научные статьи и читает их по частям через DeepXiv SDK. Помогает изучать публикации на arXiv без немедленной загрузки полного текста. CX Codex +1 476установок proof-checker Проверяет математические доказательства в файлах LaTeX через кросс-модельную проверку, закрывает логические пробелы и собирает отчёт аудита. CX Codex +1 469установок paper-claim-audit Проверяет, что каждое число, сравнение и утверждение о границах эксперимента в статье совпадает с сырыми файлами результатов. Пригодится перед отправкой работы. CX Codex +1 469установок experiment-audit Проверяет честность научных экспериментов через независимый внешний аудит перед публикацией результатов. CX Codex +1 465установок invention-structuring Превращает сырую идею в формальное invention disclosure: техническая проблема, решение, признаки и план формулы. Пригодится, когда есть набросок, а не структура. CX Codex +1 463установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой