Template Function sequant::eval::dryrun::assemble_report¶
Defined in File meter.hpp
Function Documentation¶
-
template<class Cache, class Forest, class IsVolatile>
MeterReport sequant::eval::dryrun::assemble_report(Cache const &cache, PeakMonitor const &mon, RichSchedule const &rich, Forest const &forest, IsVolatile const &is_volatile, BatchScheduler scheduler)¶ Assemble a
MeterReportfrom a metered replay: a walkedcache(itsrecompute_tally()populated byCacheManager:: tally_build over the replay), the hierarchy-widemon(PeakMonitor), therichlinearized schedule (compute_dag_boulevardover the sameforest, supplying each value’s home/use dag-scope), andis_volatile(fed tocompute_volatilityto classify each distinct value).Per distinct value (one
cache.recompute_tally()entry):buildsis the sum, over its slices, of each slice’s build count;node_flops/node_execare the sum, over its slices, of build-count times that slice’s actual (flops, exec). The value is classified persistent/volatile bycompute_volatility'sverdict for its hash and folded into the matchingMeterReport::flops_*/cost_*accumulator. ItsHomeFidelityentry’shome/usesare read off therichcell sharing its hash (empty if the value has no matching cell, e.g. a leaf never realized as its own distinct product build).- Parameters:
cache – the (root) cache whose
recompute_tally()was populated by aTrace::Onmetered replay.mon – the
PeakMonitorwired ontocache'sscope chain during the replay.rich – the linearized schedule (
compute_dag_boulevard) over the same forest the replay walked.forest – the evaluation forest (fed to
compute_volatility).is_volatile –
bool(TreeNode const&): intrinsic volatility predicate, as forcompute_volatility.scheduler – which executor this report describes (stashed verbatim into
MeterReport::scheduler).
- Returns:
the assembled
MeterReport.