Skip to content

DFX and Profiling

Every profiling / diagnostics reference lives in this directory. Start with the framework doc if you are adding a collector, or jump straight to the per-feature doc for the data you want.

Analysis CLIs that consume these outputs are documented in simpler_setup/tools/README.md.

Framework and conventions

Document What it covers
Profiling Framework Collector architecture, host/device split, how perf levels gate collection
Profiling / DFX Configuration Naming Rules Naming conventions every new DFX knob must follow
Profiling Name Map func_id → human-readable name mapping consumed by the trace tools
DFX Backpressure Per-lane block-on-contention across collectors
DFX Buffer Capacity Audit (a2a3) Per-buffer capacity accounting and overflow behavior

Timing and scheduling

Document What it covers
L2 Timing host_wall / device_wall / Effective / Orch / Sched breakdown from [STRACE]
Host runtime trace markers The [STRACE] marker set emitted by the host runtime, and simpler.trace for emitting your own
The host_build_graph bind phases What the bind segments are, the switches that expose them, and how to compare two branches on the qwen and dsv4 decode cases
Device-side phase timing Fixed AICPU phases and the variable-phase plan
Scheduler-Overhead Model Is the scheduler the bottleneck, or starved — the model behind --overhead

Per-task traces

Document What it covers
Chip Swimlane Profiling Per-task timing and scheduler phases across cores
Core Swimlane Profiling Intra-core AICore pipeline trace for a single task
PMU Profiling Per-task AICore hardware counters

Data and dependencies

Document What it covers
Args Dump Per-task argument capture, and replaying a task from it
dep_gen Complete per-submit dependency graph, tensor-annotated
Scope Stats Per-scope resource-usage peaks (ring fill, dep pool)
Document What it covers
Log System Log levels and sinks — the host/device logging path, distinct from profiling collectors
troubleshooting/ Device error codes and timeout defaults, for when a run fails rather than runs slowly