gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Changing Parameters in NVMInterface subclasses

VA
Vincent Abraham
Sat, Jun 10, 2023 11:47 AM

Hi everyone,
I want to change some of the parameters like tREAD, tWRITE, etc. in the
NVM_2400_1x64 class. I tried to create a new subclass for it but I wasn't
able to pass the class by name in the mem-type parameter in fs.py. And even
with changing the parameters in the existing class itself, it seems like
the values aren't getting updated when I try to print some of them in the
MemConfig.py file. It would be great if someone could help me fix this.

Hi everyone, I want to change some of the parameters like tREAD, tWRITE, etc. in the NVM_2400_1x64 class. I tried to create a new subclass for it but I wasn't able to pass the class by name in the mem-type parameter in fs.py. And even with changing the parameters in the existing class itself, it seems like the values aren't getting updated when I try to print some of them in the MemConfig.py file. It would be great if someone could help me fix this.
BM
Bichl, Markus
Sat, Jun 10, 2023 12:13 PM

Hi,

did you recomile your gem5? E.g. "scons build/X86/gem5.opt -j 5”.
There is a huge list of dependencies within the full project, which means, a change of a single parameter will lead to a lot of files being rebuilt. You will recognise some lines similar to these ones within the output of scons:

scons: Building targets ...
[EMBED PY] X86/mem/NVMInterface.py -> .cc
[VER TAGS]  -> X86/sim/tags.cc
[    CXX] X86/mem/NVMInterface.py.cc -> .pyo
[    CXX] X86/mem/NVMInterface.py.cc -> .do

BR,
Markus

On 10.06.2023, at 13:47, Vincent Abraham via gem5-users gem5-users@gem5.org wrote:

Hi everyone,
I want to change some of the parameters like tREAD, tWRITE, etc. in the NVM_2400_1x64 class. I tried to create a new subclass for it but I wasn't able to pass the class by name in the mem-type parameter in fs.py. And even with changing the parameters in the existing class itself, it seems like the values aren't getting updated when I try to print some of them in the MemConfig.py file. It would be great if someone could help me fix this.


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

Hi, did you recomile your gem5? E.g. "scons build/X86/gem5.opt -j 5”. There is a huge list of dependencies within the full project, which means, a change of a single parameter will lead to a lot of files being rebuilt. You will recognise some lines similar to these ones within the output of scons: scons: Building targets ... [EMBED PY] X86/mem/NVMInterface.py -> .cc [VER TAGS] -> X86/sim/tags.cc [ CXX] X86/mem/NVMInterface.py.cc -> .pyo [ CXX] X86/mem/NVMInterface.py.cc -> .do BR, Markus > On 10.06.2023, at 13:47, Vincent Abraham via gem5-users <gem5-users@gem5.org> wrote: > > Hi everyone, > I want to change some of the parameters like tREAD, tWRITE, etc. in the NVM_2400_1x64 class. I tried to create a new subclass for it but I wasn't able to pass the class by name in the mem-type parameter in fs.py. And even with changing the parameters in the existing class itself, it seems like the values aren't getting updated when I try to print some of them in the MemConfig.py file. It would be great if someone could help me fix this. > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org
EM
Eliot Moss
Sat, Jun 10, 2023 1:15 PM

On 6/10/2023 7:47 AM, Vincent Abraham via gem5-users wrote:

Hi everyone,
I want to change some of the parameters like tREAD, tWRITE, etc. in the NVM_2400_1x64 class. I tried
to create a new subclass for it but I wasn't able to pass the class by name in the mem-type
parameter in fs.py. And even with changing the parameters in the existing class itself, it seems
like the values aren't getting updated when I try to print some of them in the MemConfig.py file. It
would be great if someone could help me fix this.

You can actually change them on the command line by using:

--param fullNameOfParameter=DesiredValue

If you look in a config.ini file from a run you can see the
full name of the component written out; add .nameOfParameter
to that to get the full name of the the parameter.  Some
parameter values need quotes around them (as I recall,
ones that are strings as opposed to number when used in
python).

To be able to mention the class by name in fs.py you may
need to edit Options.py or MemConfig.py.

Some of these are more deeply embedded into the compiled
code and changes require a rebuild.

HTH - Eliot Moss

On 6/10/2023 7:47 AM, Vincent Abraham via gem5-users wrote: > Hi everyone, > I want to change some of the parameters like tREAD, tWRITE, etc. in the NVM_2400_1x64 class. I tried > to create a new subclass for it but I wasn't able to pass the class by name in the mem-type > parameter in fs.py. And even with changing the parameters in the existing class itself, it seems > like the values aren't getting updated when I try to print some of them in the MemConfig.py file. It > would be great if someone could help me fix this. You can actually change them on the command line by using: --param fullNameOfParameter=DesiredValue If you look in a config.ini file from a run you can see the full name of the component written out; add .nameOfParameter to that to get the full name of the the parameter. Some parameter values need quotes around them (as I recall, ones that are strings as opposed to number when used in python). To be able to mention the class by name in fs.py you may need to edit Options.py or MemConfig.py. Some of these are more deeply embedded into the compiled code and changes require a rebuild. HTH - Eliot Moss
VA
Vincent Abraham
Sat, Jun 10, 2023 3:09 PM

Re-building worked! Thank you.

On Sat, Jun 10, 2023 at 9:15 AM Eliot Moss moss@cs.umass.edu wrote:

On 6/10/2023 7:47 AM, Vincent Abraham via gem5-users wrote:

Hi everyone,
I want to change some of the parameters like tREAD, tWRITE, etc. in the

NVM_2400_1x64 class. I tried

to create a new subclass for it but I wasn't able to pass the class by

name in the mem-type

parameter in fs.py. And even with changing the parameters in the

existing class itself, it seems

like the values aren't getting updated when I try to print some of them

in the MemConfig.py file. It

would be great if someone could help me fix this.

You can actually change them on the command line by using:

--param fullNameOfParameter=DesiredValue

If you look in a config.ini file from a run you can see the
full name of the component written out; add .nameOfParameter
to that to get the full name of the the parameter.  Some
parameter values need quotes around them (as I recall,
ones that are strings as opposed to number when used in
python).

To be able to mention the class by name in fs.py you may
need to edit Options.py or MemConfig.py.

Some of these are more deeply embedded into the compiled
code and changes require a rebuild.

HTH - Eliot Moss

Re-building worked! Thank you. On Sat, Jun 10, 2023 at 9:15 AM Eliot Moss <moss@cs.umass.edu> wrote: > On 6/10/2023 7:47 AM, Vincent Abraham via gem5-users wrote: > > Hi everyone, > > I want to change some of the parameters like tREAD, tWRITE, etc. in the > NVM_2400_1x64 class. I tried > > to create a new subclass for it but I wasn't able to pass the class by > name in the mem-type > > parameter in fs.py. And even with changing the parameters in the > existing class itself, it seems > > like the values aren't getting updated when I try to print some of them > in the MemConfig.py file. It > > would be great if someone could help me fix this. > > You can actually change them on the command line by using: > > --param fullNameOfParameter=DesiredValue > > If you look in a config.ini file from a run you can see the > full name of the component written out; add .nameOfParameter > to that to get the full name of the the parameter. Some > parameter values need quotes around them (as I recall, > ones that are strings as opposed to number when used in > python). > > To be able to mention the class by name in fs.py you may > need to edit Options.py or MemConfig.py. > > Some of these are more deeply embedded into the compiled > code and changes require a rebuild. > > HTH - Eliot Moss >