[Wrapper] Expose row activation counts for energy accounting - #1
Open
YWHyuk wants to merge 1 commit into
Open
Conversation
Ramulator2 has no ACT command counter, so derive activations from the per-controller row stats: a row hit needs no ACT, while a miss (closed bank) and a conflict (other row open) each need one. Sum row_misses and row_conflicts over the memory system's collect_stats() tree, which keeps the derivation out of the controller sources. Refresh-driven activations are not included. Also widen the read/write transaction counters to 64-bit. They are int today and a long run overflows at about 2 billion transactions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Groundwork for the off-chip DRAM energy report in PyTorchSim (companion PR on PSAL-POSTECH/PyTorchSim). TOGSim needs a per-memory-system activation count to price row activations; nothing here changes simulation behaviour.
What
Ramulator2::row_activations()— Ramulator2 has no ACT command counter, so this derives activations from the per-controller row stats that already exist: a row hit needs no ACT, while a miss (closed bank) and a conflict (another row open) each need one. It walks the memory system'scollect_stats()tree and sumsrow_misses + row_conflicts, so the derivation stays out of the controller sources and no stat registration changes.inttouint64_t. They overflow at roughly 2 billion transactions, which a long run reaches.Caveats, documented in the header
Verification
On a 2048-cube matmul through TOGSim,
row_activations()summed over 16 channels returns 610657, which matches the sum ofrow_missesandrow_conflictsacross the 16 per-channel YAML stat dumps exactly.