[gem5-users] gem5 / Garnet 3.0 / Standalone

2023-04-03 Thread Karim Soliman via gem5-users
Hey everyone,
I was trying to limit the size of the flitBuffer.
The default constructor is set *max_size = INFINITE_;*
So, I used the method *setMaxSize(); *to alter the default *max_size *of
the buffer.

During the simulation, I output the current size of the flitBuffer at
 mem/ruby/network/garnet/flitBuffer.hh, at the end of the method ==>  void
insert(flit *flit) , and the current size of the buffer was exceeding the
max_size value.

Is there a way to prevent exceeding the buffer max_size during the
simulation?


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: How to change voltage and frequency of individual ComputeUnit for GPU?

2023-04-03 Thread Matt Sinclair via gem5-users
DVFS is not my area of expertise, so I'm not sure I can offer much useful 
feedback here.  My guess is you probably meant line 429 of what I see on 
develop: 
https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/configs/example/apu_se.py#429?

Regardless, without more information it's hard to say what is failing.  But I 
believe the voltage does not fundamentally affect the correctness of the model 
- regardless of what model you set, it runs at the set frequency and eventually 
completes.  I *think* the voltage is more for the energy modeling aspects.  But 
Srikant (CC'd) knows a lot more about GPU DVFS in gem5, so hopefully he can 
comment further.

Matt

From: Mejbaul Islam, Kazi M. 
Sent: Monday, April 3, 2023 10:04 PM
To: Matt Sinclair ; gem5-users@gem5.org
Cc: Poremba, Matthew ; srikan...@gmail.com
Subject: Re: How to change voltage and frequency of individual ComputeUnit for 
GPU?

Hi,

Thank you so much, will definitely contribute if I can do that. On a similar 
note, I have first tried to change voltage and frequency of shader in 
gem5/configs/example/apu_se.py (line 412). The thing is, beyond a certain range 
of GPU frequency, it crashes which makes sense. But if I put gpu_voltage=0.0V 
it still works fine as it is (with same ticks and all). Even I have changed 
CPUvoltage and gpu_voltage to 0.0V but it works which is wired. Where may be 
the issue do you think?

Regards,
Kazi

From: Matt Sinclair mailto:sincl...@cs.wisc.edu>>
Sent: Monday, April 3, 2023 5:00 PM
To: gem5-users@gem5.org 
mailto:gem5-users@gem5.org>>
Cc: Mejbaul Islam, Kazi M. 
mailto:kmejbaulis...@ufl.edu>>; Poremba, Matthew 
mailto:matthew.pore...@amd.com>>; 
srikan...@gmail.com 
mailto:srikan...@gmail.com>>
Subject: Re: How to change voltage and frequency of individual ComputeUnit for 
GPU?

[External Email]
Hi Kazi,

Srikant (CC'd) previously added some support for things like this 
(https://gem5-review.googlesource.com/c/public/gem5/+/61589),
 but in the L1/L2 caches instead of the CUs specifically.  From a cursory check 
I don't see this support directly integrated into the CUs, but since they are 
ClockedObject's 
(https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/clocked_object.hh#107,
 
https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/ClockedObject.py#50)
 my guess is you could use the above patch as a model to add the support you 
want.

If you do add it, it would be great if you can add this back as a feature for 
the community!

Thanks,
Matt

From: Mejbaul Islam, Kazi M. via gem5-users 
mailto:gem5-users@gem5.org>>
Sent: Monday, April 3, 2023 3:49 AM
To: gem5-users@gem5.org 
mailto:gem5-users@gem5.org>>
Cc: Mejbaul Islam, Kazi M. mailto:kmejbaulis...@ufl.edu>>
Subject: [gem5-users] How to change voltage and frequency of individual 
ComputeUnit for GPU?

Hello,

In gem5/configs/example/apu_se.py, ComputeUnit is used to build GPU. Is there 
any way to change voltage and frequency of each individual ComputeUnit?

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


[gem5-users] Re: How to change voltage and frequency of individual ComputeUnit for GPU?

2023-04-03 Thread Mejbaul Islam, Kazi M. via gem5-users
Hi,

Thank you so much, will definitely contribute if I can do that. On a similar 
note, I have first tried to change voltage and frequency of shader in 
gem5/configs/example/apu_se.py (line 412). The thing is, beyond a certain range 
of GPU frequency, it crashes which makes sense. But if I put gpu_voltage=0.0V 
it still works fine as it is (with same ticks and all). Even I have changed 
CPUvoltage and gpu_voltage to 0.0V but it works which is wired. Where may be 
the issue do you think?

Regards,
Kazi

From: Matt Sinclair 
Sent: Monday, April 3, 2023 5:00 PM
To: gem5-users@gem5.org 
Cc: Mejbaul Islam, Kazi M. ; Poremba, Matthew 
; srikan...@gmail.com 
Subject: Re: How to change voltage and frequency of individual ComputeUnit for 
GPU?

[External Email]
Hi Kazi,

Srikant (CC'd) previously added some support for things like this 
(https://gem5-review.googlesource.com/c/public/gem5/+/61589),
 but in the L1/L2 caches instead of the CUs specifically.  From a cursory check 
I don't see this support directly integrated into the CUs, but since they are 
ClockedObject's 
(https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/clocked_object.hh#107,
 
https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/ClockedObject.py#50)
 my guess is you could use the above patch as a model to add the support you 
want.

If you do add it, it would be great if you can add this back as a feature for 
the community!

Thanks,
Matt

From: Mejbaul Islam, Kazi M. via gem5-users 
Sent: Monday, April 3, 2023 3:49 AM
To: gem5-users@gem5.org 
Cc: Mejbaul Islam, Kazi M. 
Subject: [gem5-users] How to change voltage and frequency of individual 
ComputeUnit for GPU?

Hello,

In gem5/configs/example/apu_se.py, ComputeUnit is used to build GPU. Is there 
any way to change voltage and frequency of each individual ComputeUnit?

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


[gem5-users] Re: Gem5 / garnet 3.0 - Standalone

2023-04-03 Thread Karim Soliman via gem5-users
Thank you for your time and for your assistance, I'll check it out.

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


On Tue, Apr 4, 2023 at 8:13 AM Krishna, Tushar 
wrote:

> 0.02 flits/node/cycle is too low an injection rate for deadlocks. Try
> higher rates.
>
> I had created some labs in my NoC class in the past on deadlocks. It might
> be useful to take a look, esp Lab 3 on deadlocks.
> https://tusharkrishna.ece.gatech.edu/teaching/icn_s20/
>
> Some of the garnet repos from past papers from my group might be useful as
> well :
> https://github.com/noc-deadlock
>
> Cheers,
> Tushar
> On Apr 1, 2023, 12:12 AM -0400, Karim Soliman via gem5-users <
> gem5-users@gem5.org>, wrote:
>
> Hey everyone,
> My research field is about NoC and I'm working on gem5/garnet 3.0
> standalone.
> For research purposes, I'm trying to push Garnet standalone protocol into
> deadlock or traffic congestion during the simulation of Mesh_XY topology.
> So, that's what i have done so far:
>  • topologies/Mesh_XY.py ==> I changed the weight of all the internal
> links to be 1, to allow the routing to select random output.
>  • mem/ruby/network/garnet/flitBuffer.cc ==> I reduced the max_size of the
> flit buffer to 2 instead of using INFINITE_ constant, by using
> setMaxSize(int size); method to apply this.
>  • cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.py ==> I
> reduced response_limit to be 1000.
>  • cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc ==> I
> used std::cout in the function doRetry() in order to check if there was any
> traffic congestion.
>  • I'm using only two virtual channels by setting the option of
> --vcs-per-vnet=2
> I rebuild gem5 using
> *sudo scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone -j13*My
> simulation command is
> *sudo build/NULL/gem5.debug configs/example/garnet_synth_traffic.py
> --synthetic=uniform_random --network=garnet --num-cpus=16 --num-dirs=16
> --mesh-rows=4 --topology=Mesh_XY --sim-cycles=5000
> --routing-algorithm=1 --vcs-per-vnet=2 --injectionrate=0.02*
> I re-simulated using higher injection rates with no output from the
> doRetry() method, and no deadlock happened, are there any parameters I
> should change?
>
>
>
> Best Regards,*Eng. Karim Soliman*Teaching AssistantComputer Engineering
> DepartmentPharos 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 / garnet 3.0 - Standalone

2023-04-03 Thread Krishna, Tushar via gem5-users
0.02 flits/node/cycle is too low an injection rate for deadlocks. Try higher 
rates.

I had created some labs in my NoC class in the past on deadlocks. It might be 
useful to take a look, esp Lab 3 on deadlocks.
https://tusharkrishna.ece.gatech.edu/teaching/icn_s20/

Some of the garnet repos from past papers from my group might be useful as well 
:
https://github.com/noc-deadlock

Cheers,
Tushar
On Apr 1, 2023, 12:12 AM -0400, Karim Soliman via gem5-users 
, wrote:
Hey everyone,
My research field is about NoC and I'm working on gem5/garnet 3.0 standalone.
For research purposes, I'm trying to push Garnet standalone protocol into 
deadlock or traffic congestion during the simulation of Mesh_XY topology.
So, that's what i have done so far:
 • topologies/Mesh_XY.py ==> I changed the weight of all the internal links to 
be 1, to allow the routing to select random output.
 • mem/ruby/network/garnet/flitBuffer.cc ==> I reduced the max_size of the flit 
buffer to 2 instead of using INFINITE_ constant, by using setMaxSize(int size); 
method to apply this.
 • cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.py ==> I reduced 
response_limit to be 1000.
 • cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc ==> I used 
std::cout in the function doRetry() in order to check if there was any traffic 
congestion.
 • I'm using only two virtual channels by setting the option of --vcs-per-vnet=2
I rebuild gem5 using
sudo scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone -j13My simulation 
command is
sudo build/NULL/gem5.debug configs/example/garnet_synth_traffic.py 
--synthetic=uniform_random --network=garnet --num-cpus=16 --num-dirs=16 
--mesh-rows=4 --topology=Mesh_XY --sim-cycles=5000 --routing-algorithm=1 
--vcs-per-vnet=2 --injectionrate=0.02
I re-simulated using higher injection rates with no output from the doRetry() 
method, and no deadlock happened, are there any parameters I should change?



[https://upload.wikimedia.org/wikipedia/en/thumb/6/64/Pharos_University.jpg/220px-Pharos_University.jpg]Best
 Regards,Eng. Karim SolimanTeaching AssistantComputer Engineering 
DepartmentPharos 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: How to change voltage and frequency of individual ComputeUnit for GPU?

2023-04-03 Thread Matt Sinclair via gem5-users
Hi Kazi,

Srikant (CC'd) previously added some support for things like this 
(https://gem5-review.googlesource.com/c/public/gem5/+/61589), but in the L1/L2 
caches instead of the CUs specifically.  From a cursory check I don't see this 
support directly integrated into the CUs, but since they are ClockedObject's 
(https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/clocked_object.hh#107,
 
https://gem5.googlesource.com/public/gem5/+/refs/heads/develop/src/sim/ClockedObject.py#50)
 my guess is you could use the above patch as a model to add the support you 
want.

If you do add it, it would be great if you can add this back as a feature for 
the community!

Thanks,
Matt

From: Mejbaul Islam, Kazi M. via gem5-users 
Sent: Monday, April 3, 2023 3:49 AM
To: gem5-users@gem5.org 
Cc: Mejbaul Islam, Kazi M. 
Subject: [gem5-users] How to change voltage and frequency of individual 
ComputeUnit for GPU?

Hello,

In gem5/configs/example/apu_se.py, ComputeUnit is used to build GPU. Is there 
any way to change voltage and frequency of each individual ComputeUnit?

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


[gem5-users] Re: gem5::cxxConfigInit is missing while trying to build utils/tlm examples

2023-04-03 Thread Giacomo Travaglini via gem5-users
This has been fixed by:

https://gem5-review.googlesource.com/c/public/gem5/+/66851/3

And it will be available in next release

Kind Regards

Giacomo

From: Artak Arakelyan via gem5-users 
Reply to: The gem5 Users mailing list 
Date: Monday, 3 April 2023 at 15:49
To: "gem5-users@gem5.org" 
Cc: Artak Arakelyan 
Subject: [gem5-users] gem5::cxxConfigInit is missing while trying to build 
utils/tlm examples

I'm trying to build the utils/tlm examples following the README

the compiler reports
build/tlm/sim_control.cc:75:11: error: 'cxxConfigInit' is not a member of 'gem5'
 gem5::cxxConfigInit();
   ^

grep does not find any  cxxConfigInit declaration in gem5 cloned repo

The --with-cxx-config has been set while compiling the libgem5_opt.so according 
to README


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.
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] gem5::cxxConfigInit is missing while trying to build utils/tlm examples

2023-04-03 Thread Artak Arakelyan via gem5-users
I'm trying to build the utils/tlm examples following the README

the compiler reports
build/tlm/sim_control.cc:75:11: error: 'cxxConfigInit' is not a member of
'gem5'
 gem5::cxxConfigInit();
   ^

grep does not find any  cxxConfigInit declaration in gem5 cloned repo

The --with-cxx-config has been set while compiling the libgem5_opt.so
according to README
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Print Packet Content /Flit Content

2023-04-03 Thread Lissiyas Antony via gem5-users
Hello Srikant.

Sorry for the delayed reply and thank you for your information. I've got
the data block values.
However, I am a little confused regarding the block size and address size.

For example, for the below packet:-

[PacketId=11144 Type=0 [ResponseMsg: addr = [0xd5e040, line 0xd5e040] Type
= MEMORY_DATA Sender = Directory-12 Destination = [NetDest (20)  - 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0  - 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0  -  - 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - ]
DataBlk = [ 0x77 0x8 0xf 0xb6 0x44 0x24 0x1e 0x48 0xf7 0xd8 0x48 0x83 0xc4
0x28 0x5b 0x5d 0x41 0x5c 0x41 0x5d 0x41 0x5e 0x41 0x5f 0xc3 0x48 0xc7 0xc0
0xff 0xff 0xff 0xff 0xc3 0x66 0x66 0x2e 0xf 0x1f 0x84 0x0 0x0 0x0 0x0 0x0
0xf 0x1f 0x40 0x0 0x41 0x57 0x41 0x56 0x41 0x55 0x41 0x54 0x55 0x53 0x48
0x81 0xec 0xa0 0x0 0x0 ] Dirty = 0 AckCount = 0 MessageSize = Response_Data
],Src Router=12 Dest Router=1 ]

I believe by default GARNET, the data packets have a payload of 576 bits/72
byte (64-bit address and 512-bit data).  But the addr =  0xd5e040 is  24
bits.

Could you please let me know the default address size or what size the '
addr = [0xd5e040,' referring to.

Looking forward to hearing from you.

Thanks.
Lissiyas Antony



On Thu, 23 Mar 2023 at 22:49, Srikant Bharadwaj  wrote:

> The DataBlk should show the correct hex values. However, you might be
> looking at data requests. Ensure that you look at data responses when
> loading data.
> What kind of application/workload are you running? Synthetic simulations
> always have 0x0 data values in packets.
>
> Srikant
>
>
> On Thu, Mar 23, 2023 at 3:21 AM Lissiyas Antony via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hello there,
>>
>> Somebody help me with , to print the content of the Packets in hex values.
>>
>> I've dereference a pointer '*m_msg_ptr* ' ,However DataBlk of all the
>> packets are showing 0x0;
>>
>> [RequestMsg: addr = [0x40, line 0x40] Type = MSG Requestor = L1Cache-0
>> Destination = [NetDest (20)  - 0 0 0 0  -  -  - 0 1 0 0  -  -  -  -  -  -
>>  -  -  -  -  -  -  -  -  -  - ] DataBlk = [ 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
>> 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
>> 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
>> 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 ]
>> MessageSize = Control ]
>>
>> Is there any other option to display the content in the network interface
>> before the *flitisizeMessage.*
>>
>> any comments would be appreciated.
>>
>> Regards,
>> Lissiyas Antony
>>
>> --
>> LISSIYAS ANTONY
>>
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
>

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


[gem5-users] How to change voltage and frequency of individual ComputeUnit for GPU?

2023-04-03 Thread Mejbaul Islam, Kazi M. via gem5-users
Hello,

In gem5/configs/example/apu_se.py, ComputeUnit is used to build GPU. Is there 
any way to change voltage and frequency of each individual ComputeUnit?

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