# kinsingo/ai-microbmt architecture

> Architecture diagram of the GitHub repository kinsingo/ai-microbmt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kinsingo/ai-microbmt
- Repository: https://github.com/kinsingo/ai-microbmt

## Overview

AI-MicroBMT is a benchmark-reproduction toolkit: it converts AI-BMT exports into organized result CSVs, computes Unified Deployment Scores and use-case rankings, and analyzes benchmark variants to produce figures, summaries, and LaTeX tables. Its accelerator-specific scripts are reference implementations for collecting device benchmarks, not part of the Python analysis runtime. The README documents the main workflow; source-index references confirm the analysis scripts use shared utilities and configuration. Some individual analysis and accelerator implementation details were not sampled.

Main entry points: [`mobilenet variant`](https://github.com/kinsingo/ai-microbmt/tree/main/mobilenet%20variant) (Variant result CSVs), [`analysis_charts`](https://github.com/kinsingo/ai-microbmt/tree/main/analysis_charts) (Charts and tables), [`analyze_results_singleStream_offline.py`](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_singleStream_offline.py) (Scenario comparison), [`analyze_activation_sweep.py`](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_activation_sweep.py) (Activation sweep)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collection["Benchmark Collection"]
  node_raw["Exported benchmark CSV"]
  node_converter["CSV converter"]
  node_variant_data["Variant result CSVs"]
end

subgraph group_scoring["UDS Scoring"]
  node_score_calc["UDS sub-scores"]
  node_rankings["Weighted rankings<br/>[2. UDS cases.py]"]
end

subgraph group_analysis["Analysis"]
  node_analysis_config["Analysis settings<br/>[analysis_config.py]"]
  node_shared_utils["Data utilities<br/>[utils.py]"]
  node_throughput_analysis["Scenario comparison"]
  node_activation_analysis["Activation sweep"]
  node_resolution_latency["Resolution latency"]
  node_resolution_throughput["Resolution throughput"]
  node_case_analysis["Case analysis"]
  node_outputs["Charts and tables"]
end

subgraph group_accelerators["Accelerator References"]
  node_accelerator_refs["Device evaluation scripts"]
end

node_user(("Benchmark operator"))
node_aibmt["AI-BMT application"]

node_user -->|"runs benchmarks"| node_aibmt
node_aibmt -->|"exports results"| node_raw
node_user -->|"runs conversion"| node_converter
node_raw -->|"reads"| node_converter
node_converter -->|"writes variants"| node_variant_data
node_variant_data -->|"scores data"| node_score_calc
node_score_calc -->|"provides sub-scores"| node_rankings
node_variant_data -->|"analyzes results"| node_throughput_analysis
node_variant_data -->|"analyzes variants"| node_activation_analysis
node_variant_data -->|"analyzes sweep"| node_resolution_latency
node_variant_data -->|"analyzes sweep"| node_resolution_throughput
node_rankings -.->|"classifies cases"| node_case_analysis
node_throughput_analysis -->|"generates charts"| node_outputs
node_activation_analysis -->|"generates charts"| node_outputs
node_resolution_latency -->|"generates charts"| node_outputs
node_resolution_throughput -->|"generates charts"| node_outputs
node_case_analysis -->|"writes tables"| node_outputs
node_throughput_analysis -->|"imports"| node_shared_utils
node_throughput_analysis -->|"imports"| node_analysis_config
node_activation_analysis -->|"imports"| node_shared_utils
node_activation_analysis -->|"imports"| node_analysis_config
node_resolution_latency -->|"imports"| node_shared_utils
node_resolution_latency -->|"imports"| node_analysis_config
node_resolution_throughput -->|"imports"| node_shared_utils
node_resolution_throughput -->|"imports"| node_analysis_config
node_user -->|"uses as reference"| node_accelerator_refs

click node_raw "https://github.com/kinsingo/ai-microbmt/tree/main/mobilenet%20variant"
click node_converter "https://github.com/kinsingo/ai-microbmt/blob/main/convert_and_evaluate.py"
click node_variant_data "https://github.com/kinsingo/ai-microbmt/tree/main/mobilenet%20variant"
click node_score_calc "https://github.com/kinsingo/ai-microbmt/blob/main/1.%20Create%20UDS%20Scores.py"
click node_rankings "https://github.com/kinsingo/ai-microbmt/blob/main/2.%20UDS%20cases.py"
click node_analysis_config "https://github.com/kinsingo/ai-microbmt/blob/main/analysis_config.py"
click node_shared_utils "https://github.com/kinsingo/ai-microbmt/blob/main/utils.py"
click node_throughput_analysis "https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_singleStream_offline.py"
click node_activation_analysis "https://github.com/kinsingo/ai-microbmt/blob/main/analyze_activation_sweep.py"
click node_resolution_latency "https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_input_resolution_singleStream.py"
click node_resolution_throughput "https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_input_resolution_offline.py"
click node_case_analysis "https://github.com/kinsingo/ai-microbmt/blob/main/generate_cases_analysis.py"
click node_outputs "https://github.com/kinsingo/ai-microbmt/tree/main/analysis_charts"
click node_accelerator_refs "https://github.com/kinsingo/ai-microbmt/tree/main/accelerator_AIBMT_evalution_scripts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_raw,node_converter,node_variant_data toneBlue
class node_score_calc,node_rankings toneAmber
class node_analysis_config,node_shared_utils,node_throughput_analysis,node_activation_analysis,node_resolution_latency,node_resolution_throughput,node_case_analysis,node_outputs toneMint
class node_accelerator_refs toneRose
class node_user,node_aibmt toneIndigo
```

## Components

### Benchmark Collection

- [Exported benchmark CSV](https://github.com/kinsingo/ai-microbmt/tree/main/mobilenet%20variant): `mobilenet variant`
- [CSV converter](https://github.com/kinsingo/ai-microbmt/blob/main/convert_and_evaluate.py): `convert_and_evaluate.py`
- [Variant result CSVs](https://github.com/kinsingo/ai-microbmt/tree/main/mobilenet%20variant): `mobilenet variant`

### UDS Scoring

- [UDS sub-scores](https://github.com/kinsingo/ai-microbmt/blob/main/1.%20Create%20UDS%20Scores.py): `1. Create UDS Scores.py`
- [Weighted rankings](https://github.com/kinsingo/ai-microbmt/blob/main/2.%20UDS%20cases.py): `2. UDS cases.py`

### Analysis

- [Analysis settings](https://github.com/kinsingo/ai-microbmt/blob/main/analysis_config.py): `analysis_config.py`
- [Data utilities](https://github.com/kinsingo/ai-microbmt/blob/main/utils.py): `utils.py`
- [Scenario comparison](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_singleStream_offline.py): `analyze_results_singleStream_offline.py`
- [Activation sweep](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_activation_sweep.py): `analyze_activation_sweep.py`
- [Resolution latency](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_input_resolution_singleStream.py): `analyze_results_input_resolution_singleStream.py`
- [Resolution throughput](https://github.com/kinsingo/ai-microbmt/blob/main/analyze_results_input_resolution_offline.py): `analyze_results_input_resolution_offline.py`
- [Case analysis](https://github.com/kinsingo/ai-microbmt/blob/main/generate_cases_analysis.py): `generate_cases_analysis.py`
- [Charts and tables](https://github.com/kinsingo/ai-microbmt/tree/main/analysis_charts): `analysis_charts`

### Accelerator References

- [Device evaluation scripts](https://github.com/kinsingo/ai-microbmt/tree/main/accelerator_AIBMT_evalution_scripts): `accelerator_AIBMT_evalution_scripts`

### Other components

- **Benchmark operator**
- **AI-BMT application**

## Connections

- Benchmark operator → AI-BMT application: runs benchmarks (evidence: `README.md`)
- AI-BMT application → Exported benchmark CSV: exports results (evidence: `README.md`)
- Benchmark operator → CSV converter: runs conversion (evidence: `README.md`)
- Exported benchmark CSV → CSV converter: reads (evidence: `README.md`)
- CSV converter → Variant result CSVs: writes variants (evidence: `README.md`)
- Variant result CSVs → UDS sub-scores: scores data (evidence: `README.md`)
- UDS sub-scores → Weighted rankings: provides sub-scores (evidence: `README.md`)
- Variant result CSVs → Scenario comparison: analyzes results (evidence: `README.md`)
- Variant result CSVs → Activation sweep: analyzes variants (evidence: `README.md`)
- Variant result CSVs → Resolution latency: analyzes sweep (evidence: `README.md`)
- Variant result CSVs → Resolution throughput: analyzes sweep (evidence: `README.md`)
- Weighted rankings → Case analysis: classifies cases
- Scenario comparison → Charts and tables: generates charts (evidence: `README.md`)
- Activation sweep → Charts and tables: generates charts (evidence: `README.md`)
- Resolution latency → Charts and tables: generates charts (evidence: `README.md`)
- Resolution throughput → Charts and tables: generates charts (evidence: `README.md`)
- Case analysis → Charts and tables: writes tables (evidence: `README.md`)
- Scenario comparison → Data utilities: imports (evidence: `analyze_results_singleStream_offline.py`)
- Scenario comparison → Analysis settings: imports (evidence: `analyze_results_singleStream_offline.py`)
- Activation sweep → Data utilities: imports (evidence: `analyze_activation_sweep.py`)
- Activation sweep → Analysis settings: imports (evidence: `analyze_activation_sweep.py`)
- Resolution latency → Data utilities: imports (evidence: `analyze_results_input_resolution_singleStream.py`)
- Resolution latency → Analysis settings: imports (evidence: `analyze_results_input_resolution_singleStream.py`)
- Resolution throughput → Data utilities: imports (evidence: `analyze_results_input_resolution_offline.py`)
- Resolution throughput → Analysis settings: imports (evidence: `analyze_results_input_resolution_offline.py`)
- Benchmark operator → Device evaluation scripts: uses as reference (evidence: `README.md`)
