ワンクリックで
rocprofsys
ROCm Systems Profiler (rocprofiler-systems) project workflows - configure, build, test, and development
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
ROCm Systems Profiler (rocprofiler-systems) project workflows - configure, build, test, and development
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Given a TheRock nightly build (URL or run-id), return the rocm-systems pin_sha used in that build
Check whether a given rocm-systems commit is included in a specific TheRock nightly build
Find the first TheRock nightly build that includes a given rocm-systems commit
Reviews Pull Requests or local diffs with an 8-agent fan-out covering static analysis, dead code, code smells + quality (naming, complexity, single-responsibility, magic numbers), language rules (C++/Python/CMake), architecture, simplification, performance (hot-path classification, allocations, locks, I/O), and undefined behaviour (signed overflow, lifetime, strict aliasing, data races, sanitizer coverage; C/C++/unsafe-Rust only). Use when the user asks to "review this PR", "review the diff", "audit this branch", "/pr-review", or when staging changes before push.
Walk through a PR review interactively, one finding at a time. Generate review via pr-review, then for each issue present analysis + proposed inline comment, let user accept/edit/skip, accumulate into a PENDING GitHub review, submit at end.
Use when user wants to list, analyze, review, or summarize GitHub PR comments on a pull request number or URL
| name | rocprofsys |
| description | ROCm Systems Profiler (rocprofiler-systems) project workflows - configure, build, test, and development |
Main entry point for working with the rocprofiler-systems project. Provides guidance on configuration, building, testing, and common development workflows.
rocprofiler-systems (formerly Omnitrace) is a comprehensive profiling and tracing tool for parallel applications (C, C++, Fortran, HIP, OpenCL, Python) on CPU and GPU.
Key characteristics:
projects/rocprofiler-systems/)rocprofiler-systems supports two main output types:
| Output Type | Environment Variable | Description |
|---|---|---|
| Perfetto | ROCPROFSYS_TRACE=1 | Protobuf trace format (viewable in ui.perfetto.dev) |
| RocPD | ROCPROFSYS_USE_ROCPD=1 | SQLite database format for offline analysis |
Perfetto format has two implementations:
| Mode | Environment Variables | Implementation | Status |
|---|---|---|---|
| Standard (Cached) | ROCPROFSYS_TRACE=1 | New caching implementation via cache_policy | Current, recommended |
| Legacy | ROCPROFSYS_TRACE=1 + ROCPROFSYS_TRACE_LEGACY=true | Old direct-write implementation via perfetto_policy | Legacy, has timing issues on short workloads |
Key differences:
Use this skill when:
rocm-systems/ # Monorepo root
└── projects/
└── rocprofiler-systems/ # Project root
├── CMakeLists.txt
├── CMakePresets.json # Standard build configs
├── build/ # Build directories
│ ├── ci/ # CI build
│ ├── debug/ # Debug build
│ ├── release/ # Release build
│ └── debug-optimized/ # RelWithDebInfo build
├── source/ # Source code
├── external/ # Third-party deps
├── examples/ # Example programs
├── tests/ # Test suite
├── scripts/
│ └── build-release.sh # Release build script
└── docs/ # Documentation
For new developers or clean environment:
1. Find project location (in monorepo)
2. Configure with a preset → use rocprofsys-configure
3. Build the project → use rocprofsys-build
4. Run tests
For active development with debugging:
1. Configure with debug preset
2. Build incrementally
3. Run specific tests
For packaging or performance testing:
1. Configure with release preset
2. Build with optimizations
3. Create packages
When dependencies change or build is corrupted:
1. Remove build directory
2. Reconfigure from scratch
3. Full rebuild
| Skill | Use For |
|---|---|
rocprofsys-configure | Configure CMake build with presets and options |
rocprofsys-build | Build, test, and install the project |
When user asks about rocprofsys, determine intent and route:
| User Request | Action |
|---|---|
| "configure rocprofsys" | Invoke rocprofsys-configure |
| "build rocprofsys" | Check if configured, then invoke rocprofsys-build |
| "clean build rocprofsys" | Remove build dir, configure, then build |
| "debug build" | Configure with debug preset, then build |
| "release build" | Configure with release preset, then build |
| "run tests" | Build, then run ctest |
| "install rocprofsys" | Build, then install to prefix |
Since the project may be in different locations (worktrees, different branches), always find it dynamically:
Common locations:
/home/amd/worktree/rocm-systems/*/projects/rocprofiler-systems~/rocm-systems/projects/rocprofiler-systemsDetection strategy:
The project uses CMakePresets.json with these standard configurations:
| Preset | Build Type | Use For | Testing | Install Prefix |
|---|---|---|---|---|
ci | Release | CI builds | ON | /opt/rocprofiler-systems |
debug | Debug | Development | ON | /opt/rocprofiler-systems |
debug-optimized | RelWithDebInfo | Debug with perf | ON | /opt/rocprofiler-systems |
release | Release | Production | OFF | /opt/rocprofiler-systems |
| Option | Default | Description |
|---|---|---|
ROCPROFSYS_BUILD_DYNINST | OFF | Build Dyninst from source |
ROCPROFSYS_BUILD_TBB | OFF | Build TBB from source |
ROCPROFSYS_BUILD_BOOST | OFF | Build Boost from source |
ROCPROFSYS_BUILD_ELFUTILS | OFF | Build elfutils from source |
ROCPROFSYS_BUILD_TESTING | ON | Enable tests |
ROCPROFSYS_USE_PYTHON | ON | Enable Python support |
ROCPROFSYS_USE_MPI | OFF | Enable full MPI support |
ROCPROFSYS_USE_PAPI | ON | Enable PAPI hardware counters |
| Variable | Values | Description |
|---|---|---|
ROCPROFSYS_TRACE | 0 or 1 | Enable Perfetto trace output |
ROCPROFSYS_TRACE_LEGACY | true or false | Use legacy Perfetto implementation |
ROCPROFSYS_USE_ROCPD | 0 or 1 | Enable RocPD SQLite output |
ROCPROFSYS_OUTPUT_PATH | <directory> | Output directory for traces |
ROCPROFSYS_AMD_SMI_METRICS | all, power, temp, etc. | GPU metrics to collect |
ROCPROFSYS_SAMPLING_AINICS | all, none | Enable NIC/AINIC sampling |
AMDSMI_FAKE_AINIC | 0 or 1 | Simulate AINIC devices for testing |
# Standard Perfetto trace with GPU metrics
ROCPROFSYS_TRACE=1 \
ROCPROFSYS_AMD_SMI_METRICS="all" \
bin/rocprof-sys-run -- ./my-app
# Legacy Perfetto mode
ROCPROFSYS_TRACE=1 \
ROCPROFSYS_TRACE_LEGACY=true \
ROCPROFSYS_AMD_SMI_METRICS="all" \
bin/rocprof-sys-run -- ./my-app
# RocPD database output
ROCPROFSYS_USE_ROCPD=1 \
ROCPROFSYS_AMD_SMI_METRICS="all" \
bin/rocprof-sys-run -- ./my-app
# NIC/AINIC metrics with fake devices
AMDSMI_FAKE_AINIC=1 \
ROCPROFSYS_TRACE=1 \
ROCPROFSYS_SAMPLING_AINICS="all" \
bin/rocprof-sys-run -- ./my-app
| Issue | Solution |
|---|---|
| "Cannot find Dyninst" | Configure with -DROCPROFSYS_BUILD_DYNINST=ON |
| "CMake version too old" | Install CMake 3.21+ via pip: pip install cmake |
| "Out of memory during build" | Reduce parallel jobs: cmake --build build -j4 |
| "Tests failing" | Build with debug preset, run specific test |
| "Wrong project path" | Ensure in projects/rocprofiler-systems/ subdirectory |
| "No counter tracks in Perfetto" | Ensure using standard mode (not legacy), check ROCPROFSYS_AMD_SMI_METRICS |
| "Legacy mode: missing counters" | Workload too short (<0.5s), use standard mode or longer workload |
| After This Skill | Use |
|---|---|
| Code changes made | git-commit to commit changes |
| Feature added | planning-feature to plan implementation |
| Bug found | planning-bugfix to plan fix |
| Ready to test | testing-testplan for test plan |
| Ready for PR | git-prepare-pull-request |
| Profiler crashes/errors | debugging-rocprof-sys to debug profiler issues |
| Verify PMC metrics | verify_pmc_metrics to validate GPU/SDMA/NIC output |
| AMD SMI API work | library-amd-smi for AMD SMI C++ API guidance |
Determine user intent
Find project location
Route to appropriate skill
rocprofsys-configurerocprofsys-buildProvide context
User: "Build rocprofsys"
Action: Check if configured → if not, invoke rocprofsys-configure → then invoke rocprofsys-build
User: "Debug build of rocprofiler-systems"
Action: Invoke rocprofsys-configure with debug preset → invoke rocprofsys-build
User: "Clean and rebuild rocprofsys"
Action: Remove build directory → invoke rocprofsys-configure → invoke rocprofsys-build
User: "How do I configure rocprofsys?"
Action: Invoke rocprofsys-configure skill
This skill produces:
No files are created by this dispatcher skill.
| Mistake | Fix |
|---|---|
| Trying to build without configuring | Always configure first |
| Using wrong project path (monorepo root vs project dir) | Navigate to projects/rocprofiler-systems/ |
| Not specifying preset | Use a preset or set CMAKE_BUILD_TYPE |
| Assuming project is in fixed location | Always find dynamically with git worktrees |