[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

[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

[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,

[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

[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