aris-system-profile

Profiles scripts, processes, GPUs, memory, and interconnects to produce structured performance reports.

1.1k|116|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/OpenLAIR/dr-claw --skill aris-system-profile
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: aris-system-profile
Source: https://github.com/OpenLAIR/dr-claw/tree/main/skills/aris-system-profile
Command: npx skills add https://github.com/OpenLAIR/dr-claw --skill aris-system-profile

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Identifying performance bottlenecks in training scripts, serving systems, and multi-GPU workloads requires juggling many profiling tools and manual instrumentation, which is slow and error-prone.

Core Features & Use Cases

  • Multi-target profiling: Profile Python scripts, running processes (PID), specific functions, or entire frameworks like vLLM serving end-to-end.
  • External tools plus code instrumentation: Combines cProfile, py-spy, torch.profiler, nsys, nvidia-smi, and NCCL debugging with custom instrumentation for CPU-GPU transfer bandwidth, memory redundancy, and collective latency.
  • Structured reports with changelog: Produces bottleneck tables ranked by impact plus a mandatory changelog of every instrumentation edit so changes can be reviewed and reverted.
  • Use Case: Ask to profile a slow training script and receive hotspot analysis, GPU utilization metrics, communication-to-computation ratios, and ranked optimization recommendations saved to ./profile_output/.

Quick Start

Profile train.py and identify the GPU and memory bottlenecks with actionable recommendations.

Frequently Asked Questions about aris-system-profile

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I profile a Python training script for GPU bottlenecks?

Run the script under torch.profiler or nsys to capture kernel-level GPU activity, and use nvidia-smi dmon for utilization sampling. Combine with cProfile or py-spy for CPU-side hotspots, then compare communication-to-computation ratios.

What tools measure CPU-GPU data transfer bandwidth?

Instrument the code with timing wrappers around tensor .to() or .cuda() calls to log transfer size, frequency, and achieved bandwidth. torch.profiler and nsys also expose memcpy operations between host and device.

Can I profile a running process by PID without restarting it?

Yes, py-spy attaches to a running Python process by PID for sampling-based CPU profiling without code changes. GPU activity of the process can be observed via nvidia-smi or nvitop concurrently.

How do I debug NCCL collective communication latency in multi-GPU training?

Set NCCL_DEBUG=INFO to log collective operations, and wrap NCCL calls to record operation type, message size, and latency. Check topology with nvidia-smi topo -m to see whether traffic uses NVLink or PCIe.

Does code instrumentation affect profiling accuracy?

Instrumentation adds observer overhead, so avoid instrumenting tight inner loops and prefer sampling or wrapping at coarser granularity. The skill marks all edits with profile comments and logs them in a changelog for clean removal afterward.