[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread Karim Soliman via gem5-users
Thank you, that helps a lot.

Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)


On Thu, Mar 30, 2023 at 10:32 AM Srikant Bharadwaj 
wrote:

> Hi Karim,
> Adding to what Tushar and Gabriel mentioned, you can use Garnet standalone
> to do this.
>
> From what I understand, you want to create a custom traffic pattern
> according to your calculations. You can create your own traffic pattern by
> modifying the traffic injector.
> You can follow the following steps in that case:
> 1. Add your custom traffic pattern name
> to src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.hh and
> in initTrafficType()
> src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc under
> the rest of them.
> 2. Add your calculation for your traffic pattern
> in src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc. You
> can look at the other traffic patterns to see how you can set the input and
> destination of each message.
> 3. Use your custom traffic pattern name when you launch experiments in
> your command line instead of uniform-random traffic.
>
> Thanks,
> Srikant
>
>
> On Wed, Mar 29, 2023 at 7:03 PM Karim Soliman via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Thank you for your response, I'm actually interested in routing and not
>> coherency protocols, so i rebuild gem5 with the following command to use
>> Garnet Standalone protocol
>> scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone
>> Thanks for the help about using the appropriate protocol.
>> What I want to do is to inject the messages or the flits inside each one
>> of the three vnets 0, 1, and 2 based on some calculations I'm gonna to do
>> and I will use in these calculations as input parameters the source and
>> destination Ids of the message / flits to achieve my results.
>> In other words, Garnet Stand Alone classifies messages injections based
>> on the type of the message LD / IFETCH / ST to be injected in vnet 0, 1 and
>> 2 respectively.
>> What I'm trying to do is to classify the messages based on my
>> calculations which need as input the Ids of the source and the destination
>> of each message.
>>
>> Is that possible?
>>
>>
>> Best Regards,
>> *Eng. Karim Soliman*
>> Teaching Assistant
>> Computer Engineering Department
>> Pharos University in Alexandria (P.U.A)
>>
>>
>> On Wed, Mar 29, 2023 at 5:59 PM gabriel.busnot--- via gem5-users <
>> gem5-users@gem5.org> wrote:
>>
>>> Hi Karim,
>>>
>>> Can you be more specific about what you are trying to achieve for us to
>>> provide accurate answers?
>>>
>>> You seem to be really focused on the transport and not so much on the
>>> coherency protocol. In that case, I recommend using the garnet standalone
>>> protocol:
>>>
>>>-
>>>
>>>
>>>https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/
>>>-
>>>
>>>
>>>
>>> https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/
>>>
>>> Then check what Garnet is natively capable of
>>>
>>>-
>>>
>>>https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/
>>>
>>> And if that does not work for you, then you need to hack the model to
>>> bring your features in. For instance, you can modify the garnet standalone
>>> protocol to inject traffic on different vnets but it is up to you to define
>>> how that should happen.
>>>
>>> Regards,
>>>
>>> Gabriel
>>> ___
>>> gem5-users mailing list -- gem5-users@gem5.org
>>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>>
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread Srikant Bharadwaj via gem5-users
Hi Karim,
Adding to what Tushar and Gabriel mentioned, you can use Garnet standalone
to do this.

>From what I understand, you want to create a custom traffic pattern
according to your calculations. You can create your own traffic pattern by
modifying the traffic injector.
You can follow the following steps in that case:
1. Add your custom traffic pattern name
to src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.hh and
in initTrafficType()
src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc under
the rest of them.
2. Add your calculation for your traffic pattern
in src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc. You
can look at the other traffic patterns to see how you can set the input and
destination of each message.
3. Use your custom traffic pattern name when you launch experiments in your
command line instead of uniform-random traffic.

Thanks,
Srikant


On Wed, Mar 29, 2023 at 7:03 PM Karim Soliman via gem5-users <
gem5-users@gem5.org> wrote:

> Thank you for your response, I'm actually interested in routing and not
> coherency protocols, so i rebuild gem5 with the following command to use
> Garnet Standalone protocol
> scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone
> Thanks for the help about using the appropriate protocol.
> What I want to do is to inject the messages or the flits inside each one
> of the three vnets 0, 1, and 2 based on some calculations I'm gonna to do
> and I will use in these calculations as input parameters the source and
> destination Ids of the message / flits to achieve my results.
> In other words, Garnet Stand Alone classifies messages injections based on
> the type of the message LD / IFETCH / ST to be injected in vnet 0, 1 and 2
> respectively.
> What I'm trying to do is to classify the messages based on my calculations
> which need as input the Ids of the source and the destination of each
> message.
>
> Is that possible?
>
>
> Best Regards,
> *Eng. Karim Soliman*
> Teaching Assistant
> Computer Engineering Department
> Pharos University in Alexandria (P.U.A)
>
>
> On Wed, Mar 29, 2023 at 5:59 PM gabriel.busnot--- via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi Karim,
>>
>> Can you be more specific about what you are trying to achieve for us to
>> provide accurate answers?
>>
>> You seem to be really focused on the transport and not so much on the
>> coherency protocol. In that case, I recommend using the garnet standalone
>> protocol:
>>
>>-
>>
>>
>>https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/
>>-
>>
>>
>>
>> https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/
>>
>> Then check what Garnet is natively capable of
>>
>>-
>>
>>https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/
>>
>> And if that does not work for you, then you need to hack the model to
>> bring your features in. For instance, you can modify the garnet standalone
>> protocol to inject traffic on different vnets but it is up to you to define
>> how that should happen.
>>
>> Regards,
>>
>> Gabriel
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread Karim Soliman via gem5-users
Thank you for your response, I'm actually interested in routing and not
coherency protocols, so i rebuild gem5 with the following command to use
Garnet Standalone protocol
scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone
Thanks for the help about using the appropriate protocol.
What I want to do is to inject the messages or the flits inside each one of
the three vnets 0, 1, and 2 based on some calculations I'm gonna to do and
I will use in these calculations as input parameters the source and
destination Ids of the message / flits to achieve my results.
In other words, Garnet Stand Alone classifies messages injections based on
the type of the message LD / IFETCH / ST to be injected in vnet 0, 1 and 2
respectively.
What I'm trying to do is to classify the messages based on my calculations
which need as input the Ids of the source and the destination of each
message.

Is that possible?


Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)


On Wed, Mar 29, 2023 at 5:59 PM gabriel.busnot--- via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Karim,
>
> Can you be more specific about what you are trying to achieve for us to
> provide accurate answers?
>
> You seem to be really focused on the transport and not so much on the
> coherency protocol. In that case, I recommend using the garnet standalone
> protocol:
>
>-
>
>https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/
>-
>
>
>
> https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/
>
> Then check what Garnet is natively capable of
>
>-
>
>https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/
>
> And if that does not work for you, then you need to hack the model to
> bring your features in. For instance, you can modify the garnet standalone
> protocol to inject traffic on different vnets but it is up to you to define
> how that should happen.
>
> Regards,
>
> Gabriel
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread Krishna, Tushar via gem5-users
Yes .. take a look at 
https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/
--inj-vnet can be set to inject in one of the vnets

See the related files as well to see where all of this is implemented.

Best,
Tushar
On Mar 29, 2023, 5:23 AM -0400, Karim Soliman via gem5-users 
, wrote:
Hey everyone.

For research purposes, I need to inject on purpose the flits into a certain 
virtual network, is that possible?
[https://upload.wikimedia.org/wikipedia/en/thumb/6/64/Pharos_University.jpg/220px-Pharos_University.jpg]
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread gabriel.busnot--- via gem5-users
Hi Karim,

Can you be more specific about what you are trying to achieve for us to provide 
accurate answers?

You seem to be really focused on the transport and not so much on the coherency 
protocol. In that case, I recommend using the garnet standalone protocol:

* https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/

* https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/

Then check what Garnet is natively capable of

* https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/

And if that does not work for you, then you need to hack the model to bring 
your features in. For instance, you can modify the garnet standalone protocol 
to inject traffic on different vnets but it is up to you to define how that 
should happen.

Regards,

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


[gem5-users] Re: GEM5/Ruby and MESI_Three_Level protocol

2020-05-28 Thread Javed Osmany via gem5-users
Hello

Okay. I had not realised that some of the files were shared between 
MESI_Three_Level and MESI_Two_Level.
That would explain why MESI_Three_level is comiling okay.

Tks for the pointer.

Best regards

J.Osmany


From: Shehab Elsayed [mailto:shehaby...@gmail.com]
Sent: 28 May 2020 16:49
To: gem5 users mailing list 
Cc: Javed Osmany 
Subject: Re: [gem5-users] GEM5/Ruby and MESI_Three_Level protocol

Which files do you think are missing? There are some shared files between 
MESI_Three_Level and MESI_Two-Level such as the L2 controller. You can find a 
list of all files used by the MESI_Three_Level protocol in 
src/mem/ruby/protocol/MESI_Three_Level.slicc. I hope this helps.

On Thu, May 28, 2020 at 11:37 AM Javed Osmany via gem5-users 
mailto:gem5-users@gem5.org>> wrote:
Hello


1.   I am able to successfully generate the executable gem5 simulator for 
[ARM ISA, MESI_Three_Level protocol]. The command I used being:

a.   scons -j4 build/ARM_MESI_3_level/gem5.opt --default=ARM 
PROTOCOL=MESI_Three_Level SLICC_HTML=True


2.   Also, I am able successfully generate the executable gem5 simulator 
for [X86 ISA, MESI_Three_Level protocol]. The command I used being:

a.   scons -j4 build/X86_MESI_3_level/gem5.opt --default=X86 
PROTOCOL=MESI_Three_Level SLICC_HTML=True

However, if I look in src/mem/ruby/protocol, the code for MESI_Three_Level is 
as follows:

[j00533938@lhrplinux1 protocol]$ ll MESI_Three_Level*
-rw-rw-r-- 1 j00533938 j00533938 40031 May 28 09:17 MESI_Three_Level-L0cache.sm
-rw-rw-r-- 1 j00533938 j00533938 36841 May 28 09:17 MESI_Three_Level-L1cache.sm
-rw-rw-r-- 1 j00533938 j00533938  4270 May 28 09:17 MESI_Three_Level-msg.sm
-rw-rw-r-- 1 j00533938 j00533938   316 Mar 20 17:42 MESI_Three_Level.slicc


Therefore, it looks to me that the code for MESI_Three_Level is not complete. 
Thus it is not clear to me how the executable gem5 simulator for 
MESI_Three_Level is being generated.


Any thoughts on this please?

Thanks in advance.
JO

___
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: GEM5/Ruby and MESI_Three_Level protocol

2020-05-28 Thread Carlos Escuin via gem5-users

Hello,


Open the file 'MESI_Three_Level.slicc' and you will see the files the 
protocol MESI_Three_Level is being generated from.


You will see that it is using some components from the MESI_Two_Level 
protocol.


Hope this is helping you.


Carlos

On 28/5/20 11:48, Javed Osmany via gem5-users wrote:


Hello

1.I am able to successfully generate the executable gem5 simulator for 
[ARM ISA, MESI_Three_Level protocol]. The command I used being:


a.scons -j4 build/ARM_MESI_3_level/gem5.opt --default=ARM 
PROTOCOL=MESI_Three_Level SLICC_HTML=True


2.Also, I am able successfully generate the executable gem5 simulator 
for [X86 ISA, MESI_Three_Level protocol]. The command I used being:


a.scons -j4 build/X86_MESI_3_level/gem5.opt --default=X86 
PROTOCOL=MESI_Three_Level SLICC_HTML=True


However, if I look in src/mem/ruby/protocol, the code for 
MESI_Three_Level is as follows:


[j00533938@lhrplinux1 protocol]$ ll MESI_Three_Level*

-rw-rw-r-- 1 j00533938 j00533938 40031 May 28 09:17 
MESI_Three_Level-L0cache.sm


-rw-rw-r-- 1 j00533938 j00533938 36841 May 28 09:17 
MESI_Three_Level-L1cache.sm


-rw-rw-r-- 1 j00533938 j00533938  4270 May 28 09:17 
MESI_Three_Level-msg.sm


-rw-rw-r-- 1 j00533938 j00533938   316 Mar 20 17:42 MESI_Three_Level.slicc

Therefore, it looks to me that the code for MESI_Three_Level is not 
complete. Thus it is not clear to me how the executable gem5 simulator 
for MESI_Three_Level is being generated.


Any thoughts on this please?

Thanks in advance.

JO


___
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: GEM5/Ruby and MESI_Three_Level protocol

2020-05-28 Thread Shehab Elsayed via gem5-users
Which files do you think are missing? There are some shared files between
MESI_Three_Level and MESI_Two-Level such as the L2 controller. You can find
a list of all files used by the MESI_Three_Level protocol in
src/mem/ruby/protocol/MESI_Three_Level.slicc. I hope this helps.

On Thu, May 28, 2020 at 11:37 AM Javed Osmany via gem5-users <
gem5-users@gem5.org> wrote:

> Hello
>
>
>
> 1.   I am able to successfully generate the executable gem5 simulator
> for [ARM ISA, MESI_Three_Level protocol]. The command I used being:
>
> a.   scons -j4 build/ARM_MESI_3_level/gem5.opt --default=ARM
> PROTOCOL=MESI_Three_Level SLICC_HTML=True
>
>
>
> 2.   Also, I am able successfully generate the executable gem5
> simulator for [X86 ISA, MESI_Three_Level protocol]. The command I used
> being:
>
> a.   scons -j4 build/X86_MESI_3_level/gem5.opt --default=X86
> PROTOCOL=MESI_Three_Level SLICC_HTML=True
>
>
>
> However, if I look in src/mem/ruby/protocol, the code for MESI_Three_Level
> is as follows:
>
>
>
> [j00533938@lhrplinux1 protocol]$ ll MESI_Three_Level*
>
> -rw-rw-r-- 1 j00533938 j00533938 40031 May 28 09:17
> MESI_Three_Level-L0cache.sm
>
> -rw-rw-r-- 1 j00533938 j00533938 36841 May 28 09:17
> MESI_Three_Level-L1cache.sm
>
> -rw-rw-r-- 1 j00533938 j00533938  4270 May 28 09:17 MESI_Three_Level-msg.sm
>
> -rw-rw-r-- 1 j00533938 j00533938   316 Mar 20 17:42 MESI_Three_Level.slicc
>
>
>
>
>
> Therefore, it looks to me that the code for MESI_Three_Level is not
> complete. Thus it is not clear to me how the executable gem5 simulator for
> MESI_Three_Level is being generated.
>
>
>
>
>
> Any thoughts on this please?
>
>
>
> Thanks in advance.
>
> JO
>
>
> ___
> 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: GEM5/Ruby

2020-05-19 Thread Javed Osmany via gem5-users
Many Thanks Jason for the answer and pointers.


Best Regards

J.Osmany
From: Jason Lowe-Power [mailto:ja...@lowepower.com]
Sent: 18 May 2020 21:25
To: gem5 users mailing list 
Cc: Javed Osmany 
Subject: Re: [gem5-users] GEM5/Ruby

Hi Javed,

Unfortunately, there's no protocols in gem5 out of the box that model *exactly* 
what you need. However, SLICC allows you to write your own protocols! It sounds 
like that is what would be best if you need such a specific coherence protocol. 
See http://www.gem5.org/documentation/general_docs/ruby/slicc/ and 
http://www.gem5.org/documentation/learning_gem5/part3/MSIintro/ for more 
information.

Cheers,
Jason

On Mon, May 18, 2020 at 8:43 AM Javed Osmany via gem5-users 
mailto:gem5-users@gem5.org>> wrote:
Hello

I would like to define a multicore system in GEM5 and then use the Ruby memory 
system to simulate the different coherence protocols.

In my system I have three levels of caches (L1I$, L1D$ (using MSI), unified L2$ 
(using MOESI) and LLC (using MESI))

How to generate the optimised GEM5 executable simulator to handle the three 
different coherence protocol in the system?


Thanks in advance

JO
___
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: GEM5/Ruby

2020-05-18 Thread Jason Lowe-Power via gem5-users
Hi Javed,

Unfortunately, there's no protocols in gem5 out of the box that model
*exactly* what you need. However, SLICC allows you to write your own
protocols! It sounds like that is what would be best if you need such a
specific coherence protocol. See
http://www.gem5.org/documentation/general_docs/ruby/slicc/ and
http://www.gem5.org/documentation/learning_gem5/part3/MSIintro/ for more
information.

Cheers,
Jason

On Mon, May 18, 2020 at 8:43 AM Javed Osmany via gem5-users <
gem5-users@gem5.org> wrote:

> Hello
>
>
>
> I would like to define a multicore system in GEM5 and then use the Ruby
> memory system to simulate the different coherence protocols.
>
>
>
> In my system I have three levels of caches (L1I$, L1D$ (using MSI),
> unified L2$ (using MOESI) and LLC (using MESI))
>
>
>
> How to generate the optimised GEM5 executable simulator to handle the
> three different coherence protocol in the system?
>
>
>
>
>
> Thanks in advance
>
>
>
> JO
> ___
> 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