[gem5-users] gem5 v20 released!

2020-05-28 Thread Bobby Bruce via gem5-users
Dear all,

gem5 v20.0.0.0 has officially been released!

In keeping with our master-as-stable policy, the latest version of gem5 can
be obtained by pulling the code from the master branch:
https://gem5.googlesource.com/public/gem5. There have been a lot of changes
since gem5 19, which we have highlighted in our release-notes:
https://gem5.googlesource.com/public/gem5/+/refs/heads/master/RELEASE-NOTES.md.
Please familiarize yourself with these changes, particularly API changes
which may impact how you interact with gem5.

Jason Lowe-Power has written a blog post about gem5 20,
http://www.gem5.org/project/2020/05/21/gem5-20.html, which goes into detail
about what has been included in this release, provides a  leaderboard
ranking community members by contribution, and notes the lessons we have
learned over the past few months.

We wish to thank everyone who has contributed to the release of gem5 20. It
is very much appreciated. We look forward to your continued support in the
development of gem5 20.1!

Kind regards,
Bobby

--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net

gem5 Virtual Workshop open for registration!! [Free to join, June 3rd --
4th] 
___
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 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: Problem compiling gem5 with Ubuntu 20.04

2020-05-28 Thread Samon Shivastar via gem5-users
Hello Jason,

Thanks a lot! "python2 /usr/bin/scons" worked. But there seems to be
another issue that was not there before.
In "m5out" folder, the "config.dot" is no being generated. Only three files
are in the folder:
i) stats.txt
ii) config.ini
iii) config.json
Therefore, I cannot get "visual" description of my configuration. I also
installed "graphviz" and "python-pydot" but none seems to work.
Is there any workaround? As a side note, it worked on older Ubuntu distos
like 16.04 and 18.04 without any issues.

Thanks
Sam

On Wed, May 27, 2020 at 12:57 PM Jason Lowe-Power 
wrote:

> Hi Sam,
>
> First, if you use "python2 `which scons`" it should work. Or "python2
> /usr/bin/scons".
>
> Second, we're hoping to release gem5-20 today or tomorrow. That said,
> we've been saying "today or tomorrow" for almost two weeks... I think we
> mean it this time!
>
> Cheers,
> Jason
>
> On Wed, May 27, 2020 at 10:52 AM Samon Shivastar 
> wrote:
>
>> Hi Jason,
>>
>> Thanks for your reply. I use the following command and still got the same
>> error:
>> *python2 scons build/X86/gem5.opt -j6*
>> python2: can't open file 'scons': [Errno 2] No such file or directory
>>
>> I was wondering if "a temporary issue with python3 support" has been
>> resolved or it is still a working progress.
>>
>> Thanks
>> Sam
>>
>> On Mon, May 18, 2020 at 3:07 PM Jason Lowe-Power 
>> wrote:
>>
>>> Hi Sam,
>>>
>>> This is a temporary issue with python3 support. Once gem5-20 is released
>>> (hopefully today or tomorrow), this issue should be resolved. In the
>>> meantime, you can try to downgrade to python 2 and run `python2 scons`
>>> or use an ubuntu 18.04 docker image (see
>>> http://www.gem5.org/documentation/general_docs/building#docker for
>>> details.).
>>>
>>> Cheers,
>>> Jason
>>>
>>> On Mon, May 18, 2020 at 1:03 PM Samon Shivastar via gem5-users <
>>> gem5-users@gem5.org> wrote:
>>>
 Dear All,

 I got a problem compiling gem5 latest repo on Ubuntu 20.04.

 It gives following error:

 scons build/X86/gem5.opt -j6
 scons: Reading SConscript files ...
 Warning: Failed to find git repo directory: a bytes-like object is
 required, not 'str'
 TypeError: argument should be integer or bytes-like object, not 'str':
   File "/home/samsi/gem5/SConstruct", line 355:
 main['GCC'] = CXX_version and CXX_version.find('g++') >= 0

 Any ideas how to fix this error?

 Thanks in advance.

 Sam
 ___
 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: Problem compiling gem5 with Ubuntu 20.04

2020-05-28 Thread Mouhsen Ibrahim via gem5-users
Hi Sam,

I think Jason's advice is enough to compile gem5 on Ubuntu 20.04, however,
if you face any further issues please let me know I am running gem5 on my
Ubuntu 20.04 without any issues.

Best regards
Mouhsen Ibrahim

On Wed, May 27, 2020 at 8:57 PM Jason Lowe-Power via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Sam,
>
> First, if you use "python2 `which scons`" it should work. Or "python2
> /usr/bin/scons".
>
> Second, we're hoping to release gem5-20 today or tomorrow. That said,
> we've been saying "today or tomorrow" for almost two weeks... I think we
> mean it this time!
>
> Cheers,
> Jason
>
> On Wed, May 27, 2020 at 10:52 AM Samon Shivastar 
> wrote:
>
>> Hi Jason,
>>
>> Thanks for your reply. I use the following command and still got the same
>> error:
>> *python2 scons build/X86/gem5.opt -j6*
>> python2: can't open file 'scons': [Errno 2] No such file or directory
>>
>> I was wondering if "a temporary issue with python3 support" has been
>> resolved or it is still a working progress.
>>
>> Thanks
>> Sam
>>
>> On Mon, May 18, 2020 at 3:07 PM Jason Lowe-Power 
>> wrote:
>>
>>> Hi Sam,
>>>
>>> This is a temporary issue with python3 support. Once gem5-20 is released
>>> (hopefully today or tomorrow), this issue should be resolved. In the
>>> meantime, you can try to downgrade to python 2 and run `python2 scons`
>>> or use an ubuntu 18.04 docker image (see
>>> http://www.gem5.org/documentation/general_docs/building#docker for
>>> details.).
>>>
>>> Cheers,
>>> Jason
>>>
>>> On Mon, May 18, 2020 at 1:03 PM Samon Shivastar via gem5-users <
>>> gem5-users@gem5.org> wrote:
>>>
 Dear All,

 I got a problem compiling gem5 latest repo on Ubuntu 20.04.

 It gives following error:

 scons build/X86/gem5.opt -j6
 scons: Reading SConscript files ...
 Warning: Failed to find git repo directory: a bytes-like object is
 required, not 'str'
 TypeError: argument should be integer or bytes-like object, not 'str':
   File "/home/samsi/gem5/SConstruct", line 355:
 main['GCC'] = CXX_version and CXX_version.find('g++') >= 0

 Any ideas how to fix this error?

 Thanks in advance.

 Sam
 ___
 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 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: Stat dump after each N instructions - CPU and/or AMD GPU

2020-05-28 Thread Rajeev Pal via gem5-users
My understanding is that m5 ops need to be called from within a benchmark.
I am not sure how I can get the instruction count from within a benchmark.

But Matthew's idea works for the CPU side. Only issue is
cpu.simpoint_start_insts stops based on the instruction count of individual
cpus.
I would like to stop based on total instruction count of *all* cpus.
@Matthew: Do you have any idea as to how I can achieve this?

For the GPU side, I did a hack. For reference:
In wavefront.cc just after incrementing the *numInstrExecuted*, I totalled
numInstrExecuted (cu.numInstrExecuted.value()) for all CUs.
Then as pointed out by Muhammet, if I have reached my desired instruction
count, I schedule a Stats::schedStatEvent(true, true, curTick()+1, 0) for
the next tick.
I pass in the instruction count size as a parameter to each Wavefront from
python configs.

Thank you all.
This was very helpful.

On Wed, May 27, 2020 at 10:49 AM Poremba, Matthew 
wrote:

> [AMD Official Use Only - Internal Distribution Only]
>
>
>
> You could probably use the simpoint_start_insts vector param in CPU to
> have simulation exit to your python script and dump/reset stats there. For
> example:
>
>
>
> cpu.simpoint_start_insts = [x*N for x in range(1000)]
>
>
>
> where N is the instruction sample period. You’d have to know the
> approximate number of total instructions to figure out what to replace 1000
> with though.
>
>
>
>
>
> -Matt
>
>
>
> *From:* Matt Sinclair via gem5-users 
> *Sent:* Tuesday, May 26, 2020 7:39 PM
> *To:* Rajeev Pal 
> *Cc:* gem5 users mailing list ; Matt Sinclair <
> mattdsincl...@gmail.com>
> *Subject:* [gem5-users] Re: Stat dump after each N instructions - CPU
> and/or AMD GPU
>
>
>
> [CAUTION: External Email]
>
> Thanks, this is helpful Rajeev.  I am not an expert at this part of the
> simulator, but I believe the m5ops is indeed what you are looking for.
> After looking through the m5ops again, I don't think gem5 currently has
> exactly the feature you are looking for -- m5_dump_reset_stats is the
> closest, but it resets based on time, and you want instructions (as you and
> Muhammet discussed above).  So, my guess is that you should look at how
> m5_dump_reset_stats is implemented (start with include/gem5/m5ops.h), and
> create a new version of it that dumps/resets based on instructions instead.
>
>
>
> Matt
>
>
>
> On Tue, May 26, 2020 at 4:40 PM Rajeev Pal  wrote:
>
> schedStatEvent() would be helpful in case of tick based stat dumping.
>
> But I need instruction count based stat dumping.
>
>
>
> On Tue, May 26, 2020 at 5:28 PM Muhammet Abdullah Soytürk <
> muhammetabdullahsoyt...@gmail.com> wrote:
>
> I don't know how legal is this and whether it has side effects but you
> might try schedStatEvent
> 
> to schedule the dumps.
>
>
>
> Muhammet
>
>
>
> Matt Sinclair via gem5-users , 27 May 2020 Çar,
> 00:13 tarihinde şunu yazdı:
>
> I'm not sure if this is your ultimate problem, but if it only works on the
> CPU for the first N instructions, is N simply representing the point where
> you need a 64-bit counter instead of a 32-bit counter?
>
>
>
> Unfortunately I don't know the answer to your other questions, sorry.
> Perhaps you are thinking of the m5ops, which people often use for things
> like resetting stats:
> https://www.gem5.org/documentation/general_docs/m5ops/
> 
> ?
>
>
>
> Matt
>
>
>
> On Tue, May 26, 2020 at 2:12 PM Rajeev Pal via gem5-users <
> gem5-users@gem5.org> wrote:
>
> Hi All,
>
>
>
> Is it possible to dump and reset statistics after each N instructions for
> CPU and/or AMD GPU.
>
> I see that there is a *max_insts_any_thread* var for cpus. I was able to
> use it to stop simulation, dump and reset stats (from apu_se.py), but it
> only works for the *first* N instructions.
>
>
>
> (1) Is there any existing mechanism which I can leverage ?
>
>  There is a comInstEventQueue which I think is used to stop the
> simulation after first N instructions. Can I somehow use this ?
>
>
>
> (2) If not, then where and what sort of modifications will I need ? I need
> to do this for both CPU and AMD GPU.
>
>
>
> Thank you,
>
> Rajeev Pal
>
> ___
> 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] GEM5/Ruby and MESI_Three_Level protocol

2020-05-28 Thread Javed Osmany via gem5-users
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