[gem5-users] Difference between configs/ruby scripts vs. learning_gem5/part3 config scripts

2022-06-27 Thread Gautam Pathak
Hi,

Can anyone please tell me the difference between config scripts for coherence 
protocols present in configs/ruby vs. those that are used by simple_ruby.py? 
For example, ruby_caches_MI_example.py can be used by simple_ruby.py to 
simulate a simple MI protocol. However, configs/ruby/MI_example.py is also 
present (which I don't know how to use). As far as I can see, they are quite 
different in terms of class hierarchy (for eg. one sets up a MyCacheSystem 
whereas the other defines two functions define_options and create_system). 
Also, in one L1Cache inherits from RubyCache whereas the other inherits from 
L1Cache_Controller. Any clarification would be appreciated.

My main goal is to use and understand how the ruby testing framework scripts 
work with different coherence protocols (ruby_random_test, ruby_test, 
ruby_direct_test). Any help would be appreciated!

Thanks and Regards,
Gautam Pathak

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


[gem5-users] Re: _pid 100 is already used: Error gem5 - running benchmark

2022-06-27 Thread Jason Lowe-Power
Hi Syam,

In a much older version of gem5, maybe. It's been at least 2+ years since
we required the PID to be specified in SE mode.

Cheers,
Jason

On Mon, Jun 27, 2022 at 5:37 AM Syam Sankar  wrote:

> Dear Dr. Jason
>
> Thank you for your kind reply.
> I think this worked fine with the older version of gem5, right?
>
> Regards
> Syam
>
> On Fri, 24 Jun 2022, 12:43 am Jason Lowe-Power, 
> wrote:
>
>> Hi Syam,
>>
>> The error is that in *SE mode* you have to manually specify the PID for
>> each process when you are creating the processes in Python. However, I
>> think you're going to run into many problems trying to simulate such a
>> large system/workload in SE mode. For instance, I seriously doubt 3GB is
>> enough RAM for 64 copies of namd.
>>
>> We are working towards deprecating se/fs.py because they do not support
>> the flexibility required for different kinds of simulations. I would
>> suggest looking into extending the standard library with a new board to
>> model your system. Right now, we don't have any prebuilt boards at this
>> scale, but adding one is relatively straightforward. You can find
>> documentation on the standard library on the website, in our recent ISCA
>> tutorial (see our youtube channel), and we'll have more in a couple of
>> weeks.
>>
>> Cheers,
>> Jason
>>
>> On Thu, Jun 23, 2022 at 9:01 AM Syam Sankar 
>> wrote:
>>
>>> Hi all
>>>
>>>
>>> I downloaded a new version of gem5 repo*(gem5 version 22.0.0.1)*
>>> I could build it with the following command:
>>>
>>> *python3 `which scons` build/X86/gem5.fast RUBY=true
>>> PROTOCOL=MESI_Two_Level  -j 8*
>>>
>>> I was trying to execute a *CPU2017 Benchmark* program on an 8X8 Core
>>> system with the command as follows:
>>>
>>>
>>> build/X86/gem5.fast configs/example/se.py  --num-cpus=64 --num-dirs=64
>>>  --sys-clock=2GHz --topology=Mesh_XY --mesh-rows=8 --ruby --num-l2caches=64
>>> --network=garnet   --caches --mem-type=DDR3_1600_8x8 --mem-size=3GB
>>>  --routing-algorithm=1 -F 1000 -W 1000 -I 5000
>>> --bench=namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd
>>>
>>>
>>>  But, the execution is ended with an error:
>>>
>>>
>>> *build/X86/sim/process.cc:141: fatal: fatal condition !ret_pair.second
>>> occurred: _pid 100 is already used*
>>>
>>> ...
>>> ..
>>> ..
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>>> Mbytes) does not match the address range assigned (64 Mbytes)
>>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192

[gem5-users] Re: _pid 100 is already used: Error gem5 - running benchmark

2022-06-27 Thread Syam Sankar
Dear Dr. Jason

Thank you for your kind reply.
I think this worked fine with the older version of gem5, right?

Regards
Syam

On Fri, 24 Jun 2022, 12:43 am Jason Lowe-Power,  wrote:

> Hi Syam,
>
> The error is that in *SE mode* you have to manually specify the PID for
> each process when you are creating the processes in Python. However, I
> think you're going to run into many problems trying to simulate such a
> large system/workload in SE mode. For instance, I seriously doubt 3GB is
> enough RAM for 64 copies of namd.
>
> We are working towards deprecating se/fs.py because they do not support
> the flexibility required for different kinds of simulations. I would
> suggest looking into extending the standard library with a new board to
> model your system. Right now, we don't have any prebuilt boards at this
> scale, but adding one is relatively straightforward. You can find
> documentation on the standard library on the website, in our recent ISCA
> tutorial (see our youtube channel), and we'll have more in a couple of
> weeks.
>
> Cheers,
> Jason
>
> On Thu, Jun 23, 2022 at 9:01 AM Syam Sankar 
> wrote:
>
>> Hi all
>>
>>
>> I downloaded a new version of gem5 repo*(gem5 version 22.0.0.1)*
>> I could build it with the following command:
>>
>> *python3 `which scons` build/X86/gem5.fast RUBY=true
>> PROTOCOL=MESI_Two_Level  -j 8*
>>
>> I was trying to execute a *CPU2017 Benchmark* program on an 8X8 Core
>> system with the command as follows:
>>
>>
>> build/X86/gem5.fast configs/example/se.py  --num-cpus=64 --num-dirs=64
>>  --sys-clock=2GHz --topology=Mesh_XY --mesh-rows=8 --ruby --num-l2caches=64
>> --network=garnet   --caches --mem-type=DDR3_1600_8x8 --mem-size=3GB
>>  --routing-algorithm=1 -F 1000 -W 1000 -I 5000
>> --bench=namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd-namd
>>
>>
>>  But, the execution is ended with an error:
>>
>>
>> *build/X86/sim/process.cc:141: fatal: fatal condition !ret_pair.second
>> occurred: _pid 100 is already used*
>>
>> ...
>> ..
>> ..
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (64 Mbytes)
>> build/X86/mem/dram_interface.cc:690: warn: DRAM device capacity (8192
>> Mbytes) does not match the