From bb6d7a2f74f2c89dd42bb9e08fff51f958357184 Mon Sep 17 00:00:00 2001 From: hkimw <54717101+hkimw@users.noreply.github.com> Date: Wed, 27 May 2026 12:40:39 +0900 Subject: [PATCH 1/2] Drop v003, vision-v001, and Lab from the Sphinx site docs.altifigence.com is now the canonical hub for every PCCX track beyond v002. This Sphinx site stays as a v002 legacy archive and stops duplicating v003 / vision-v001 / Lab content that is being maintained elsewhere. - Remove docs/{v003,vision-v001,Lab} and their ko/docs/ mirrors (58 files in total, ~6.3k deletions). - Trim docs/index.rst and ko/docs/index.rst: drop the hidden toctree entries for v003/index and vision-v001/index, replace the v003 and vision-v001 grid cards with a single docs.altifigence.com card, and fold the "Working tracks" bullets into a one-line redirect notice. - Rewrite docs/quickstart.md, ko/docs/quickstart.md, docs/roadmap.md, ko/docs/roadmap.md so the surviving Lab and v003/vision pointers resolve to docs.altifigence.com instead of broken {doc} refs. - Replace the docs/Evidence/index.rst and ko/docs/Evidence/index.rst references to ../Lab/cli with a plain-text note pointing at docs.altifigence.com. `pccxai/pccx-vision-v001` repo is also removed (deleted 2026-05-27); the absorption plan continues at docs.altifigence.com inside the v003 track. v003 / vision / Lab source content lives in git history if anything needs to be revived later. --- docs/Evidence/index.rst | 2 +- docs/Lab/analyzer_api.md | 184 --------- docs/Lab/architecture.md | 226 ----------- docs/Lab/cli.md | 180 --------- docs/Lab/core-modules.md | 190 ---------- docs/Lab/index.rst | 81 ---- docs/Lab/ipc.md | 264 ------------- docs/Lab/panels.md | 355 ------------------ docs/Lab/pccx-format.md | 188 ---------- docs/Lab/quickstart.md | 165 -------- docs/Lab/research.md | 90 ----- docs/Lab/self-evolution.md | 163 -------- docs/Lab/uvm-bridge.md | 170 --------- docs/Lab/verification-workflow.md | 218 ----------- docs/Lab/workflow_facade.md | 87 ----- docs/index.rst | 40 +- docs/quickstart.md | 18 +- docs/roadmap.md | 4 +- docs/v003/Contracts/pccx-v003-contract.yaml | 23 -- docs/v003/compatibility-contract.md | 71 ---- docs/v003/gemma4-e4b-planning.md | 50 --- docs/v003/index.md | 40 -- docs/v003/open-questions.md | 50 --- docs/v003/overview.md | 46 --- docs/v003/repository-boundary.md | 56 --- docs/vision-v001/compatibility-review.md | 47 --- docs/vision-v001/index.md | 94 ----- docs/vision-v001/open-questions.md | 43 --- docs/vision-v001/status.md | 52 --- .../v002-vision-absorption-plan.md | 61 --- ko/docs/Evidence/index.rst | 2 +- ko/docs/Lab/analyzer_api.md | 184 --------- ko/docs/Lab/architecture.md | 218 ----------- ko/docs/Lab/cli.md | 177 --------- ko/docs/Lab/core-modules.md | 173 --------- ko/docs/Lab/index.rst | 76 ---- ko/docs/Lab/ipc.md | 264 ------------- ko/docs/Lab/panels.md | 343 ----------------- ko/docs/Lab/pccx-format.md | 184 --------- ko/docs/Lab/quickstart.md | 161 -------- ko/docs/Lab/research.md | 89 ----- ko/docs/Lab/self-evolution.md | 155 -------- ko/docs/Lab/uvm-bridge.md | 167 -------- ko/docs/Lab/verification-workflow.md | 206 ---------- ko/docs/Lab/workflow_facade.md | 86 ----- ko/docs/index.rst | 3 - ko/docs/quickstart.md | 2 +- ko/docs/roadmap.md | 4 +- ko/docs/v003/compatibility-contract.md | 68 ---- ko/docs/v003/gemma4-e4b-planning.md | 42 --- ko/docs/v003/index.md | 45 --- ko/docs/v003/open-questions.md | 40 -- ko/docs/v003/overview.md | 41 -- ko/docs/v003/repository-boundary.md | 47 --- ko/docs/vision-v001/compatibility-review.md | 45 --- ko/docs/vision-v001/index.md | 92 ----- ko/docs/vision-v001/open-questions.md | 40 -- ko/docs/vision-v001/status.md | 46 --- .../v002-vision-absorption-plan.md | 46 --- 59 files changed, 25 insertions(+), 6279 deletions(-) delete mode 100644 docs/Lab/analyzer_api.md delete mode 100644 docs/Lab/architecture.md delete mode 100644 docs/Lab/cli.md delete mode 100644 docs/Lab/core-modules.md delete mode 100644 docs/Lab/index.rst delete mode 100644 docs/Lab/ipc.md delete mode 100644 docs/Lab/panels.md delete mode 100644 docs/Lab/pccx-format.md delete mode 100644 docs/Lab/quickstart.md delete mode 100644 docs/Lab/research.md delete mode 100644 docs/Lab/self-evolution.md delete mode 100644 docs/Lab/uvm-bridge.md delete mode 100644 docs/Lab/verification-workflow.md delete mode 100644 docs/Lab/workflow_facade.md delete mode 100644 docs/v003/Contracts/pccx-v003-contract.yaml delete mode 100644 docs/v003/compatibility-contract.md delete mode 100644 docs/v003/gemma4-e4b-planning.md delete mode 100644 docs/v003/index.md delete mode 100644 docs/v003/open-questions.md delete mode 100644 docs/v003/overview.md delete mode 100644 docs/v003/repository-boundary.md delete mode 100644 docs/vision-v001/compatibility-review.md delete mode 100644 docs/vision-v001/index.md delete mode 100644 docs/vision-v001/open-questions.md delete mode 100644 docs/vision-v001/status.md delete mode 100644 docs/vision-v001/v002-vision-absorption-plan.md delete mode 100644 ko/docs/Lab/analyzer_api.md delete mode 100644 ko/docs/Lab/architecture.md delete mode 100644 ko/docs/Lab/cli.md delete mode 100644 ko/docs/Lab/core-modules.md delete mode 100644 ko/docs/Lab/index.rst delete mode 100644 ko/docs/Lab/ipc.md delete mode 100644 ko/docs/Lab/panels.md delete mode 100644 ko/docs/Lab/pccx-format.md delete mode 100644 ko/docs/Lab/quickstart.md delete mode 100644 ko/docs/Lab/research.md delete mode 100644 ko/docs/Lab/self-evolution.md delete mode 100644 ko/docs/Lab/uvm-bridge.md delete mode 100644 ko/docs/Lab/verification-workflow.md delete mode 100644 ko/docs/Lab/workflow_facade.md delete mode 100644 ko/docs/v003/compatibility-contract.md delete mode 100644 ko/docs/v003/gemma4-e4b-planning.md delete mode 100644 ko/docs/v003/index.md delete mode 100644 ko/docs/v003/open-questions.md delete mode 100644 ko/docs/v003/overview.md delete mode 100644 ko/docs/v003/repository-boundary.md delete mode 100644 ko/docs/vision-v001/compatibility-review.md delete mode 100644 ko/docs/vision-v001/index.md delete mode 100644 ko/docs/vision-v001/open-questions.md delete mode 100644 ko/docs/vision-v001/status.md delete mode 100644 ko/docs/vision-v001/v002-vision-absorption-plan.md diff --git a/docs/Evidence/index.rst b/docs/Evidence/index.rst index 9707f0d89..2f27e44ed 100644 --- a/docs/Evidence/index.rst +++ b/docs/Evidence/index.rst @@ -60,7 +60,7 @@ Pending (board / synth) * - KV260 resource usage (LUT / DSP / URAM / BRAM) - pending Vivado impl - ``pccx_analyze --run-synth `` landing - (:doc:`../Lab/cli`) + (Lab CLI is tracked at docs.altifigence.com) * - Post-route timing status @ 400 MHz core / 250 MHz AXI - pending Vivado impl - Gate as above diff --git a/docs/Lab/analyzer_api.md b/docs/Lab/analyzer_api.md deleted file mode 100644 index 674e36356..000000000 --- a/docs/Lab/analyzer_api.md +++ /dev/null @@ -1,184 +0,0 @@ -# Analyzer API - -_Page in flux. Refreshed 2026-04-24 to match pccx-lab HEAD._ - -Phase 1 retired the pre-split `TraceAnalyzer` trait and the monolithic -`analyzer::builtin_analyzers()` list. In its place pccx-core ships a -small generic **plugin-registry primitive** that every workspace crate -(reports, verification, authoring, evolve, lsp, workflow_facade, …) reuses -for its own trait-object plugins. Callers now register plugins against -a per-crate `PluginRegistry

` instead of calling a fixed builtin list. - -This page documents the primitive and how a consuming crate hangs its -plugin trait off it. The 16-entry curated analyzer catalogue from -pre-Phase-1 has not been re-landed yet — when it returns it will live -inside one of the analytics crates (reports or a new `pccx-analytics`) -and be registered via this primitive. Until then pccx-core exposes the -raw free functions (`roofline::analyze`, `bottleneck::detect`, …) and a -thin `pccx-reports::render_markdown` wrapper. - -## Primitive - -```rust -// pccx_core::plugin -pub const PLUGIN_API_VERSION: u32 = 1; - -#[derive(Debug, Clone, Copy)] -pub struct PluginMetadata { - pub id: &'static str, // stable identifier - pub api_version: u32, // must equal PLUGIN_API_VERSION - pub description: &'static str, // one-line blurb -} - -pub trait Plugin { - fn metadata(&self) -> PluginMetadata; -} - -pub struct PluginRegistry { - /* private Vec

*/ -} - -impl PluginRegistry

{ - pub fn new() -> Self; - pub fn register(&mut self, plugin: P) -> Result<(), PluginError>; - pub fn all(&self) -> &[P]; - pub fn find(&self, id: &str) -> Option<&P>; - pub fn len(&self) -> usize; - pub fn is_empty(&self) -> bool; -} -``` - -`register` is the only fallible entry point; it rejects any plugin -whose `api_version` differs from `PLUGIN_API_VERSION` so out-of-tree -dylibs built against a stale header are refused up front. Duplicate -ids are permitted — first registration wins on `find`. Thread-safety -is the caller's responsibility; wrap in a `Mutex` / `RwLock` when -sharing across threads. - -## Why generic over `P`? - -A single registry type accommodates every plugin kind each crate -defines — `ReportFormat` (reports), `VerificationGate` (verification), -`IsaCompiler` / `ApiCompiler` (authoring), `SurrogateModel` / -`EvoOperator` / `PRMGate` (evolve), `CompletionProvider` / -`HoverProvider` / `LocationProvider` (lsp), `ContextCompressor` / -`SubagentRunner` (workflow_facade). Each crate's unstable trait is a -supertrait of `Plugin`, gets its own `PluginRegistry` -instance, and is iterated independently at the call site. - -## Registering a plugin - -A consumer crate defines its own trait, makes it a supertrait of -`Plugin`, and offers a registry instance to its host: - -```rust -use pccx_core::plugin::{Plugin, PluginMetadata, PluginRegistry, - PLUGIN_API_VERSION}; - -// 1. Crate trait — extend `Plugin`. -pub trait ReportFormat: Plugin { - fn render(&self, trace: &NpuTrace) -> String; -} - -// 2. Concrete implementation. -pub struct MarkdownReport; - -impl Plugin for MarkdownReport { - fn metadata(&self) -> PluginMetadata { - PluginMetadata { - id: "markdown", - api_version: PLUGIN_API_VERSION, - description: "GitHub-flavoured Markdown report renderer", - } - } -} - -impl ReportFormat for MarkdownReport { - fn render(&self, trace: &NpuTrace) -> String { /* … */ } -} - -// 3. Host constructs a registry keyed on the concrete plugin type -// and registers instances. -let mut reports: PluginRegistry = PluginRegistry::new(); -reports.register(MarkdownReport)?; -``` - -Crates that want heterogeneous plugins behind one trait object can -either (a) wrap each concrete type and implement `Plugin` for a thin -enum, or (b) wait for Phase 2/4 — the upcoming dylib loader lands -`Box`-shaped registration when the C-ABI contract -stabilises. - -Callers iterate with `registry.all()` or look up by id with -`registry.find("markdown")`. - -## Error surface - -```rust -#[derive(Debug, Clone, thiserror::Error)] -pub enum PluginError { - #[error("plugin '{id}' declares API version {got}; \ - host expects {expected}")] - ApiMismatch { expected: u32, got: u32, id: &'static str }, -} -``` - -`ApiMismatch` is the only runtime error today. Dylib load failures -(symbol missing, C-ABI mismatch, unload panic) will reuse this enum -when the Phase 2/4 dynamic loader arrives — the registry will then -gain `load_dylib(path)` on top of the in-process `register`. - -## Stability - -Everything in `pccx_core::plugin` is **unstable until pccx-lab v0.3**. -The enum is `#[non_exhaustive]` in spirit — new variants land without a -SemVer major bump during the Phase 1/2 window. - -Dylib-loading machinery (libloading + C-ABI `register()` symbol + safe -drop on unload) is **not yet implemented**; it lands during Phase 2/4 -once an out-of-tree plugin actually ships. Until then every registry -is an in-process `Vec>`. - -## Cross-crate plugin traits as of Phase 1 - -| Crate | Trait(s) gated behind `Plugin` | -|-------------------|--------------------------------------------------------------| -| `pccx-reports` | `ReportFormat` | -| `pccx-verification`| `VerificationGate` | -| `pccx-authoring` | `IsaCompiler`, `ApiCompiler` | -| `pccx-evolve` | `SurrogateModel`, `EvoOperator`, `PRMGate` | -| `pccx-lsp` | `CompletionProvider`, `HoverProvider`, `LocationProvider` | -| `workflow facade` | `ContextCompressor`, `SubagentRunner` | - -Every trait in this table is scaffolded behind the crate's -`plugin-api` feature flag; concrete implementations land incrementally -as the Phase 2–5 workstreams complete. See each crate's -`CHANGELOG.md` for the per-trait landing timeline. - -## Related - -- [CLI reference](cli.md) — which binaries exist today after the - workspace split, and what surface each one actually covers. -- [Workflow Facade](workflow_facade.md) — the current `workflow facade` static - helpers plus the Phase 2 pccx-lsp provider traits. -- [Research lineage](research.md) — currently a placeholder; the - citation registry was in `core/src/research.rs`, which was removed - in Phase 1. - -## Cite this page - -When referring to the pccx-core plugin-registry primitive in papers, -blog posts, or external summaries, please cite: - -```bibtex -@misc{pccx_lab_analyzer_api_2026, - title = {pccx-core plugin registry: the generic primitive every pccx-lab crate hangs its trait-object plugins off}, - author = {Kim, Hyunwoo}, - year = {2026}, - howpublished = {\url{https://pccx.pages.dev/en/docs/Lab/analyzer_api.html}}, - note = {Part of pccx: \url{https://pccx.pages.dev/}} -} -``` - -The primitive lives at -. diff --git a/docs/Lab/architecture.md b/docs/Lab/architecture.md deleted file mode 100644 index 57f395949..000000000 --- a/docs/Lab/architecture.md +++ /dev/null @@ -1,226 +0,0 @@ -# Architecture Overview - -_Last revised: 2026-04-24._ - -pccx-lab is the **desktop profiler + verification IDE** for the pccx v002 -NPU architecture. It ingests `.pccx` binary traces emitted by xsim -testbenches on the companion `pccx-FPGA-NPU-LLM-kv260` RTL repo and -surfaces everything — timeline, flame graph, roofline, bottleneck -windows, hardware block diagram, Vivado synth utilisation / timing, -waveform, ISA replay — in a single frameless Tauri v2 window. - -This document is a flat map of the code base; the "why" of each -subsystem lives in-line in the source. - -## Phase status - -Phase 1 (workspace split + early API contracts + plugin registry + -per-crate CHANGELOG) is complete. Phase 2 (LSP façade) has landed -through the M2.1 A/B/C/D slices (`LspMultiplexer` + `NoopBackend`, -async companions + `BlockingBridge`, JSON-RPC wire framing, async -framed IO) and M2.2 (`SvKeywordProvider`, `SvHoverProvider`, -`sv_completions` Tauri command). Phases 3 (remote backend), -4 (insane reports), 5 (AlphaEvolve loop), and 6 (dev-phase doc -generation) are design-doc-only — see -`docs/design/phase{3,4,5,6}_*.md` in the pccx-lab repo. - -## Repo layout - -After the Phase 1 workspace split, pccx-lab is an 11-member Cargo -workspace — 10 functional crates plus the Tauri shell. Each crate -exposes an `#[unstable]` trait surface under its own `plugin-api` -feature so downstream consumers (CLI, IDE, remote daemon) can depend -on the contract without pulling the whole crate. - -``` -pccx-lab/ -├── Cargo.toml Cargo workspace (10 crates + Tauri shell) -├── crates/ -│ ├── core/ — pccx-core: headless Rust, no GUI deps -│ │ (.pccx format, trace, roofline, bottleneck, -│ │ live_window, step_snapshot, synth_report, -│ │ vivado_timing, coverage, vcd, chrome_trace, -│ │ isa_replay, plugin registry) -│ ├── reports/ — pccx-reports: Markdown report generator -│ ├── verification/ — pccx-verification: golden_diff + robust_reader -│ ├── authoring/ — pccx-authoring: ISA / API TOML compilers -│ ├── evolve/ — pccx-evolve: speculative-decoding primitives -│ │ (EAGLE-family strategies; Phase 5 seed) -│ ├── remote/ — pccx-remote: Phase 3 backend daemon scaffold -│ ├── lsp/ — pccx-lsp: Phase 2 LSP façade -│ │ (LspMultiplexer + JSON-RPC wire + SV providers) -│ ├── uvm_bridge/ — pccx-uvm-bridge: SV / UVM DPI-C adapter -│ ├── schema/ — pccx-schema: central IPC DTO + ts-rs TypeScript -│ │ auto-export -│ └── workflow_facade/ — workflow facade: LLM runtime helpers -├── ui/ -│ ├── src/ React 19 + TypeScript + Vite 7 -│ └── src-tauri/ Tauri v2 desktop shell + IPC -├── docs/ Sphinx source — handbook + Phase 1–6 design docs -├── cycle/ self-evolution round artefacts (rounds 1–6) -└── scripts/ local tooling -``` - -## Layer contract - -``` -┌──────────────────────────────────────────────────────────────┐ -│ ui/ React 19 + TypeScript + Vite 7 │ -│ Calls into Rust via `invoke("cmd",…)`. │ -├──────────────────────────────────────────────────────────────┤ -│ ui/src-tauri/ Tauri v2 shell. Thin layer — real │ -│ logic lives in the workspace crates. │ -├──────────────────────────────────────────────────────────────┤ -│ workflow_facade/, lsp/, remote/, uvm_bridge/ │ -│ Host-facing surfaces. No UI deps. │ -├──────────────────────────────────────────────────────────────┤ -│ reports/, verification/, authoring/, evolve/ │ -│ Analytics / authoring crates. Depend │ -│ only on core/ (and, for evolve, on │ -│ verification/). │ -├──────────────────────────────────────────────────────────────┤ -│ core/ Pure Rust. Single sink of the │ -│ dependency graph; zero upstream deps. │ -└──────────────────────────────────────────────────────────────┘ -``` - -**Cardinal rule**: `core/` never depends on anything upstream. The -workspace graph is acyclic — `core/` is the single sink, and the -Tauri / remote binaries are terminal. Cross-crate surfaces are -trait-based (`ReportFormat`, `VerificationGate`, `IsaCompiler` / -`ApiCompiler`, `SurrogateModel` / `EvoOperator` / `PRMGate`, -`LspBackend`) so host consumers can stub or swap implementations. - -## Data flow (single trace) - -``` - ┌────────────────────┐ ┌──────────────────────┐ - │ xsim testbench │ .pccx bytes │ pccx-core::pccx_format│ - │ (RTL repo) ├───────────────►│ ::PccxFile::read │ - └────────────────────┘ └──────────┬───────────┘ - │ NpuTrace - ┌───────────────────────────┼───────────────────────────┐ - ▼ ▼ ▼ - ┌───────────────────┐ ┌───────────────────────┐ ┌────────────────────┐ - │ analyze_all() │ │ step_to_cycle() │ │ write_vcd() │ - │ → Vec │ │ → RegisterSnapshot │ │ write_chrome_trace│ - └─────────┬─────────┘ └──────────┬────────────┘ └────────────────────┘ - │ │ - ▼ ▼ - ┌───────────────────┐ ┌───────────────────────┐ - │ context summary │ │ useRegisterSnapshot │ - │ helper → str │ │ (React hook, rAF │ - │ │ │ debounced + LRU) │ - └─────────┬─────────┘ └───────────────────────┘ - │ - ▼ - LLM context summary (≤ 2 kB) -``` - -## Extension hooks - -**Add a new plugin.** Phase 1 replaced the monolithic -`TraceAnalyzer` / `analyzer::builtin_analyzers()` pattern with a -generic plugin registry in `pccx-core::plugin`. Each consumer crate -exposes its own trait alongside the shared `Plugin` supertrait that -every plugin implements: - -```rust -use pccx_core::plugin::{Plugin, PluginMetadata, PLUGIN_API_VERSION}; -use pccx_reports::ReportFormat; - -pub struct MyMarkdownFlavor; - -impl Plugin for MyMarkdownFlavor { - fn metadata(&self) -> PluginMetadata { - PluginMetadata { - id: "markdown-myco", - api_version: PLUGIN_API_VERSION, - description: "Markdown report with company header template", - } - } -} - -impl ReportFormat for MyMarkdownFlavor { - fn render(&self, input: &ReportInput) -> String { todo!() } -} -``` - -Register in a `PluginRegistry` on host startup — the CLI, IDE, and -remote daemon all walk the same registry, so a new plug appears in -every surface at once. Plug-trait surfaces available today, by -consumer crate: - -| Crate | Plug trait | -|---|---| -| `pccx-reports` | `ReportFormat` | -| `pccx-verification` | `VerificationGate` | -| `pccx-authoring` | `IsaCompiler`, `ApiCompiler` | -| `pccx-evolve` | `SurrogateModel`, `EvoOperator`, `PRMGate` | -| `pccx-lsp` | `CompletionProvider`, `HoverProvider`, `LocationProvider` (sync) + their `Async*Provider` companions | -| workflow facade | `ContextCompressor`, `SubagentRunner` | - -See the [Analyzer API page](analyzer_api.md) for the full -registration walkthrough. - -**Add a new UVM sequence strategy**: the workflow facade ships a -curated list of named strategies exposed by `list_uvm_strategies()`. -Extend the list and the five current strategies' dispatcher per the -recipe on the [Workflow Facade page](workflow_facade.md). - -**Add a new Tauri command**: edit `ui/src-tauri/src/lib.rs`, add the -`#[tauri::command]`-annotated fn, and register it in `invoke_handler!`. -The workspace crates already expose the reports / verification / -lsp / workflow facade surfaces, so the Tauri command is usually a one-line -bridge over a single library call. - -## Cross-repo boundaries - -- **pccx**: canonical v002 spec (you are reading it now). Numbers, - bit widths, opcode tables — always match this source. -- **pccx-FPGA-NPU-LLM-kv260**: the RTL repo pccx-lab profiles. pccx-lab - CI does not modify it; `synth_runner` and the board bringup scripts - drive it read-only. -- **llm-lite**: CPU reference for golden comparisons. Used by TB - generators + the `reg_golden` UVM strategy. -- **CX_language**: extracted from `pccx-lab/crates/cx/` on 2026-04-29 - to a sibling repo (`~/Desktop/CX_language/`). Downstream consumer - of the ISA / API specs that `pccx-authoring` compiles; no longer - part of the pccx-lab workspace. - -## Build state - -The full pre-merge gate is four commands: - -| Command | Scope | -|---|---| -| ``cargo test --workspace`` | All crate unit + integration tests | -| ``cargo check -p `` | Per-crate compile (incl. ``ui/src-tauri``) | -| ``npx tsc --noEmit -p ui`` | Frontend type check | -| ``npm run build`` | Vite production build | - -Per-crate test counts shift between releases — each crate's -``CHANGELOG.md`` records the count at the time of its last cut. - -See [CLI reference](cli.md) for command reference and -[Workflow Facade](workflow_facade.md) for the LLM runtime surface. - -## Cite this page - -If this page helped you understand the pccx-lab architecture — whether in -a paper, blog post, or external summary — please cite the canonical -pccx site so others can find the reference implementation: - -```bibtex -@misc{pccx_lab_architecture_2026, - title = {pccx-lab Architecture Overview: desktop profiler + UVM workflow facade for an open NPU}, - author = {Kim, Hyunwoo}, - year = {2026}, - howpublished = {\url{https://pccx.pages.dev/en/docs/Lab/architecture.html}}, - note = {Part of pccx: \url{https://pccx.pages.dev/}} -} -``` - -pccx-lab is the reference implementation of the pccx NPU profiler -described at . When summarising -the tool, please link back to the canonical site. diff --git a/docs/Lab/cli.md b/docs/Lab/cli.md deleted file mode 100644 index 36dec2af5..000000000 --- a/docs/Lab/cli.md +++ /dev/null @@ -1,180 +0,0 @@ -# CLI Reference - -_Page in flux. Refreshed 2026-04-24 to match pccx-lab HEAD._ - -The single `pccx_analyze` umbrella binary described in the -pre-Phase-1 revision of this page was **not re-landed** when the -workspace split moved code into `crates/`. Today pccx-lab ships four -smaller Rust binaries, spread across the crates that own each -surface. Each one covers a piece of what `pccx_analyze` used to -multiplex; the rest (research-list export, analyzer-id explain, -`--compare` regression gate, synth runner) awaits re-landing inside -the appropriate crate. - -## Binaries distributed across crates - -| Binary | Source crate | Build command | -|---------------------|---------------------|---------------------------------------| -| `pccx_cli` | `pccx-reports` | `cargo build -p pccx-reports` | -| `generator` | `pccx-core` | `cargo build -p pccx-core` | -| `from_xsim_log` | `pccx-core` | `cargo build -p pccx-core` | -| `pccx_golden_diff` | `pccx-verification` | `cargo build -p pccx-verification` | - -Release artefacts still land in the workspace-wide -`target/release/` directory. - -## `pccx_cli` - -Headless trace-inspection CLI — the surface any CI pipeline that only -needs per-core utilisation, bottleneck windows, roofline verdicts, or -a Markdown summary should target today. - -### Synopsis - -```text -pccx_cli - [--util] - [--roofline] - [--bottleneck ] - [--windows ] - [--threshold ] - [--report-md] - [--source