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 1000000000000 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_routing=false
\\buffer_size=4
\\clk_domain=system.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 <gem5-users@gem5.org>
Cc: Gabriel Busnot <gabriel.bus...@arteris.com>; Javed Osmany 
<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 
<gabriel.bus...@arteris.com<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], 
<other parameters>) ruby_system.big_cluster = 
CHI_RNF(system.cpu[-options.num_cpus_big:], <other parameters>)
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

Attachment: CHI.py
Description: CHI.py

Attachment: 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

Reply via email to