[gem5-users] Re: How I can notify the NVMAIN model when I use “m5 resetstats” so that the NVMAIN model can also reset the stats in its model

2020-10-12 Thread Gabe Black via gem5-users
Hi Liyichao, you can register a callback with the
Stats::registerResetCallback function in base/statistics.hh.

Gabe

On Mon, Oct 12, 2020 at 7:15 PM Liyichao via gem5-users 
wrote:

> Hi All:
>
>
>
>
>
>When I use gem5 + O3 based on armv8 with NVMAIN ddr4 model, I want
> to know *how I can notify the NVMAIN model when I use “m5 resetstats”* so
> that the NVMAIN model can also reset the stats in its model, e.g.
> bandwidth, latency, because I will first run warmup for a few instrutions,
> when warmup finished I reset stats in GEM5, and then go on running the
> simulation parts.
>
>
>
>
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] How I can notify the NVMAIN model when I use “m5 resetstats” so that the NVMAIN model can also reset the stats in its model

2020-10-12 Thread Liyichao via gem5-users
Hi All:


   When I use gem5 + O3 based on armv8 with NVMAIN ddr4 model, I want to 
know how I can notify the NVMAIN model when I use “m5 resetstats” so that the 
NVMAIN model can also reset the stats in its model, e.g. bandwidth, latency, 
because I will first run warmup for a few instrutions, when warmup finished I 
reset stats in GEM5, and then go on running the simulation parts.


___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Invalid RubyRequestType

2020-10-12 Thread Θοδωρής Τροχάτος via gem5-users
Hi Jason,

Yes, I already tried this but I get the error “Invalid method call: Type 
‘sequencer’ does not have a method evictionCallback”

Στάλθηκε από το iPhone μου

> 12 Οκτ 2020, 20:10, ο χρήστης «Jason Lowe-Power » έγραψε:
> 
> 
> Hi Teo,
> 
> That error is because you're still using MESI_Two_Level. You need to 
> recompile gem5 to use a different protocol.
> 
> I.e., to use MESI_Two_Level you could do the following:
> > scons build/X86_MESI_Two_Level/gem5.opt 
> > build/X86_MESI_Two_Level/gem5.opt  
> 
> To use MOESI_hammer you could do the following:
> > scons build/X86_MOESI_hammer/gem5.opt --default=X86 PROTOCOL=MOESI_hammer
> > build/X86_MOESI_hammer/gem5.opt 
> 
> In the second case, the parameters to scons mean the following:
> - `--default=X86`: Use the file build_opts/X86 to get the default parameters 
> for the build
> - `PROTOCOL=MOESI_hammer`: Override the "PROTOCOL" variable with MOESI_hammer 
> 
> Hopefully this helps!
> 
> Cheers,
> Jason
> 
> 
>> On Sun, Oct 11, 2020 at 12:28 PM Θοδωρής Τροχάτος via gem5-users 
>>  wrote:
>> Hi all! I am new to the gem5 community and I am currently reproducing 
>> various things from InvisiSpec paper...
>> 
>> I was wondering, how can I generate checkpoints in X86_MESI_Two_Level (I am 
>> using ruby memory model in my simulations) ?
>> I know that checkpoints in Ruby can only be generated in MOESI_hammer, but I 
>> can't generate checkpoints with MOESI_hammer, either.
>> I always get the error "panic: Runtime Error at 
>> MESI_Two_Level-L1cache.sm:279: Invalid RubyRequestType."
>> 
>> Any ideas?
>> 
>> Thanks in advance,
>> Teo.
>> 
>> -- 
>> -
>> Τροχάτος Θεόδωρος
>> Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
>> Εθνικό Μετσόβιο Πολυτεχνείο
>> -
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: CPU configuration and default values

2020-10-12 Thread Davide Basilio Bartolini via gem5-users
Hi Jason,


Thanks for the pointers.

So, as I understand it now, the "public" API for gem5 is the Python API and 
users are expected to write their own scripts against that API.

That's what I am doing now, but still the issue with the default values 
surfaces back again.


For example, in CacheConfig.py, size values for the caches are taken from the 
options (which then need to have some value) and there is no fallback to the 
values defined in the core configuration in case no option is passed [1].

So, then, back to my original question: why do we have default values in the 
core configurations [2] if then there is no way to use them?

Or should CacheConfig also be considered just an example?


Thanks again.


-- dbb


[1] https://github.com/gem5/gem5/blob/stable/configs/common/CacheConfig.py#L101

[2] 
https://github.com/gem5/gem5/blob/stable/configs/common/cores/arm/O3_ARM_v7a.py#L197



From: Jason Lowe-Power 
Sent: Thursday, October 8, 2020 5:25:18 PM
To: Giacomo Travaglini
Cc: Davide Basilio Bartolini; gem5 users mailing list; Bobby Bruce
Subject: Re: CPU configuration and default values

Hi Davide,

I echo 100% of what Giacomo said. Also, there's a proposal for updating the 
Python API here: https://gem5.atlassian.net/browse/GEM5-432. That proposal is a 
pretty extreme example, and we'll probably end up with something closer to the 
status quo.

You can also check out Learning gem5 to understand more about how to write 
config scripts from scratch: 
https://www.gem5.org/documentation/learning_gem5/part1/simple_config/.

Finally, if you're interested in x86 FS scripts, there are some examples in 
gem5 resources (e.g., 
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/configs/system/).

Cheers,
Jason

On Thu, Oct 8, 2020 at 3:04 AM Giacomo Travaglini 
mailto:giacomo.travagl...@arm.com>> wrote:
Davide,

You are 100% right in your distinction between example platforms (forkable) and 
generic scripts; and that no-one should ever fork from fs.py; and that such 
script, if we still want to maintain it, shouldn’t be in the example directory. 
The “simple example script to replicate to match your use case” is the de-facto 
accepted philosophy among most gem5 developers (nowadays). The idea is to 
empower a user/researcher to easily adjust a python config to model a specific 
hardware topology.

Some people in Arm got that in mind when they added the configs/example/arm 
subdir:
https://github.com/gem5/gem5/tree/stable/configs/example/arm

About investing some of your own time on cleaning up the configs: that would be 
great and I feel most maintainers are already sharing your views on what needs 
to be changed.
If you are afraid of not having your patch accepted on upstream, a solution 
could be for you to post a RFC using JIRA 
(https://gem5.atlassian.net/secure/BrowseProjects.jspa)
where you could describe what will be restructured and how. You will get a 
feedback from the rest of the community and you could make the decision whether 
it’s worth investing some of your time.

Kind Regards

Giacomo

From: Davide Basilio Bartolini 
mailto:davide.basilio.bartol...@huawei.com>>
Sent: 08 October 2020 10:40
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: Giacomo Travaglini 
mailto:giacomo.travagl...@arm.com>>
Subject: Re: CPU configuration and default values


Hi Giacomo,



Thanks for your reply, I'll take a closer look at fs_bigLITTLE.py.



I guess the question here for the gem5 maintainers is whether gem5 users are 
expected to hack their own simulation script even for "simple" cases or if 
there should be default scripts that don't have this kind of idiosyncrasies 
with default parameters (and possibly other legacy).

Probably, the current answer is "yes", given that se.py and fs.py are in an 
"examples" directory.

That doesn't seem ideal to me though: generic scripts to parse parameters and 
run simulations look like "standard" infrastructure to me that the simulator 
should probably provide, rather than examples that users are expected to fork 
and hack on (except for specific / advanced case).



I guess the question there is whether the community wants to go in that 
direction or not.

If yes, then thinking about promoting those "examples" to a more stable status 
and refactoring legacy issues along the way might be a good thing to think 
about.

I (or others) could spend some time working on that, but it really only makes 
sense if there is a chance that the patch will be eventually accepted upstream, 
otherwise it's just simpler to have our own scripts on the side (as most people 
probably do already).



Thanks.



-- dbb




From: Giacomo Travaglini via gem5-users 
mailto:gem5-users@gem5.org>>
Sent: Thursday, October 8, 2020 11:17:43 AM
To: gem5 users mailing list
Cc: Davide Basilio Bartolini; Giacomo Travaglini
Subject: [gem5-users] Re: CPU configuration and default values

Hi Davide,

[gem5-users] Re: Invalid RubyRequestType

2020-10-12 Thread Jason Lowe-Power via gem5-users
Hi Teo,

That error is because you're still using MESI_Two_Level. You need to
recompile gem5 to use a different protocol.

I.e., to use MESI_Two_Level you could do the following:
> scons build/X86_MESI_Two_Level/gem5.opt
> build/X86_MESI_Two_Level/gem5.opt  

To use MOESI_hammer you could do the following:
> scons build/X86_MOESI_hammer/gem5.opt --default=X86 PROTOCOL=MOESI_hammer
> build/X86_MOESI_hammer/gem5.opt 

In the second case, the parameters to scons mean the following:
- `--default=X86`: Use the file build_opts/X86 to get the default
parameters for the build
- `PROTOCOL=MOESI_hammer`: Override the "PROTOCOL" variable with
MOESI_hammer

Hopefully this helps!

Cheers,
Jason


On Sun, Oct 11, 2020 at 12:28 PM Θοδωρής Τροχάτος via gem5-users <
gem5-users@gem5.org> wrote:

> Hi all! I am new to the gem5 community and I am currently reproducing
> various things from InvisiSpec paper...
>
> I was wondering, how can I generate checkpoints in X86_MESI_Two_Level (I
> am using ruby memory model in my simulations) ?
> I know that checkpoints in Ruby can only be generated in MOESI_hammer, but
> I can't generate checkpoints with MOESI_hammer, either.
> I always get the error *"panic: Runtime Error at
> MESI_Two_Level-L1cache.sm:279: Invalid RubyRequestType."*
>
> Any ideas?
>
> Thanks in advance,
> Teo.
>
> --
> -
> *Τροχάτος Θεόδωρος*
> *Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών*
> *Εθνικό Μετσόβιο Πολυτεχνείο*
> -
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s