[gem5-users] Re: Enabling L1 and L2 prefetchers in Ruby

2021-07-16 Thread Gabriel Busnot via gem5-users
This is a complex question. CHI is an ARM protocol which obviously work for ARM 
ISA's... At least. Does it work for x86? There are good chances that the answer 
is "yes" because x86 memory model is more restrictive than ARM's. If you need 
an assertive answer though, I can't give it to you. This is tricky as the ISA 
memory model will interfere with the cache coherence protocol properties. You 
might be in trouble when running apps that make use of atomic instructions and 
memory fences. If you are familiar with memory consistency/coherency issues, 
you know waht I mean. If not, this is a good start to answer such question ;)

And if anyone has a guess on that... thanks in advance ;)

Gabriel
___
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: Enabling L1 and L2 prefetchers in Ruby

2021-07-16 Thread Majid Jalili via gem5-users
Thanks, that's great!
I just have a follow-up question: Can we have CHI for X86? I compiled gem5
for X86_CHI, and it was compiled successfully. However, I was wondering if
it would be working correctly in terms of functionality and for longer
runs?

On Fri, Jul 16, 2021 at 10:26 AM Gabriel Busnot via gem5-users <
gem5-users@gem5.org> wrote:

> Indeed, only MESI_two_level's L1 cache has a prefetcher, my bad. From
> here, your two only options to get an L2 prefetcher is either to use
> MESI_two_level or to add prefetcher support to MESI_three_level's L1 cache,
> which will not be an easy job, I think.
>
> CHI, which is a MOESI implementation, should support prefetching "soon". I
> don't know exactly what is missing to support it.
>
> Gabriel
> ___
> 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: Enabling L1 and L2 prefetchers in Ruby

2021-07-16 Thread Gabriel Busnot via gem5-users
Indeed, only MESI_two_level's L1 cache has a prefetcher, my bad. From here, 
your two only options to get an L2 prefetcher is either to use MESI_two_level 
or to add prefetcher support to MESI_three_level's L1 cache, which will not be 
an easy job, I think.

CHI, which is a MOESI implementation, should support prefetching "soon". I 
don't know exactly what is missing to support it.

Gabriel
___
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: Enabling L1 and L2 prefetchers in Ruby

2021-07-16 Thread Majid Jalili via gem5-users
Thanks for the reply!
I'm using MESI_Threee_Level. I checked both develop and stable branches.
Based n what I see, only one prefetcher is created at this line
https://github.com/gem5/gem5/blob/eb919229e63c4daa208a1d9e4856755c1e914154/configs/ruby/MESI_Three_Level.py#L129

Also, by looking at the state machine HTML, I did not see any extra states
for L1 and L2 prefetchers. For example, the variable prefecture is defined
here for L0:
https://github.com/gem5/gem5/blob/eb919229e63c4daa208a1d9e4856755c1e914154/src/mem/ruby/protocol/MESI_Three_Level-L0cache.sm#L49
But I do not see a similar variable for L1 or L2:
https://github.com/gem5/gem5/blob/eb919229e63c4daa208a1d9e4856755c1e914154/src/mem/ruby/protocol/MESI_Three_Level-L1cache.sm#L41

Majid

On Fri, Jul 16, 2021 at 2:50 AM Gabriel Busnot via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Majid,
>
> Which protocol are you using?
> With MESI_Two_Level and MESI_Three_Level, the L1 cache has an
> "enable_prefetch" boolean parameter, juste like the L0.
> You can then customize the prefetcher of each cache according to the
> options available in RubyPrefetcher.py.
>
> Best,
> Gabriel
> ___
> 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: Enabling L1 and L2 prefetchers in Ruby

2021-07-16 Thread Gabriel Busnot via gem5-users
Hi Majid,

Which protocol are you using?
With MESI_Two_Level and MESI_Three_Level, the L1 cache has an "enable_prefetch" 
boolean parameter, juste like the L0.
You can then customize the prefetcher of each cache according to the options 
available in RubyPrefetcher.py.

Best,
Gabriel
___
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