Compare commits

...

2 commits

10 changed files with 1296 additions and 205 deletions

7
.gitignore vendored
View file

@ -179,4 +179,9 @@ ipython_config.py
temp.py
temp.py
temp.txt
simulation/scripts/ChangeRepData.py
simulation/scripts/MESI_Analysis_Gemmini.py
simulation/results/log_raw
simulation/results/LinProgTest_rep12_link576_minTrafficWithLowThroughput_scratch10000_comp1

Binary file not shown.

View file

@ -1,3 +1,6 @@
# wk_LinProg
Linear Programming optimization of task scheduling and mapping
Linear Programming optimization of task scheduling and mapping
XML examples symbolically linked to gem5_Sysxeleratorv2 directory

View file

@ -63,7 +63,7 @@
<task id="0">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -78,11 +78,18 @@
</destinations>
</possibility>
</generates>
<requires>
<requirement id="0">
<type value="3" />
<source value="3" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="1">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -131,12 +138,32 @@
<source value="0" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="5" />
<source value="5" />
<count min="1" max="1" />
</requirement>
<requirement id="3">
<type value="8" />
<source value="8" />
<count min="1" max="1" />
</requirement>
<requirement id="5">
<type value="11" />
<source value="11" />
<count min="1" max="1" />
</requirement>
<requirement id="7">
<type value="14" />
<source value="14" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="2">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -162,7 +189,7 @@
<task id="3">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -174,6 +201,20 @@
<type value="3" />
<task value="4" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="3" />
<task value="0" />
</destination>
<destination id="2">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="3" />
<task value="16" />
</destination>
</destinations>
</possibility>
</generates>
@ -183,19 +224,22 @@
<source value="2" />
<count min="10" max="10" />
</requirement>
</requires>
<requires>
<requirement id="1">
<type value="16" />
<source value="16" />
<count min="10" max="10" />
</requirement>
<requirement id="2">
<type value="4" />
<source value="4" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="4">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -207,6 +251,13 @@
<type value="4" />
<task value="17" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="4" />
<task value="3" />
</destination>
</destinations>
</possibility>
</generates>
@ -216,12 +267,17 @@
<source value="3" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="18" />
<source value="18" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="5">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -233,6 +289,13 @@
<type value="5" />
<task value="6" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="5" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
@ -242,12 +305,17 @@
<source value="1" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="7" />
<source value="7" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="6">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -273,7 +341,7 @@
<task id="7">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -285,6 +353,13 @@
<type value="7" />
<task value="17" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="7" />
<task value="5" />
</destination>
</destinations>
</possibility>
</generates>
@ -294,12 +369,17 @@
<source value="6" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="17" />
<source value="17" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="8">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -311,6 +391,13 @@
<type value="8" />
<task value="9" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="8" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
@ -320,12 +407,17 @@
<source value="1" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="18" />
<source value="18" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="9">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -351,7 +443,7 @@
<task id="10">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -377,7 +469,7 @@
<task id="11">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -389,6 +481,13 @@
<type value="11" />
<task value="12" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="11" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
@ -398,12 +497,17 @@
<source value="1" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="13" />
<source value="13" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="12">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -429,7 +533,7 @@
<task id="13">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -441,6 +545,13 @@
<type value="13" />
<task value="17" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="13" />
<task value="11" />
</destination>
</destinations>
</possibility>
</generates>
@ -450,12 +561,17 @@
<source value="12" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="17" />
<source value="17" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="14">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -467,6 +583,13 @@
<type value="14" />
<task value="15" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="14" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
@ -476,12 +599,17 @@
<source value="1" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="16" />
<source value="16" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="15">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -507,7 +635,7 @@
<task id="16">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -526,6 +654,13 @@
<type value="16" />
<task value="3" />
</destination>
<destination id="2">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="16" />
<task value="14" />
</destination>
</destinations>
</possibility>
</generates>
@ -535,12 +670,22 @@
<source value="15" />
<count min="10" max="10" />
</requirement>
<requirement id="1">
<type value="17" />
<source value="17" />
<count min="1" max="1" />
</requirement>
<requirement id="3">
<type value="3" />
<source value="3" />
<count min="1" max="1" />
</requirement>
</requires>
</task>
<task id="17">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
@ -552,6 +697,27 @@
<type value="17" />
<task value="18" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="7" />
</destination>
<destination id="2">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="13" />
</destination>
<destination id="3">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="16" />
</destination>
</destinations>
</possibility>
</generates>
@ -561,29 +727,21 @@
<source value="4" />
<count min="10" max="10" />
</requirement>
</requires>
<requires>
<requirement id="1">
<type value="7" />
<source value="7" />
<count min="10" max="10" />
</requirement>
</requires>
<requires>
<requirement id="2">
<type value="10" />
<source value="10" />
<count min="10" max="10" />
</requirement>
</requires>
<requires>
<requirement id="3">
<type value="13" />
<source value="13" />
<count min="10" max="10" />
</requirement>
</requires>
<requires>
<requirement id="4">
<type value="16" />
<source value="16" />
@ -594,8 +752,28 @@
<task id="18">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates />
<repeat min="12" max="12" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="18" />
<task value="4" />
</destination>
<destination id="1">
<delay min="100" max="100" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="18" />
<task value="8" />
</destination>
</destinations>
</possibility>
</generates>
<requires>
<requirement id="0">
<type value="17" />
@ -604,5 +782,290 @@
</requirement>
</requires>
</task>
<task id="19">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="3" />
<task value="0" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="20">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="18" />
<task value="4" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="21">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="18" />
<task value="8" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="22">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="13" />
<task value="11" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="23">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="16" />
<task value="14" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="24">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="7" />
<task value="5" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="25">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="5" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="26">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="8" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="27">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="11" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="28">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="14" />
<task value="1" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="29">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="4" />
<task value="3" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="30">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="7" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="31">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="13" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="32">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="17" />
<task value="16" />
</destination>
</destinations>
</possibility>
</generates>
</task>
<task id="33">
<start min="0" max="0" />
<duration min="1" max="1" />
<repeat min="1" max="1" />
<generates>
<possibility id="0">
<probability value="1" />
<destinations>
<destination id="0">
<delay min="0" max="0" />
<interval min="20" max="20" />
<count min="1" max="1" />
<type value="3" />
<task value="16" />
</destination>
</destinations>
</possibility>
</generates>
</task>
</tasks>
</data>

View file

@ -76,4 +76,64 @@
<task value="7"/>
<node value="6"/>
</bind>
<bind>
<task value="19"/>
<node value="10"/>
</bind>
<bind>
<task value="20"/>
<node value="9"/>
</bind>
<bind>
<task value="21"/>
<node value="9"/>
</bind>
<bind>
<task value="22"/>
<node value="11"/>
</bind>
<bind>
<task value="23"/>
<node value="14"/>
</bind>
<bind>
<task value="24"/>
<node value="6"/>
</bind>
<bind>
<task value="25"/>
<node value="10"/>
</bind>
<bind>
<task value="26"/>
<node value="10"/>
</bind>
<bind>
<task value="27"/>
<node value="10"/>
</bind>
<bind>
<task value="28"/>
<node value="10"/>
</bind>
<bind>
<task value="29"/>
<node value="10"/>
</bind>
<bind>
<task value="30"/>
<node value="6"/>
</bind>
<bind>
<task value="31"/>
<node value="11"/>
</bind>
<bind>
<task value="32"/>
<node value="14"/>
</bind>
<bind>
<task value="33"/>
<node value="14"/>
</bind>
</map>

View file

@ -1,239 +1,353 @@
<?xml version="1.0" ?>
<map_address>
<bind>
<task value="0" />
<address value="0x40001000" />
<task value="0"/>
<address value="0x40001000"/>
</bind>
<bind>
<task value="1" />
<address value="0x435e6000" />
<task value="1"/>
<address value="0x41e1f169"/>
</bind>
<bind>
<task value="2" />
<address value="0x46bcb000" />
<task value="2"/>
<address value="0x43c3d2d2"/>
</bind>
<bind>
<task value="3" />
<address value="0x4a1b0000" />
<task value="3"/>
<address value="0x45a5b43b"/>
</bind>
<bind>
<task value="4" />
<address value="0x4d795000" />
<task value="4"/>
<address value="0x478795a4"/>
</bind>
<bind>
<task value="5" />
<address value="0x50d7a000" />
<task value="5"/>
<address value="0x4969770d"/>
</bind>
<bind>
<task value="6" />
<address value="0x5435f000" />
<task value="6"/>
<address value="0x4b4b5876"/>
</bind>
<bind>
<task value="7" />
<address value="0x57944000" />
<task value="7"/>
<address value="0x4d2d39df"/>
</bind>
<bind>
<task value="8" />
<address value="0x5af29000" />
<task value="8"/>
<address value="0x4f0f1b48"/>
</bind>
<bind>
<task value="9" />
<address value="0x5e50e000" />
<task value="9"/>
<address value="0x50f0fcb1"/>
</bind>
<bind>
<task value="10" />
<address value="0x61af3000" />
<task value="10"/>
<address value="0x52d2de1a"/>
</bind>
<bind>
<task value="11" />
<address value="0x650d8000" />
<task value="11"/>
<address value="0x54b4bf83"/>
</bind>
<bind>
<task value="12" />
<address value="0x686bd000" />
<task value="12"/>
<address value="0x5696a0ec"/>
</bind>
<bind>
<task value="13" />
<address value="0x6bca2000" />
<task value="13"/>
<address value="0x58788255"/>
</bind>
<bind>
<task value="14" />
<address value="0x6f287000" />
<task value="14"/>
<address value="0x5a5a63be"/>
</bind>
<bind>
<task value="15" />
<address value="0x7286c000" />
<task value="15"/>
<address value="0x5c3c4527"/>
</bind>
<bind>
<task value="16" />
<address value="0x75e51000" />
<task value="16"/>
<address value="0x5e1e2690"/>
</bind>
<bind>
<task value="17" />
<address value="0x79436000" />
<task value="17"/>
<address value="0x600007f9"/>
</bind>
<bind>
<task value="18" />
<address value="0x7ca1b000" />
<task value="18"/>
<address value="0x61e1e962"/>
</bind>
<bind>
<task value="19"/>
<address value="0x63c3cacb"/>
</bind>
<bind>
<task value="20"/>
<address value="0x65a5ac34"/>
</bind>
<bind>
<task value="21"/>
<address value="0x67878d9d"/>
</bind>
<bind>
<task value="22"/>
<address value="0x69696f06"/>
</bind>
<bind>
<task value="23"/>
<address value="0x6b4b506f"/>
</bind>
<bind>
<task value="24"/>
<address value="0x6d2d31d8"/>
</bind>
<bind>
<task value="25"/>
<address value="0x6f0f1341"/>
</bind>
<bind>
<task value="26"/>
<address value="0x70f0f4aa"/>
</bind>
<bind>
<task value="27"/>
<address value="0x72d2d613"/>
</bind>
<bind>
<task value="28"/>
<address value="0x74b4b77c"/>
</bind>
<bind>
<task value="29"/>
<address value="0x769698e5"/>
</bind>
<bind>
<task value="30"/>
<address value="0x78787a4e"/>
</bind>
<bind>
<task value="31"/>
<address value="0x7a5a5bb7"/>
</bind>
<bind>
<task value="32"/>
<address value="0x7c3c3d20"/>
</bind>
<bind>
<task value="33"/>
<address value="0x7e1e1e89"/>
</bind>
</map_address>
<?xml version="1.0" ?>
<map_cluster>
<bind>
<node value="0" />
<cluster value="0" />
<node value="0"/>
<cluster value="0"/>
</bind>
<bind>
<node value="1" />
<cluster value="0" />
<node value="1"/>
<cluster value="0"/>
</bind>
<bind>
<node value="2" />
<cluster value="0" />
<node value="2"/>
<cluster value="0"/>
</bind>
<bind>
<node value="3" />
<cluster value="0" />
<node value="3"/>
<cluster value="0"/>
</bind>
<bind>
<node value="4" />
<cluster value="0" />
<node value="4"/>
<cluster value="0"/>
</bind>
<bind>
<node value="5" />
<cluster value="0" />
<node value="5"/>
<cluster value="0"/>
</bind>
<bind>
<node value="6" />
<cluster value="0" />
<node value="6"/>
<cluster value="0"/>
</bind>
<bind>
<node value="7" />
<cluster value="0" />
<node value="7"/>
<cluster value="0"/>
</bind>
<bind>
<node value="8" />
<cluster value="0" />
<node value="8"/>
<cluster value="0"/>
</bind>
<bind>
<node value="9" />
<cluster value="0" />
<node value="9"/>
<cluster value="0"/>
</bind>
<bind>
<node value="10" />
<cluster value="0" />
<node value="10"/>
<cluster value="0"/>
</bind>
<bind>
<node value="11" />
<cluster value="0" />
<node value="11"/>
<cluster value="0"/>
</bind>
<bind>
<node value="12" />
<cluster value="0" />
<node value="12"/>
<cluster value="0"/>
</bind>
<bind>
<node value="13" />
<cluster value="0" />
<node value="13"/>
<cluster value="0"/>
</bind>
<bind>
<node value="14" />
<cluster value="0" />
<node value="14"/>
<cluster value="0"/>
</bind>
<bind>
<node value="15" />
<cluster value="0" />
</bind>
<bind>
<node value="16" />
<cluster value="0" />
<node value="15"/>
<cluster value="0"/>
</bind>
</map_cluster>
<?xml version="1.0" ?>
<map_parameters>
<bind>
<param value="1" />
<address value="0x40001000" />
<size value="1073745920" />
<param value="1"/>
<address value="0x40001000"/>
<size value="1073745920"/>
</bind>
</map_parameters>
<?xml version="1.0" ?>
<task_parameters>
<bind>
<node value="0" />
<param_list value="[]" />
<node value="0"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="1" />
<param_list value="[]" />
<node value="1"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="2" />
<param_list value="[]" />
<node value="2"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="3" />
<param_list value="[]" />
<node value="3"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="4" />
<param_list value="[]" />
<node value="4"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="5" />
<param_list value="[]" />
<node value="5"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="6" />
<param_list value="[]" />
<node value="6"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="7" />
<param_list value="[]" />
<node value="7"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="8" />
<param_list value="[]" />
<node value="8"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="9" />
<param_list value="[]" />
<node value="9"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="10" />
<param_list value="[]" />
<node value="10"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="11" />
<param_list value="[]" />
<node value="11"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="12" />
<param_list value="[]" />
<node value="12"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="13" />
<param_list value="[]" />
<node value="13"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="14" />
<param_list value="[]" />
<node value="14"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="15" />
<param_list value="[]" />
<node value="15"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="16" />
<param_list value="[]" />
<node value="16"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="17" />
<param_list value="[]" />
<node value="17"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="18" />
<param_list value="[]" />
<node value="18"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="19"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="20"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="21"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="22"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="23"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="24"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="25"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="26"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="27"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="28"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="29"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="30"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="31"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="32"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="33"/>
<param_list value="[]"/>
</bind>
</task_parameters>

View file

@ -6,75 +6,135 @@
</bind>
<bind>
<task value="1"/>
<address value="0x435e6000"/>
<address value="0x41e1f169"/>
</bind>
<bind>
<task value="2"/>
<address value="0x46bcb000"/>
<address value="0x43c3d2d2"/>
</bind>
<bind>
<task value="3"/>
<address value="0x4a1b0000"/>
<address value="0x45a5b43b"/>
</bind>
<bind>
<task value="4"/>
<address value="0x4d795000"/>
<address value="0x478795a4"/>
</bind>
<bind>
<task value="5"/>
<address value="0x50d7a000"/>
<address value="0x4969770d"/>
</bind>
<bind>
<task value="6"/>
<address value="0x5435f000"/>
<address value="0x4b4b5876"/>
</bind>
<bind>
<task value="7"/>
<address value="0x57944000"/>
<address value="0x4d2d39df"/>
</bind>
<bind>
<task value="8"/>
<address value="0x5af29000"/>
<address value="0x4f0f1b48"/>
</bind>
<bind>
<task value="9"/>
<address value="0x5e50e000"/>
<address value="0x50f0fcb1"/>
</bind>
<bind>
<task value="10"/>
<address value="0x61af3000"/>
<address value="0x52d2de1a"/>
</bind>
<bind>
<task value="11"/>
<address value="0x650d8000"/>
<address value="0x54b4bf83"/>
</bind>
<bind>
<task value="12"/>
<address value="0x686bd000"/>
<address value="0x5696a0ec"/>
</bind>
<bind>
<task value="13"/>
<address value="0x6bca2000"/>
<address value="0x58788255"/>
</bind>
<bind>
<task value="14"/>
<address value="0x6f287000"/>
<address value="0x5a5a63be"/>
</bind>
<bind>
<task value="15"/>
<address value="0x7286c000"/>
<address value="0x5c3c4527"/>
</bind>
<bind>
<task value="16"/>
<address value="0x75e51000"/>
<address value="0x5e1e2690"/>
</bind>
<bind>
<task value="17"/>
<address value="0x79436000"/>
<address value="0x600007f9"/>
</bind>
<bind>
<task value="18"/>
<address value="0x7ca1b000"/>
<address value="0x61e1e962"/>
</bind>
<bind>
<task value="19"/>
<address value="0x63c3cacb"/>
</bind>
<bind>
<task value="20"/>
<address value="0x65a5ac34"/>
</bind>
<bind>
<task value="21"/>
<address value="0x67878d9d"/>
</bind>
<bind>
<task value="22"/>
<address value="0x69696f06"/>
</bind>
<bind>
<task value="23"/>
<address value="0x6b4b506f"/>
</bind>
<bind>
<task value="24"/>
<address value="0x6d2d31d8"/>
</bind>
<bind>
<task value="25"/>
<address value="0x6f0f1341"/>
</bind>
<bind>
<task value="26"/>
<address value="0x70f0f4aa"/>
</bind>
<bind>
<task value="27"/>
<address value="0x72d2d613"/>
</bind>
<bind>
<task value="28"/>
<address value="0x74b4b77c"/>
</bind>
<bind>
<task value="29"/>
<address value="0x769698e5"/>
</bind>
<bind>
<task value="30"/>
<address value="0x78787a4e"/>
</bind>
<bind>
<task value="31"/>
<address value="0x7a5a5bb7"/>
</bind>
<bind>
<task value="32"/>
<address value="0x7c3c3d20"/>
</bind>
<bind>
<task value="33"/>
<address value="0x7e1e1e89"/>
</bind>
</map_address>
<?xml version="1.0" ?>
@ -143,10 +203,6 @@
<node value="15"/>
<cluster value="0"/>
</bind>
<bind>
<node value="16"/>
<cluster value="0"/>
</bind>
</map_cluster>
<?xml version="1.0" ?>
<map_parameters>
@ -234,4 +290,64 @@
<node value="18"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="19"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="20"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="21"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="22"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="23"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="24"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="25"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="26"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="27"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="28"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="29"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="30"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="31"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="32"/>
<param_list value="[]"/>
</bind>
<bind>
<node value="33"/>
<param_list value="[]"/>
</bind>
</task_parameters>

File diff suppressed because one or more lines are too long

View file

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 38,
"metadata": {},
"outputs": [
{
@ -35,21 +35,10 @@
"\n",
"print(combined_mapping_dict)\n",
"print(mapping)\n",
"print(shortest_path)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"map_writer = writers.MapWriter('map')\n",
"for combined_node in combined_mapping_dict:\n",
" for node in combined_mapping_dict[combined_node]:\n",
" map_writer.add_bindings(tasks=[node],nodes=[int(mapping[str(combined_node)])])\n",
"map_writer.write_file('../XML/LinProg_test/map.xml')\n",
"\n"
"print(shortest_path)\n",
"\n",
"with open('/home/sfischer/Documents/projects/wk_LinProg/LinProg_Scripts/task_graph_feedback.pkl', 'rb') as file:\n",
" task_graph = pickle.load(file)"
]
},
{
@ -61,13 +50,61 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Loaded Task_graph: DiGraph with 19 nodes and 23 edges\n"
"init node: 19\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n",
"init node: 20\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n",
"init node: 21\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n",
"init node: 22\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n",
"init node: 23\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n",
"init node: 24\n",
"Attributes: {'delay_comp': 0, 'delay_mem': 0, 'delay_send': 0, 'nodetype': 'init', 'src': False, 'dst': False}\n"
]
}
],
"source": [
"with open('/home/sfischer/Documents/projects/wk_LinProg/LinProg_Scripts/Task_graph.pkl', 'rb') as file:\n",
" task_graph = pickle.load(file)\n",
"map_writer = writers.MapWriter('map')\n",
"for combined_node in combined_mapping_dict:\n",
" for node in combined_mapping_dict[combined_node]:\n",
" # print(combined_node,combined_mapping_dict[combined_node])\n",
" map_writer.add_bindings(tasks=[node],nodes=[int(mapping[str(combined_node)])])\n",
"\n",
"for node in task_graph.nodes():\n",
" if task_graph.nodes[node].get('nodetype') == \"init\":\n",
" print(\"init node: \", node)\n",
" \n",
" successors = list(task_graph.successors(node))\n",
" successor=successors[0]\n",
" for combined_node in combined_mapping_dict:\n",
" for node2 in combined_mapping_dict[combined_node]:\n",
" # print(combined_node,combined_mapping_dict[combined_node])\n",
" if successor in combined_mapping_dict[combined_node]:\n",
" mappedTo=int(mapping[str(combined_node)])\n",
" map_writer.add_bindings(tasks=[node],nodes=[mappedTo])\n",
" # print(\"init node: \", node)\n",
" print(\"Attributes: \", task_graph.nodes[node])\n",
"map_writer.write_file('../XML/LinProg_test/map.xml')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loaded Task_graph: DiGraph with 25 nodes and 35 edges\n"
]
}
],
"source": [
"\n",
"\n",
"print(\"Loaded Task_graph:\", task_graph)\n",
" \n",

View file

@ -0,0 +1,90 @@
#!/bin/bash
toGem5fromStats(){
cd ../..
cd wk_gem5_SysXelerator_v2
}
toStatsfromGem5(){
cd ..
cd wk_gem5_stats/scripts
}
runSimAndAnaly(){
local width=$1
local repetition=$2
local workload=$3
local strategy=$4
local scratchpad_size=$5
local compression_factor=$6
local folder_path=$7
echo "Changing the repetition!"
python3 ChangeRepData.py --repetition $repetition --compression_factor $compression_factor --folder_path $folder_path
cd /home/sfischer/Documents/projects/wk_gem5_SysXelerator_v2
echo "Starting the simulation!"
build/X86_MESI_Two_Level/gem5.opt --debug-flag RubyNetworkReduced,AccelTrafficTraceReduced,TaskPEOp configs/gemmini/Accel4x4NoC.py --ruby --num-cpus 17 --network garnet --l1d_size 8MiB --l1i_size 8MiB --topology Mesh_XY --mesh-rows 3 --mem-type DDR3_1600_8x8 --link-width-bits $width --scratchpad_size $scratchpad_size --folder_path $folder_path >raw_log.txt
cd /home/sfischer/Documents/projects/wk_LinProg/simulation/scripts
echo "Starting the Analysis!"
python3 MESI_Analysis_Gemmini.py \
--link_width $width \
--repetition $repetition \
--workload $workload \
--strategy $strategy
# rm -rf ../Results/Accelerator/log_raw/*
}
link_width_bits_list=(576) #max 72B = 576bit must be devisible by 8 (in gem5 used as byte)
repetitions_list=(12)
scratchpad_size_list=(10000)
compression_factor_list=(1) # 1 = no compression
# workload="MobileNetV2_20Layer_1C10A_R100_1GHz_fast3"
workload="LinProgTest"
strategy_mode="minTrafficWithLowThroughput"
folder_path_2gem5="/home/sfischer/Documents/projects/wk_gem5_SysXelerator_v2"
# folder_path="/home/sfischer/gem5folder/gem5-accel/src/gemmini_dev_a/MobileNetV2_1A1C/"
folder_path="${folder_path_2gem5}/src/gemmini_dev_a/LinProg_test/"
DESTINATION_FILE="${folder_path}map_addition.xml"
SOURCE_FILE="${folder_path}map_addition_old.xml"
if [ -e "$SOURCE_FILE" ]; then
cp "$SOURCE_FILE" "$DESTINATION_FILE"
else
echo "Source file does not exist. Creating an empty file."
touch "$SOURCE_FILE"
cp "$DESTINATION_FILE" "$SOURCE_FILE"
fi
# Nested loops to execute the function for all combinations of LINK_WIDTH_BITS and repetitions
for LINK_WIDTH_BITS in "${link_width_bits_list[@]}"; do
for repetition in "${repetitions_list[@]}"; do
for scratchpad_size in "${scratchpad_size_list[@]}"; do
for compression_factor in "${compression_factor_list[@]}"; do
strategy="${strategy_mode}_scratch${scratchpad_size}_comp${compression_factor}"
runSimAndAnaly $LINK_WIDTH_BITS $repetition $workload $strategy $scratchpad_size $compression_factor $folder_path
cp "$SOURCE_FILE" "$DESTINATION_FILE"
done
done
done
done