Changelog¶
0.3.0 (proposed, unreleased)¶
These changes require development builds. They are not in the 0.2.0 package. Version 0.3.0 is the proposed next release, not a published package.
Added¶
- Native GELU, SiLU, GLU, and optional RMSNorm module/operator estimates; GroupNorm MAC/DMA estimates and native Transformer GELU FLOPs. Functional gating and scalar squares retain per-analysis coverage and diagnostics.
measure_workload: one-call selected resource measurements, readable ms/work-units per second/MiB output, optional separate profiler evidence, and explicit fresh-process RSS (#176).- Checked workload comparisons with
compare_benchmarksand offline HTML timing/memory/profile reports. - Reusable, no-download ResNet18 and small BERT performance experiments with an output check and explicit resource boundaries (#175; CPU evidence, CUDA/MPS unavailable).
- Per-child Linux/macOS peak RSS and separate native operator profiles with optional Chrome traces.
- Workload timing with
measure_latency: first-call time, warmed block-average latency/IQR, explicit work-unit throughput, CPU/CUDA/MPS synchronization, and JSON-serializable hardware/input metadata. - Scoped arithmetic, normalization, and attention FLOP formulas, plus GroupNorm. Independent formula checks and model tests that do not download weights (#165).
- Offline HTML and SVG module cost reports with
render_report(#166). - Per-analysis custom module handlers with complete call context, independent metric estimates, and explicit subtree ownership (#167).
custom_mappingoperator overrides oncrawl_moduleandsummary, separate from module estimates (#167).- Native Transformer MACs, logical DMAs, and module-local token dependencies. Spatial receptive-field scalars remain unavailable on token modules (#168).
Changed¶
- Start documentation with model cost, workload resource use, checked optimization, and saved report consumption.
- Clarify installation tracks, compatibility checks, and the relationship between model summaries and workload reports.
- Correct convolution, linear, pooling, normalization, and attention counts. Keep incomplete counts and diagnostics visible (#165).
- Count composite operators such as
aten.linearundertorch.inference_mode()instead of reportingpartialFLOPs.
v0.2.0 (2026-10-03)¶
Release note: v0.2.0
Version 0.2 is a clean contract break focused on truthful, machine-readable analysis.
Added¶
- Versioned
AnalysisReport,MetricResult, andDiagnosticcontracts with complete, partial, and unavailable states. - Stable full module paths and per-path call indexes.
- Complete
argsandkwargsforwarding, including nested containers and non-tensor leaves. strict=TrueandIncompleteAnalysisErrorfor automation that rejects incomplete metrics.- PyTorch-native operator FLOPs through
measure_flops, with per-call custom formulas and uncounted-op diagnostics. - Pure
compare_reportsbefore/after comparison. - Explicit workload peak-memory measurement through
measure_peak_memory(#149). - Opt-in
mode="structure"for inexpensive shapes, call metadata, parameters, and buffers. - Structured crawler output (#143), a
Trainablesummary column (#144), caller-provided tensors (#145), native Transformer FLOP formulas (#146), and raw structured compute totals (#148) during the v0.2 development cycle.
Changed¶
- Require Python 3.11+ and PyTorch 2.1+.
- Run model crawling under evaluation mode with gradients disabled, then restore every original module training flag.
- Make crawler bookkeeping linear in layer-call count and cache forward signatures per module (#147, #152).
- Separate module-formula metrics from operator-dispatch FLOPs.
- Compute module estimates in post-hooks and release activations during the forward pass.
- Share forward signatures across identical implementations and avoid binding fully supplied positional inputs.
- Generate integer/boolean inputs without an FP32 temporary and normalize operator names once per distinct packet.
- Cache installed package-version metadata across scans.
- Modernize packaging, CI, and MkDocs Material documentation.
Removed¶
input_data; useargsandkwargs.get_process_gpu_ram, reportoverheads, and automatic accelerator cache clearing.- The unversioned legacy crawler report.
See the v0.2 migration guide for code changes and trust semantics.
v0.1.2 (2022-08-03)¶
Release note: v0.1.2
v0.1.1 (2020-08-04)¶
Release note: v0.1.1
v0.1.0 (2020-05-21)¶
Release note: v0.1.0