NVlabs/timeloop

Problem in parsing DRAM energy

AsicDyc opened this issue · 0 comments

Hi,

Thank you for providing such a useful tool. I was confused about the output about DRAM energy in timeloop-mapper.stats.txt when using timeloop to analyze a three-level storage hierarchy (DRAM, Global Buffer and register file).

The energy for DRAM updates, writes, and reads listed in the ERT is 512, and the DRAM vector access energy listed in the SPECS section in timeloop-mapper.stats.txt is also 512. However, the per-scalar-access energy for DRAM used in the calculations in the STATS section of the output file is 64. Why are these three energy values inconsistent? The type of DRAM is LPDDR4.

Here is ERT for DRAM:

        actions:
          - name: update
            arguments:
                global_cycle_seconds: 1e-09
                action_latency_cycles: 1
            energy: 512.0
          - name: write
            arguments:
                global_cycle_seconds: 1e-09
                action_latency_cycles: 1
            energy: 512.0
          - name: leak
            arguments:
                global_cycle_seconds: 1e-09
                action_latency_cycles: 1
            energy: 0.0
          - name: read
            arguments:
                global_cycle_seconds: 1e-09
                action_latency_cycles: 1
            energy: 512.0

Here is SPEC part and STATS part in timeloop-mapper.stats.txt

SPECS
    -----
        Technology                      : DRAM
        Size                            : -
        Word bits                       : 8
        Block size                      : 8
        Cluster size                    : 1
        Instances                       : 1 (1*1)
        Shared bandwidth                : -
        Read bandwidth                  : 8589935000.00
        Write bandwidth                 : 8589935000.00
        Multiple buffering              : 1.00
        Effective size                  : -
        Min utilization                 : 0.00
        Vector access energy            : 512.00 pJ
        Vector access energy source     : ERT
        Per-instance-cycle leakage      : 0.00 pJ
        Instances sharing power gating  : 1.00
        Non-power-gated utilization     : 100.00%
        Leakage energy (total)          : 0.00 pJ
        Area                            : 0.00 um^2
Weights:
        Partition size                           : 1536
        Utilized capacity                        : 1536
        Utilized instances (max)                 : 1
        Utilized clusters (max)                  : 1
        Scalar reads (per-instance)              : 98304
        Scalar fills (per-instance)              : 0
        Scalar updates (per-instance)            : 0
        Temporal reductions (per-instance)       : 0
        Address generations (per-cluster)        : 98304
        Energy (per-scalar-access)               : 64.00 pJ
        Energy (per-instance)                    : 6291456.00 pJ
        Energy (total)                           : 6291456.00 pJ
        Temporal Reduction Energy (per-instance) : 0.00 pJ
        Temporal Reduction Energy (total)        : 0.00 pJ
        Address Generation Energy (per-cluster)  : 0.00 pJ
        Address Generation Energy (total)        : 0.00 pJ
        Bandwidth Consumption Scale              : 1.00
        Shared Bandwidth (per-instance)          : 1.00 words/cycle
        Shared Bandwidth (total)                 : 1.00 words/cycle
        Read Bandwidth (per-instance)            : 1.00 words/cycle
        Read Bandwidth (total)                   : 1.00 words/cycle
        Write Bandwidth (per-instance)           : 0.00 words/cycle
        Write Bandwidth (total)                  : 0.00 words/cycle