gem5-users@gem5.org

The gem5 Users mailing list

View all threads

About gem5 stats granularity

EV
elio.vinciguerra@phd.unict.it
Fri, Jan 12, 2024 12:57 PM

Hi everybody, I should have the statistics provided by gem5 in stats.txt with an instruction level granularity. I noticed that by default gem5 provides them global, from the beginning of execution to the end. Is it possible to change this behavior and somehow get the stats for each simulated instruction?

Hi everybody, I should have the statistics provided by gem5 in stats.txt with an instruction level granularity. I noticed that by default gem5 provides them global, from the beginning of execution to the end. Is it possible to change this behavior and somehow get the stats for each simulated instruction?
GT
Giacomo Travaglini
Fri, Jan 12, 2024 1:56 PM

Which stats are you interested on in particular?

Also when you say for each simulated instruction, do you mean for each
simulated instructionn TYPE? For example:

ADD -> stats for this particular instruction type

MUL -> stats for this particular instruction type

Kind Regards

Giacomo

On 12/01/2024 12:57, elio.vinciguerra--- via gem5-users wrote:

Hi everybody, I should have the statistics provided by gem5 in
stats.txt with an instruction level granularity. I noticed that by
default gem5 provides them global, from the beginning of execution to
the end. Is it possible to change this behavior and somehow get the
stats for each simulated instruction?


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Which stats are you interested on in particular? Also when you say for each simulated instruction, do you mean for each simulated instructionn TYPE? For example: ADD -> stats for this particular instruction type MUL -> stats for this particular instruction type Kind Regards Giacomo On 12/01/2024 12:57, elio.vinciguerra--- via gem5-users wrote: > > Hi everybody, I should have the statistics provided by gem5 in > stats.txt with an instruction level granularity. I noticed that by > default gem5 provides them global, from the beginning of execution to > the end. Is it possible to change this behavior and somehow get the > stats for each simulated instruction? > > > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
EV
elio.vinciguerra@phd.unict.it
Fri, Jan 12, 2024 2:20 PM

In general I would be interested in getting as many metrics as possible, I saw that stats.txt is very in-depth, in particular stats regarding Instruction and Data TLB miss, Data cache miss and writeback, instruction cache miss, floating point and integer multiplication interlock, pipeline flush from CSR write or other events, CSR interlock are essential. These are all values mapped into the HPM counters, which stats.txt should contain.

So I would be interested in getting these statistics for each type of instruction (add, mul, mov etc etc).

In general I would be interested in getting as many metrics as possible, I saw that stats.txt is very in-depth, in particular stats regarding Instruction and Data TLB miss, Data cache miss and writeback, instruction cache miss, floating point and integer multiplication interlock, pipeline flush from CSR write or other events, CSR interlock are essential. These are all values mapped into the HPM counters, which stats.txt should contain. So I would be interested in getting these statistics for each type of instruction (add, mul, mov etc etc).
EM
Eliot Moss
Fri, Jan 12, 2024 3:12 PM

On 1/12/2024 7:57 AM, elio.vinciguerra--- via gem5-users wrote:

Hi everybody, I should have the statistics provided by gem5 in stats.txt with an instruction level granularity. I
noticed that by default gem5 provides them global, from the beginning of execution to the end. Is it possible to change
this behavior and somehow get the stats for each simulated instruction?

I'm not sure this makes much sense.  If you mean stats
broken down for each individual instruction executed,
the output would be prohibitively large.  It also would
be hard to pin down / define, since in pipelined and
our-of-order processors, the execution of different
instructions is overlapped, an instruction can be fetched
but not executed, it can be executed speculatively and
later dropped, etc.

Consider just the "simple" question: How long did this
instruction take to execute?  It might have taken (say)
10 cycles in a deep pipeline to go all the way from being
fetched to committed, but its contribution to the total
execution time may be just one cycle or even zero (a
correctly predicted branch on some architectures).

Maybe if you tell us what you are really trying to get at
we can be more helpful :-) ...

Eliot Moss

On 1/12/2024 7:57 AM, elio.vinciguerra--- via gem5-users wrote: > Hi everybody, I should have the statistics provided by gem5 in stats.txt with an instruction level granularity. I > noticed that by default gem5 provides them global, from the beginning of execution to the end. Is it possible to change > this behavior and somehow get the stats for each simulated instruction? I'm not sure this makes much sense. If you mean stats broken down for each individual instruction executed, the output would be prohibitively large. It also would be hard to pin down / define, since in pipelined and our-of-order processors, the execution of different instructions is overlapped, an instruction can be fetched but not executed, it can be executed speculatively and later dropped, etc. Consider just the "simple" question: How long did this instruction take to execute? It might have taken (say) 10 cycles in a deep pipeline to go all the way from being fetched to committed, but its contribution to the total execution time may be just one cycle or even zero (a correctly predicted branch on some architectures). Maybe if you tell us what you are really trying to get at we can be more helpful :-) ... Eliot Moss
EV
elio.vinciguerra@phd.unict.it
Fri, Jan 12, 2024 3:21 PM

I should collect this information in order to train a neural network, so I should have a large dataset made of various simulations. Training the network with all those informations, instruction after instruction (or periodically, with a time slot), should result in good performance.

I should collect this information in order to train a neural network, so I should have a large dataset made of various simulations. Training the network with all those informations, instruction after instruction (or periodically, with a time slot), should result in good performance.