[gem5-users] Re: [Big, Little] clusters with CHI and SE mode

2021-06-29 Thread Javed Osmany via gem5-users
Hello Gabriel

I have now fixed the issue causing the error. It was related to incorrect 
generation of the bigCluster and littleCluster.
The HelloWorld program is now executing okay when configured to generate the 
bigCluster and littleCluster.

There is one anomaly I wanted to clarify:

1) Running the HelloWorld program, but CHI.py configured for no clusters, I get 
the following info when I add print statement for cntrl at line 224 in CHI.py.

The command used to run being:

./build/ARM/gem5.opt configs/example/se_kirin_custom.py --ruby --topology=Pt2Pt 
--cpu-type=DerivO3CPU --num-cpus=4 --num-dirs=1 --num-l3caches=1 
--num-cpu-bigclust=1 --num-cpu-littleclust=3 --num-clusters=0 
--cpu-type-bigclust=DerivO3CPU --cpu-type-littleclust=DerivO3CPU 
--cmd=tests/test-progs/hello/bin/arm/linux/hello


CHI.py -- Cntrl is .cpu0.l1i
CHI.py -- Cntrl is .cpu0.l1d
CHI.py -- Cntrl is .cpu0.l2
CHI.py -- Cntrl is .cpu1.l1i
CHI.py -- Cntrl is .cpu1.l1d
CHI.py -- Cntrl is .cpu1.l2
CHI.py -- Cntrl is .cpu2.l1i
CHI.py -- Cntrl is .cpu2.l1d
CHI.py -- Cntrl is .cpu2.l2
CHI.py -- Cntrl is .cpu3.l1i
CHI.py -- Cntrl is .cpu3.l1d
CHI.py -- Cntrl is .cpu3.l2
CHI.py -- Cntrl is .ruby.hnf.cntrl
CHI.py -- Cntrl is .ruby.snf.cntrl

As can be seen the L2 Caches for each CPU is private, as expected.

2) Running the HelloWorld program, but CHI.py configured for [bigCluster, 
littleCluster], I get the following info when I add print statement for cntrl 
at line 224 in CHI.py. The command used to run being


./build/ARM/gem5.opt configs/example/se_kirin_custom.py --ruby --topology=Pt2Pt 
--cpu-type=DerivO3CPU --num-cpus=4 --num-dirs=1 --num-l3caches=1 
--num-cpu-bigclust=1 --num-cpu-littleclust=3 --num-clusters=2 
--cpu-type-bigclust=DerivO3CPU --cpu-type-littleclust=DerivO3CPU 
--cmd=tests/test-progs/hello/bin/arm/linux/hello



CHI.py -- Cntrl is .cpu0.l1i
CHI.py -- Cntrl is .cpu0.l1d
CHI.py -- Cntrl is .cpu1.l1i
CHI.py -- Cntrl is .cpu1.l1d
CHI.py -- Cntrl is .cpu2.l1i
CHI.py -- Cntrl is .cpu2.l1d
CHI.py -- Cntrl is .cpu0.l2
CHI.py -- Cntrl is .cpu1.l2
CHI.py -- Cntrl is .cpu2.l2
CHI.py -- Cntrl is .cpu3.l1i
CHI.py -- Cntrl is .cpu3.l1d
CHI.py -- Cntrl is .cpu3.l2
CHI.py -- Cntrl is .ruby.hnf.cntrl
CHI.py -- Cntrl is .ruby.snf.cntrl

In this case, littleCluster consists of CPU[2:0] and bigCluster consists of 
CPU[3].
Now for CPU[2:0], the debug info being:

CHI.py -- Cntrl is .cpu0.l2
  CHI.py -- Cntrl is .cpu1.l2
  CHI.py -- Cntrl is .cpu2.l2


Is this showing that the L2Cache is shared between CPU[2:0] or is it showing 
that each of CPU[0], CPU[1] and CPU[2] has a private L2Cache?

Similarly for CPU[3]'s L2 Cache.

Thanks in advance

Best regards
JO
-Original Message-
From: Javed Osmany
Sent: 28 June 2021 12:58
To: gem5 users mailing list 
Cc: Gabriel Busnot ; Javed Osmany 

Subject: RE: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hello Gabriel

Thank you for the pointer.

Best regards

J.Osmany

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org]
Sent: 28 June 2021 12:49
To: gem5-users@gem5.org<mailto:gem5-users@gem5.org>
Cc: Gabriel Busnot 
mailto:gabriel.bus...@arteris.com>>
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

This is an error from the dot file processing tool.
For some reason, likely a hard coded string buffer size, it does not support 
lines longer that 16384 lines.
Luckily, you don’t need it and can ignore this error.

The second error says that one of the parameters has no set value.
In your case, this is data_channel_size in Cache_Controller.
See CHI.py line 225 to see what you need to do.

Best,
Gabriel
___
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To 
unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto: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: [Big, Little] clusters with CHI and SE mode

2021-06-28 Thread Javed Osmany via gem5-users
Hello Gabriel

Thank you for the pointer.

Best regards

J.Osmany

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org] 
Sent: 28 June 2021 12:49
To: gem5-users@gem5.org
Cc: Gabriel Busnot 
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

This is an error from the dot file processing tool.
For some reason, likely a hard coded string buffer size, it does not support 
lines longer that 16384 lines.
Luckily, you don’t need it and can ignore this error.

The second error says that one of the parameters has no set value.
In your case, this is data_channel_size in Cache_Controller.
See CHI.py line 225 to see what you need to do.

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: [Big, Little] clusters with CHI and SE mode

2021-06-28 Thread Gabriel Busnot via gem5-users
Hi Javed,

This is an error from the dot file processing tool.
For some reason, likely a hard coded string buffer size, it does not support 
lines longer that 16384 lines.
Luckily, you don’t need it and can ignore this error.

The second error says that one of the parameters has no set value.
In your case, this is data_channel_size in Cache_Controller.
See CHI.py line 225 to see what you need to do.

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] Re: [Big, Little] clusters with CHI and SE mode

2021-06-28 Thread Javed Osmany via gem5-users
Hi Gabriel

Outlook blocked the attachments.
Resending the two files as WinRar archive.

Best regards
JO


_
From: Javed Osmany
Sent: 28 June 2021 11:35
To: gem5 users mailing list 
Cc: Gabriel Busnot ; Javed Osmany 

Subject: RE: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode


Hello Gabriel

Have tried to follow your flow. Have generated the custom version of CHI.py and 
se.py (both files attached).

I have used HelloWorld program to pipe flush.

The command I have used to run being:

./build/ARM/gem5.opt configs/example/se_kirin_custom.py --ruby --topology=Pt2Pt 
--cpu-type=DerivO3CPU --num-cpus=4 --num-dirs=1 --num-l3caches=1 
--num-cpu-bigclust=1 --num-cpu-littleclust=3 --num-clusters=2 
--cpu-type-bigclust=DerivO3CPU --cpu-type-littleclust=DerivO3CPU 
--cmd=tests/test-progs/hello/bin/arm/linux/hello


1.  The Ruby memory system seems to have been generated with the two 
clusters (bigCluster and littleCluster) (checking m5out/config.ini)

[system.ruby]
type=RubySystem
children=bigCluster clk_domain hnf littleCluster network power_state snf
access_backing_store=false
all_instructions=false
block_size_bytes=64
clk_domain=system.ruby.clk_domain
eventq_index=0
hot_lines=false
memory_size_bits=48
num_of_sequencers=2
number_of_virtual_networks=4
phys_mem=Null
power_model=
power_state=system.ruby.power_state
randomization=false
system=system

2. However, I am getting the following run time errors:

warn: sys_port_proxy.slave is deprecated. `slave` is now called `in_ports`
warn: cntrl.memory is deprecated. The request port for Ruby memory output to 
the main memory is now called `memory_out_port`

Global frequency set at 1 ticks per second
warn: system.ruby.network.ext_links0.ext_node adopting orphan SimObject param 
'sequencer'
warn: system.ruby.network.ext_links1.ext_node adopting orphan SimObject param 
'sequencer'
['dot', '-Tsvg', '/tmp/tmp6kqukhxa'] return code: 1

stdout, stderr:
 b''
b'Error: /tmp/tmp6kqukhxa: syntax error in line 5993 scanning a quoted string 
(missing endquote? longer than 16384?)\nString 
starting:"adaptive_routingfalse\\buffer_size4\\clk_domainsystem.rub\n'
 <== Not sure which file the syntax error is occurring

warn: failed to generate dot output from m5out/config.dot
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
fatal: system.cpu0.l1d.data_channel_size without default or user set value


Any pointers as to where I should look to resolve the  errors?

Thanks in advance
JO



-Original Message-
From: Javed Osmany
Sent: 24 June 2021 10:09
To: gem5 users mailing list mailto:gem5-users@gem5.org>>
Cc: Gabriel Busnot 
mailto:gabriel.bus...@arteris.com>>; Javed Osmany 
mailto:javed.osm...@huawei.com>>
Subject: RE: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hello Gabriel

Thank you for the updated information.
Will try to follow for the implementation.

Best regards
JO

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org]
Sent: 24 June 2021 08:33
To: gem5-users@gem5.org<mailto:gem5-users@gem5.org>
Cc: Gabriel Busnot 
mailto:gabriel.bus...@arteris.com>>
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

2- Yes, I meant to define L1ICache_big, L1ICache_little, etc. If you need 
different cache configurations. However, I didn't get that you need private 
L2s. But if you call the big and little clusters by the term "cluster", then I 
believe that each cluster has a single entry point to the coherent interconnect 
which usually is the master port of a shared cache. In that case, the CHI RN-F 
is what maps to such concept of CPU cluster. I would recommend starting with 
private L1s and shared L2 until things work, as this is natively supported by 
the CHI config files. Then, hack your way through the CHI config files to make 
the L2 private and add a shared L3 if needed. You will have to modify 
CHI_config.CHI_RNF.

3- create_system in CHI.py expects system to be populated with CPUs 
(system.cpu). The only thing that differs between a CPU type and another really 
is its accuracy : atomic, minor, O3, etc. The performance of the simulated CPU 
then depends on the specific parameters of that CPU but you can look at that 
later. Having said that, I would write something like:

assert(len(system.cpu) == options.num_cpus_little + options.num_cpus.big) 
ruby_system.little_cluster = CHI_RNF(system.cpu[:options.num_cpus_little], 
) ruby_system.big_cluster = 
CHI_RNF(system.cpu[-options.num_cpus_big:], )
ruby_system.little_cluster.addPrivL2Cache(...)
ruby_system.big_cluster.addPrivL2Cache(...)

Best,
gabriel
___
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To 
unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto:gem5-users-le...@gem5.or

[gem5-users] Re: [Big, Little] clusters with CHI and SE mode

2021-06-28 Thread Javed Osmany via gem5-users
Hello Gabriel

Have tried to follow your flow. Have generated the custom version of CHI.py and 
se.py (both files attached).

I have used HelloWorld program to pipe flush.

The command I have used to run being:

./build/ARM/gem5.opt configs/example/se_kirin_custom.py --ruby --topology=Pt2Pt 
--cpu-type=DerivO3CPU --num-cpus=4 --num-dirs=1 --num-l3caches=1 
--num-cpu-bigclust=1 --num-cpu-littleclust=3 --num-clusters=2 
--cpu-type-bigclust=DerivO3CPU --cpu-type-littleclust=DerivO3CPU 
--cmd=tests/test-progs/hello/bin/arm/linux/hello


1.  The Ruby memory system seems to have been generated with the two 
clusters (bigCluster and littleCluster) (checking m5out/config.ini)

[system.ruby]
type=RubySystem
children=bigCluster clk_domain hnf littleCluster network power_state snf
access_backing_store=false
all_instructions=false
block_size_bytes=64
clk_domain=system.ruby.clk_domain
eventq_index=0
hot_lines=false
memory_size_bits=48
num_of_sequencers=2
number_of_virtual_networks=4
phys_mem=Null
power_model=
power_state=system.ruby.power_state
randomization=false
system=system

2. However, I am getting the following run time errors:

warn: sys_port_proxy.slave is deprecated. `slave` is now called `in_ports`
warn: cntrl.memory is deprecated. The request port for Ruby memory output to 
the main memory is now called `memory_out_port`

Global frequency set at 1 ticks per second
warn: system.ruby.network.ext_links0.ext_node adopting orphan SimObject param 
'sequencer'
warn: system.ruby.network.ext_links1.ext_node adopting orphan SimObject param 
'sequencer'
['dot', '-Tsvg', '/tmp/tmp6kqukhxa'] return code: 1

stdout, stderr:
 b''
b'Error: /tmp/tmp6kqukhxa: syntax error in line 5993 scanning a quoted string 
(missing endquote? longer than 16384?)\nString 
starting:"adaptive_routingfalse\\buffer_size4\\clk_domainsystem.rub\n'
 <== Not sure which file the syntax error is occurring

warn: failed to generate dot output from m5out/config.dot
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
fatal: system.cpu0.l1d.data_channel_size without default or user set value


Any pointers as to where I should look to resolve the  errors?

Thanks in advance
JO



-Original Message-
From: Javed Osmany
Sent: 24 June 2021 10:09
To: gem5 users mailing list 
Cc: Gabriel Busnot ; Javed Osmany 

Subject: RE: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hello Gabriel

Thank you for the updated information.
Will try to follow for the implementation.

Best regards
JO

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org]
Sent: 24 June 2021 08:33
To: gem5-users@gem5.org<mailto:gem5-users@gem5.org>
Cc: Gabriel Busnot 
mailto:gabriel.bus...@arteris.com>>
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

2- Yes, I meant to define L1ICache_big, L1ICache_little, etc. If you need 
different cache configurations. However, I didn't get that you need private 
L2s. But if you call the big and little clusters by the term "cluster", then I 
believe that each cluster has a single entry point to the coherent interconnect 
which usually is the master port of a shared cache. In that case, the CHI RN-F 
is what maps to such concept of CPU cluster. I would recommend starting with 
private L1s and shared L2 until things work, as this is natively supported by 
the CHI config files. Then, hack your way through the CHI config files to make 
the L2 private and add a shared L3 if needed. You will have to modify 
CHI_config.CHI_RNF.

3- create_system in CHI.py expects system to be populated with CPUs 
(system.cpu). The only thing that differs between a CPU type and another really 
is its accuracy : atomic, minor, O3, etc. The performance of the simulated CPU 
then depends on the specific parameters of that CPU but you can look at that 
later. Having said that, I would write something like:

assert(len(system.cpu) == options.num_cpus_little + options.num_cpus.big) 
ruby_system.little_cluster = CHI_RNF(system.cpu[:options.num_cpus_little], 
) ruby_system.big_cluster = 
CHI_RNF(system.cpu[-options.num_cpus_big:], )
ruby_system.little_cluster.addPrivL2Cache(...)
ruby_system.big_cluster.addPrivL2Cache(...)

Best,
gabriel
___
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To 
unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto:gem5-users-le...@gem5.org> 
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s



CHI.py
Description: CHI.py


se_kirin_custom.py
Description: se_kirin_custom.py
___
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: [Big, Little] clusters with CHI and SE mode

2021-06-24 Thread Javed Osmany via gem5-users
Hello Gabriel

Thank you for the updated information.
Will try to follow for the implementation.

Best regards
JO

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org] 
Sent: 24 June 2021 08:33
To: gem5-users@gem5.org
Cc: Gabriel Busnot 
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

2- Yes, I meant to define L1ICache_big, L1ICache_little, etc. If you need 
different cache configurations. However, I didn't get that you need private 
L2s. But if you call the big and little clusters by the term "cluster", then I 
believe that each cluster has a single entry point to the coherent interconnect 
which usually is the master port of a shared cache. In that case, the CHI RN-F 
is what maps to such concept of CPU cluster. I would recommend starting with 
private L1s and shared L2 until things work, as this is natively supported by 
the CHI config files. Then, hack your way through the CHI config files to make 
the L2 private and add a shared L3 if needed. You will have to modify 
CHI_config.CHI_RNF.

3- create_system in CHI.py expects system to be populated with CPUs 
(system.cpu). The only thing that differs between a CPU type and another really 
is its accuracy : atomic, minor, O3, etc. The performance of the simulated CPU 
then depends on the specific parameters of that CPU but you can look at that 
later. Having said that, I would write something like:

assert(len(system.cpu) == options.num_cpus_little + options.num_cpus.big) 
ruby_system.little_cluster = CHI_RNF(system.cpu[:options.num_cpus_little], 
) ruby_system.big_cluster = 
CHI_RNF(system.cpu[-options.num_cpus_big:], )
ruby_system.little_cluster.addPrivL2Cache(...)
ruby_system.big_cluster.addPrivL2Cache(...)

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: [Big, Little] clusters with CHI and SE mode

2021-06-24 Thread Gabriel Busnot via gem5-users
Hi Javed,

2- Yes, I meant to define L1ICache_big, L1ICache_little, etc. If you need 
different cache configurations. However, I didn't get that you need private 
L2s. But if you call the big and little clusters by the term "cluster", then I 
believe that each cluster has a single entry point to the coherent interconnect 
which usually is the master port of a shared cache. In that case, the CHI RN-F 
is what maps to such concept of CPU cluster. I would recommend starting with 
private L1s and shared L2 until things work, as this is natively supported by 
the CHI config files. Then, hack your way through the CHI config files to make 
the L2 private and add a shared L3 if needed. You will have to modify 
CHI_config.CHI_RNF.

3- create_system in CHI.py expects system to be populated with CPUs 
(system.cpu). The only thing that differs between a CPU type and another really 
is its accuracy : atomic, minor, O3, etc. The performance of the simulated CPU 
then depends on the specific parameters of that CPU but you can look at that 
later. Having said that, I would write something like:

assert(len(system.cpu) == options.num_cpus_little + options.num_cpus.big)
ruby_system.little_cluster = CHI_RNF(system.cpu[:options.num_cpus_little], 
)
ruby_system.big_cluster = CHI_RNF(system.cpu[-options.num_cpus_big:], )
ruby_system.little_cluster.addPrivL2Cache(...)
ruby_system.big_cluster.addPrivL2Cache(...)

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] Re: [Big, Little] clusters with CHI and SE mode

2021-06-23 Thread Javed Osmany via gem5-users
Hello Gabriel

Thank you for the pointer.
Made a start on this and just wanted to check if I have understood you 
correctly..

>> 1- Define two more options in CHI.py to specify the number of big (B) 
and the number of little (L) cpus from the command line

Okay, Done.

   >>  2- Define the L1ICache, L1DCache and L2DCache for each the big and the 
little cluster

Do you mean for each of the Big and Little CPUs?
I originally want the L1$ and L2$ to be private for each CPU.

>> 3- Pass the first B cpus as a single list together with the correct 
caches to the first CHI_RNF. Assign the result to ruby_system.bigCluster.

So I tried to following code: Initially assuming that the L1 caches are the 
same for all the CPU is the system

big_cpu = []
for i in range(int(options.num_cpu_bigclust)):
big_cpu.append(options.cpu_type_bigclust)

print ("Big CPUs are: %s" % (big_cpu))   ## Since number of big cluster 
cpu is set to 1, it prints out: Big CPUs are: ['DerivO3CPU']

# now define the big cluster
# pass the b_cpu list to the CHI_RNF() class
ruby_system.bigCluster = [ CHI_RNF([b_cpu], ruby_system, L1ICache, 
L1DCache, system.cache_line_size.value)
  for b_cpu in big_cpu ]


I am not sure if the above code matches your expectation (high level)??.
I am passing the number of big cpus as a list and currently assuming the 
default L1ICache and L1DCache.

Furthermore, the above generates the following error: For both the Big and 
Little CPU I have used DerivO3CPU


Error: could not create sytem for ruby protocol CHI
Traceback (most recent call last):
  File "", line 1, in 
  File "build/ARM/python/m5/main.py", line 455, in main
exec(filecode, scope)
  File "configs/example/se.py", line 254, in 
Ruby.create_system(options, False, system)
  File "/home/j00533938/github/gem5-21.0/gem5/configs/ruby/Ruby.py", line 194, 
in create_system
% protocol)
  File "", line 1, in 
  File "/home/j00533938/github/gem5-21.0/gem5/configs/ruby/CHI.py", line 279, 
in create_system
for b_cpu in big_cpu ]
  File "/home/j00533938/github/gem5-21.0/gem5/configs/ruby/CHI.py", line 279, 
in 
for b_cpu in big_cpu ] <== This is complaining about the above code that I 
have added, highlighted in purple
  File "/home/j00533938/github/gem5-21.0/gem5/configs/ruby/CHI_config.py", line 
401, in __init__
ruby_system = ruby_system)
AttributeError: 'str' object has no attribute 'inst_sequencer'

The command line I have used being:

./build/ARM/gem5.opt configs/example/se.py --ruby --topology=Pt2Pt 
--cpu-type=DerivO3CPU --num-cpus=4 --num-dirs=1 --num-l3caches=1 
--num-cpu-bigclust=1 --num-cpu-littleclust=3 --cpu-type-bigclust=DerivO3CPU  
--cpu-type-littleclust=DerivO3CPU 
--cmd=tests/test-progs/hello/bin/arm/linux/hello


The issue seems to be the following code that I have added:

ruby_system.bigCluster = [ CHI_RNF([b_cpu], ruby_system, L1ICache, L1DCache, 
system.cache_line_size.value)
  for b_cpu in big_cpu ]


Any pointers to help resolve the issue, much appreciated.

Best regards
JO
-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org]
Sent: 21 June 2021 17:02
To: gem5-users@gem5.org
Cc: Gabriel Busnot 
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

I don't think that you want to use devices.CpuCluster as it is used to manage 
classic caches while you want to use Ruby caches.

My first approach would be, using se.py as is:
1- Define two more options in CHI.py to specify the number of big (B) and 
the number of little (L) cpus from the command line
2- Define the L1ICache, L1DCache and L2DCache for each the big and the 
little cluster
3- Pass the first B cpus as a single list together with the correct caches 
to the first CHI_RNF. Assign the result to ruby_system.bigCluster.
4- Pass the last L cpus as a single list together with the correct caches 
to the second CHI_RNF. Assign the result to ruby_system.littleCluster.
5- Add the private L2 cache of the correct type to both cluster.
Keep everything else as is.

Best,
Gabriel
___
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To 
unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto: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: [Big, Little] clusters with CHI and SE mode

2021-06-21 Thread Javed Osmany via gem5-users
Many thanks for the pointers, Gabriel.

Best Regards

J.Osmany
 

-Original Message-
From: Gabriel Busnot via gem5-users [mailto:gem5-users@gem5.org] 
Sent: 21 June 2021 17:02
To: gem5-users@gem5.org
Cc: Gabriel Busnot 
Subject: [gem5-users] Re: [Big, Little] clusters with CHI and SE mode

Hi Javed,

I don't think that you want to use devices.CpuCluster as it is used to manage 
classic caches while you want to use Ruby caches.

My first approach would be, using se.py as is:
1- Define two more options in CHI.py to specify the number of big (B) and 
the number of little (L) cpus from the command line
2- Define the L1ICache, L1DCache and L2DCache for each the big and the 
little cluster
3- Pass the first B cpus as a single list together with the correct caches 
to the first CHI_RNF. Assign the result to ruby_system.bigCluster.
4- Pass the last L cpus as a single list together with the correct caches 
to the second CHI_RNF. Assign the result to ruby_system.littleCluster.
5- Add the private L2 cache of the correct type to both cluster.
Keep everything else as is.

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: [Big, Little] clusters with CHI and SE mode

2021-06-21 Thread Gabriel Busnot via gem5-users
Hi Javed,

I don't think that you want to use devices.CpuCluster as it is used to manage 
classic caches while you want to use Ruby caches.

My first approach would be, using se.py as is:
1- Define two more options in CHI.py to specify the number of big (B) and 
the number of little (L) cpus from the command line
2- Define the L1ICache, L1DCache and L2DCache for each the big and the 
little cluster
3- Pass the first B cpus as a single list together with the correct caches 
to the first CHI_RNF. Assign the result to ruby_system.bigCluster.
4- Pass the last L cpus as a single list together with the correct caches 
to the second CHI_RNF. Assign the result to ruby_system.littleCluster.
5- Add the private L2 cache of the correct type to both cluster.
Keep everything else as is.

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