Dear GEMS User
I have tried to run SPLASH2 benchmarks
on GEMS1.4 and SIMICS 3,0 on DNUCA environment.
After initialization of RUBY, and “c” is executed.
However, when I run executable file of
benchmark on Serengeti console, “Possible Deadlock
detected” error occurred.
In mfacet.py file
-------------------------------------------------------------------------------------------------------------------------------------------------------------
run_sim_command("load-module
ruby")
if network_topology:
run_sim_command('ruby0.setparam_str g_NETWORK_TOPOLOGY "%s"' %
network_topology)
run_sim_command("ruby0.setparam g_RANDOM_SEED %d" % random_seed)
run_sim_command("ruby0.setparam g_endpoint_bandwidth %d" % 1000)
run_sim_command("ruby0.setparam_str g_CACHE_DESIGN NUCACOL")
run_sim_command("ruby0.setparam
g_MEMORY_SIZE_BYTES 1073741824")
run_sim_command("ruby0.setparam g_NUM_PROCESSORS %d" % processors)
run_sim_command("ruby0.setparam g_PROCS_PER_CHIP %d" %
processors_per_chip)
run_sim_command("ruby0.setparam
g_NUM_L2_BANKS %d" % l2_banks)
run_sim_command("ruby0.setparam L2_CACHE_ASSOC 8")
run_sim_command("ruby0.setparam L2_CACHE_NUM_SETS_BITS 21")
run_sim_command("ruby0.setparam g_NUM_CHIPS 1")
run_sim_command("ruby0.setparam g_NUM_MEMORIES 1")
run_sim_command("ruby0.setparam g_NUM_DNUCA_BANK_SETS 2")
run_sim_command("ruby0.setparam_str REMOVE_SINGLE_CYCLE_DCACHE_FAST_PATH
true")
run_sim_command("ruby0.setparam_str g_DYNAMIC_TIMEOUT_ENABLED false")
run_sim_command("ruby0.setparam_str
g_adaptive_routing false")
run_sim_command("ruby0.setparam_str g_NUCA_PREDICTOR_CONFIG DNUCA")
run_sim_command("ruby0.setparam_str ENABLE_MIGRATION true")
run_sim_command("ruby0.setparam_str COLLECTOR_HANDLES_OFF_CHIP_REQUESTS
true")
run_sim_command("ruby0.setparam_str PERFECT_DNUCA_SEARCH true")
run_sim_command("ruby0.setparam NUMBER_OF_VIRTUAL_NETWORKS %d" % 7)
run_sim_command("ruby0.setparam_str PROTOCOL_DEBUG_TRACE true")
Cache Trace is following.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
220836 0 0
Collector Deallocate_Entry Col_P>Col_NP [0x2c8f480,
line 0x2c8f480]
220860 0
0 Directory
Lockdown M>L
[0x2c8f480, line 0x2c8f480]
220952 0
-1
Seq
Done
> [0x2c8f480, line 0x2c8f480] 447 cycles
Directory No
220952 0
0 L1Cache
Data_All_Tokens IS>M_W [0x2c8f480,
line 0x2c8f480] Directory-0
220952 0
-1
Seq
Done
> [0x2c8f484, line 0x2c8f480] 0 cycles
L1Cache No
220953 0
0 L1CacheSend_Register_with_Owner_Tokens
M_W>S [0x2c8f480, line 0x2c8f480]
220953 0
-1
Seq
Done
> [0x2c8f488, line 0x2c8f480] 0 cycles
L1Cache No
220953 0
-1
Seq
Done
> [0x2c8f48c, line 0x2c8f480] 0 cycles
L1Cache No
220954 0
-1
Seq
Done >
[0x2c8f490, line 0x2c8f480] 0 cycles L1Cache No
220954 0
-1
Seq
Done
> [0x2c8f498, line 0x2c8f480] 0 cycles
L1Cache No
220955 0
-1
Seq
Done
> [0x2c8f49c, line 0x2c8f480] 0 cycles
L1Cache No
220955 0
-1
Seq
Begin
> [0x2c8f440, line 0x2c8f440]
220957 0
0 L1Cache
Own_Lock_or_Unlock
S>S [0x2c8f480, line 0x2c8f480]
220959 0
0 L1Cache
L1_Replacement
S>I [0x2c8f440, line 0x2c8f440]
220959 0
0
L1Cache
Load NP>IS [0x2c8f440, line
0x2c8f440]
220961 0
0 L2Cache Own_Lock_or_Unlock L2_NP>L2_NP
[0x2c8f480, line 0x2c8f480]
220964 0
4 L2CacheRegister_with_OwnerTokens L2_NP>L2_OS
[0x2c8f480, line 0x2c8f480]
220965 0
1
L2Cache
L1_GETS L2_NP>L2_NP [0x2c8f440, line 0x2c8f440]
220965 0
8 L2Cache Own_Lock_or_Unlock L2_NP>L2_NP
[0x2c8f480, line 0x2c8f480]
220966 0
1 L2CacheWriteback_Shared_Data
L2_NP>L2_S [0x2c8f440, line 0x2c8f440]
220981 0
0 Collector Miss_Get_last
Col_NP>Col_P [0x2c8f440, line 0x2c8f440]
220982 0
0 Collector Issue_L2_Get
Col_P>Col_P [0x2c8f440, line 0x2c8f440]
220989 0
9 L2Cache
L1_GETS L2_NP>L2_NP [0x2c8f440, line 0x2c8f440]
221001 0
0 Collector Miss_Get_last
Col_P>Col_P [0x2c8f440, line 0x2c8f440]
221002 0
0 Collector Issue_L2_Get
Col_P>Col_P [0x2c8f440, line 0x2c8f440]
221002 0
0 L1Cache
Use_TimeoutDrop
S>S [0x2c8f480, line 0x2c8f480]
221004 0
0 Directory
Unlockdown L>NO
[0x2c8f480, line 0x2c8f480]
221259 0
0 L1Cache
Request_Timeout IS>IS
[0x2c8f440, line 0x2c8f440]
221263 0
0 L1Cache Own_Lock_or_Unlock
IS>IS [0x2c8f440, line 0x2c8f440]
221265 0
1 L2Cache Persistent_GETS
L2_S>L2_S_L [0x2c8f440, line 0x2c8f440] L1Cache-0
221269 0
9 L2Cache Persistent_GETS
L2_I_L>L2_I_L [0x2c8f440, line 0x2c8f440]
221275 0
0
L1Cache
Ack IS>IS [0x2c8f440, line
0x2c8f440]
221281 0
0 Collector Deallocate_Entry Col_P>Col_NP
[0x2c8f440, line 0x2c8f440]
221310 0
0
Directory
Lockdown NO>L
[0x2c8f440, line 0x2c8f440] L1Cache-0
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:105: Possible Deadlock detected
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:106: request is [CacheMsg:
Address=[0x2c8f468, line 0x2c8f440] Type=LD ProgramCounter=[0x108f49c, line
0x108f480] AccessMode=SupervisorMode Size=4 Prefetch=No Version=0 Aborted=0
Time=220955 ]
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:107: m_chip_ptr->getID() is 0
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:108: m_version is 0
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:109: keys.size() is 1
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:110: current_time is 300001
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:111: request.getTime() is 220955
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:112: current_time - request.getTime()
is 79046
Warning: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:113: *m_readRequestTable_ptr is [
[0x2c8f440, line 0x2c8f440]=[CacheMsg: Address=[0x2c8f468, line 0x2c8f440]
Type=LD ProgramCounter=[0x108f49c, line 0x108f480] AccessMode=SupervisorMode Size=4
Prefetch=No Version=0 Aborted=0 Time=220955 ] ]
Fatal Error: in fn virtual void
Sequencer::wakeup() in system/Sequencer.C:114: Aborting
NUCA_Procs-1_ProcsPerChip-1_L2Banks-16_Memories-1.txt
---------------------------------------------------------------------------------------------------------------------G----------------------------------------
processors:1
procs_per_chip:1
L2banks:16
memories:1
bw_unit:1000
ext_node:L1Cache:0 int_node:2
link_latency:1 bw_multiplier:64
ext_node:Directory:0 int_node:13
link_latency:40 bw_multiplier:10
ext_node:Collector:0 int_node:14
link_weight:1000 link_latency:1 bw_multiplier:32
ext_node:L2Cache:0:bank:0 int_node:0
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:1 int_node:1
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:2 int_node:2
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:3 int_node:3
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:4 int_node:4
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:5 int_node:5
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:6 int_node:6
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:7 int_node:7
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:8 int_node:8
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:9 int_node:9
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:10 int_node:10
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:11 int_node:11
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:12 int_node:12
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:13 int_node:13
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:14 int_node:14
link_latency:1 bw_multiplier:16
ext_node:L2Cache:0:bank:15 int_node:15
link_latency:1 bw_multiplier:16
int_node:0 int_node:1 link_latency:1 bw_multiplier:16
int_node:1 int_node:2 link_latency:1
bw_multiplier:16
int_node:2 int_node:3 link_latency:1
bw_multiplier:16
int_node:4 int_node:5 link_latency:1
bw_multiplier:16
int_node:5 int_node:6 link_latency:1
bw_multiplier:16
int_node:6 int_node:7 link_latency:1
bw_multiplier:16
int_node:8 int_node:9 link_latency:1
bw_multiplier:16
int_node:9 int_node:10 link_latency:1
bw_multiplier:16
int_node:10 int_node:11 link_latency:1
bw_multiplier:16
int_node:12 int_node:13 link_latency:1
bw_multiplier:16
int_node:13 int_node:14 link_latency:1
bw_multiplier:16
int_node:14 int_node:15 link_latency:1
bw_multiplier:16
int_node:0 int_node:4 link_latency:1
bw_multiplier:16
int_node:4 int_node:8 link_latency:1
bw_multiplier:16
int_node:8 int_node:12 link_latency:1
bw_multiplier:16
int_node:1 int_node:5 link_latency:1
bw_multiplier:16
int_node:5 int_node:9 link_latency:1
bw_multiplier:16
int_node:9 int_node:13 link_latency:1
bw_multiplier:16
int_node:2 int_node:6 link_latency:1
bw_multiplier:16
int_node:6 int_node:10 link_latency:1
bw_multiplier:16
int_node:10 int_node:14 link_latency:1
bw_multiplier:16
int_node:3 int_node:7 link_latency:1
bw_multiplier:16
int_node:7 int_node:11 link_latency:1
bw_multiplier:16
int_node:11 int_node:15 link_latency:1
bw_multiplier:16
1) Why deadlock does occur?
2) I think that
$GEMS/ruby/network/simple/Network_File/NetworkFileMaker doesn’t make following 3 lines.
So I copied that line from other
pre-existing network file. Is that right?
Is there another way to make network
file as I want?
ext_node:L1Cache:0 ~
ext_node:Directory:0 ~
ext_node:Collector:0 ~
Welcome any advice.
Thanks in advance.
Seonpil Kim