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 "<string>", line 1, in <module>
File "build/ARM/python/m5/main.py", line 455, in main
exec(filecode, scope)
File "configs/example/se.py", line 254, in <module>
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 "<string>", line 1, in <module>
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 <listcomp>
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:[email protected]]
Sent: 21 June 2021 17:02
To: [email protected]
Cc: Gabriel Busnot <[email protected]>
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 -- [email protected]<mailto:[email protected]> To
unsubscribe send an email to
[email protected]<mailto:[email protected]>
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s