mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 21:39:10 -04:00
Automatic Available Warp/Thread Detection
This commit is contained in:
parent
f61a013c8e
commit
cae4247343
11 changed files with 1952 additions and 1815 deletions
2
TODO
2
TODO
|
@ -1,5 +1,5 @@
|
|||
|
||||
|
||||
|
||||
* Automatic warp detection?
|
||||
* csri bug?
|
||||
* Start on the Verilog Pipeline (Research loading into mem)
|
|
@ -581,23 +581,27 @@ void Instruction::executeOn(Warp &c) {
|
|||
switch (func3)
|
||||
{
|
||||
case 1:
|
||||
// printf("Case 1\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
}
|
||||
|
||||
c.csr[immsrc & 0x00000FFF] = temp;
|
||||
|
||||
break;
|
||||
case 2:
|
||||
// printf("Case 2\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
// printf("Reading from CSR: %d = %d\n", (immsrc & 0x00000FFF), c.csr[immsrc & 0x00000FFF]);
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
}
|
||||
c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF];
|
||||
// printf("Writing to CSR --> %d = %d\n", immsrc, (temp | c.csr[immsrc & 0x00000FFF]));
|
||||
c.csr[immsrc & 0x00000FFF] = temp | c.csr[immsrc & 0x00000FFF];
|
||||
|
||||
break;
|
||||
case 3:
|
||||
// printf("Case 3\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
|
@ -606,6 +610,7 @@ void Instruction::executeOn(Warp &c) {
|
|||
|
||||
break;
|
||||
case 5:
|
||||
// printf("Case 5\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
|
@ -614,6 +619,7 @@ void Instruction::executeOn(Warp &c) {
|
|||
|
||||
break;
|
||||
case 6:
|
||||
// printf("Case 6\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
|
@ -622,6 +628,7 @@ void Instruction::executeOn(Warp &c) {
|
|||
|
||||
break;
|
||||
case 7:
|
||||
// printf("Case 7\n");
|
||||
if (rdest != 0)
|
||||
{
|
||||
reg[rdest] = c.csr[immsrc & 0x00000FFF];
|
||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,340 +1,357 @@
|
|||
:0200000480007A
|
||||
:1000000037F1FF7FEF008018EF10400C7300000005
|
||||
:10001000938B0600130D0700130F010093030500D7
|
||||
:1000200013051000635C75001301018013030500C4
|
||||
:100030006B500300130515006FF0DFFE13010F0076
|
||||
:1000400013050000930F0600938D0300EBE0BF0142
|
||||
:10005000170500001305051A6B4005001703000083
|
||||
:10006000130343FB6B0003006780000017020001CD
|
||||
:1000700013028225232002002322120023242200BF
|
||||
:100080002326320023284200232A5200232C620018
|
||||
:10009000232E720023208202232292022324A20212
|
||||
:1000A0002326B2022328C202232AD202232CE202F0
|
||||
:1000B000232EF202232002052322120523242205E7
|
||||
:1000C0002326320523284205232A5205232C6205C4
|
||||
:1000D000232E720523208207232292072324A207BE
|
||||
:1000E0002326B2072328C207232AD207232CE2079C
|
||||
:1000F000232EF20713021000678000001702000190
|
||||
:100100001302821C0320020083204200032182008C
|
||||
:100110008321C200032202018322420103238201C0
|
||||
:100120008323C201032402028324420203258202A4
|
||||
:100130008325C20203260203832642030327820388
|
||||
:100140008327C2030328020483284204032982046C
|
||||
:100150008329C204032A0205832A4205032B820550
|
||||
:10016000832BC205032C0206832C4206032D820634
|
||||
:10017000832DC206032E0207832E4207032F820718
|
||||
:10018000832FC2071302000067800000130101FEE5
|
||||
:10019000232E1100232C810013040102232604FEC8
|
||||
:1001A0006F0000030327C4FE9307404C3307F70298
|
||||
:1001B000B707008193874734B307F700138507001B
|
||||
:1001C000EF0040428327C4FE938717002326F4FEE6
|
||||
:1001D0000327C4FE93077000E3D6E7FC130000007A
|
||||
:1001E0008320C10103248101130101026780000003
|
||||
:1001F000130101FD23261102232481022322A103DE
|
||||
:100200001304010313070D009307404C3307F70253
|
||||
:10021000B707008193874734B307F70013850700BA
|
||||
:10022000EF00804D930705006384070493070D00DA
|
||||
:1002300093850700B707008113850704EF00C05EB0
|
||||
:1002400013070D00B7070081131727009387472A6C
|
||||
:10025000B307F7001307100023A0E70093070D0072
|
||||
:1002600063960700EFF09FE96F00800573000000C0
|
||||
:1002700013070D009307404C3307F702B7070081BF
|
||||
:1002800093874734B307F700130784FD93050700EE
|
||||
:1002900013850700EF00C03D832704FE138107008C
|
||||
:1002A0008327C4FD832584FD032644FE832684FE24
|
||||
:1002B0000327C4FE13850700EFF09FD573000000ED
|
||||
:1002C0008320C10203248102032D41021301010393
|
||||
:1002D00067800000130101FB2326110423248104FD
|
||||
:1002E0001304010593090100930710002326F4FE6F
|
||||
:1002F0006F0040080327C4FE9307404C3307F70202
|
||||
:10030000B707008193874734B307F70013850700C9
|
||||
:10031000EF00803E93070500639807040327C4FE9F
|
||||
:100320009307404C3307F702B707008193874734A0
|
||||
:10033000B307F700130744FD930507001385070073
|
||||
:10034000EF0000338327C4FD13810700832784FD5A
|
||||
:10035000832544FD032604FE832644FE032784FEF2
|
||||
:1003600013850700EFF09FCF8327C4FE9387170004
|
||||
:100370002326F4FE0327C4FE93077000E3DCE7F6B0
|
||||
:1003800013810900EFF09FCEB70700811385870422
|
||||
:10039000EF0080399307020063880706B7070081E2
|
||||
:1003A00013854734EF00403593070500639E07042B
|
||||
:1003B000B707008113858705EF0000379307C4FB5B
|
||||
:1003C00093850700B707008113854734EF00402A63
|
||||
:1003D000832704FC93850700B7070081138507076F
|
||||
:1003E000EF008044832744FC13810700832704FC2B
|
||||
:1003F0008325C4FB032684FC8326C4FC032704FD59
|
||||
:1004000013850700EFF0DFC0130000008320C10454
|
||||
:10041000032481041301010567800000130101FC1E
|
||||
:10042000232E1102232C8102130401042326A4FC91
|
||||
:100430002324B4FC2322C4FC2320D4FCEFF01FD5DA
|
||||
:1004400013090100232604FE232404FE6F00C008C4
|
||||
:10045000B709FFFF33013101832784FE2328F4FC11
|
||||
:10046000832784FC232AF4FC93070100232CF4FC4B
|
||||
:10047000832744FC232EF4FC832704FC2320F4FE72
|
||||
:100480008327C4FE2322F4FE0327C4FE9307404CB7
|
||||
:100490003307F702B707008193874734B307F700A4
|
||||
:1004A000130704FD9305070013850700EF00C0152F
|
||||
:1004B0008327C4FE938717002326F4FE0327C4FE78
|
||||
:1004C0009307700063D4E700232604FE832784FE8D
|
||||
:1004D000938717002324F4FE032784FE8327C4FC9C
|
||||
:1004E000E368F7F613010900EFF0DFDE1300000008
|
||||
:1004F0008320C103032481031301010467800000EA
|
||||
:10050000130101FD2326810213040103232EA4FC01
|
||||
:10051000232604FE6F004005232604FE232404FE48
|
||||
:100520006F00C003B7070081032784FE131727005D
|
||||
:100530009387472AB307F70003A707009307100024
|
||||
:100540006318F7008327C4FE938717002326F4FE61
|
||||
:10055000832784FE938717002324F4FE032784FE59
|
||||
:1005600093077000E3D0E7FC0327C4FE8327C4FD94
|
||||
:10057000E314F7FA232204FE6F008002B70700811C
|
||||
:10058000032744FE131727009387472AB307F70072
|
||||
:1005900023A00700832744FE938717002322F4FE3D
|
||||
:1005A000832744FE0327C4FDE3EAE7FC13000000B1
|
||||
:1005B0000324C1021301010367800000130101FF3E
|
||||
:1005C00023268100232471011304010193870B006A
|
||||
:1005D000138507000324C100832B8100130101014F
|
||||
:1005E000678000009302050013030000930370006E
|
||||
:1005F00023A0620023A2620023A4620023A672004B
|
||||
:1006000023A86200678000009302050003A3820014
|
||||
:100610001303130023A462001383420183AE42003C
|
||||
:1006200093935E003303730003AE05002320C301E0
|
||||
:1006300003AE45002322C30103AE85002324C3017A
|
||||
:1006400003AEC5002326C30103AE05012328C30161
|
||||
:1006500003AE4501232AC301938E1E00130F20030E
|
||||
:100660006394EE01930E000023A2D2016780000084
|
||||
:100670009302050003A382001303F3FF23A4620087
|
||||
:100680001383420183AE0200930F2003138F0E00E9
|
||||
:10069000130F1F006314FF01130F000023A0E201DA
|
||||
:1006A00093935E0033037300032E030023A0C50160
|
||||
:1006B000032E430023A2C501032E830023A4C501FA
|
||||
:1006C000032EC30023A6C501032E030123A8C501E1
|
||||
:1006D000032E430123AAC501678000009302050091
|
||||
:1006E00003A3820013050000130E200363146E00A1
|
||||
:1006F00013051500678000009302050003A3820024
|
||||
:1007000013050000130E000063146E00130515009E
|
||||
:10071000678000009302050003A3C20083A30201C7
|
||||
:1007200033B5630067800000130141FF23201100EF
|
||||
:100730002322B1008345050063880500EF00C00156
|
||||
:10074000130515006FF01FFF832001008325410072
|
||||
:100750001301C10067800000B708010023A0B800A2
|
||||
:1007600067800000130101FD23261102232481026A
|
||||
:1007700013040103232EA4FC0327C4FD9307F000F8
|
||||
:1007800063E4E702B70700810327C4FD13172700BE
|
||||
:100790009387471EB307F70083A707001385070059
|
||||
:1007A000EFF09FF86F004007930700022326F4FE46
|
||||
:1007B000A30504FE8327C4FE9387C7FF0327C4FD58
|
||||
:1007C000B357F70093F7F7002322F4FE832744FE84
|
||||
:1007D0006386070093071000A305F4FE8347B4FE69
|
||||
:1007E00063820702B7070081032744FE131727001F
|
||||
:1007F0009387471EB307F70083A7070013850700F9
|
||||
:10080000EFF09FF28327C4FE9387C7FF2326F4FEF1
|
||||
:100810008327C4FEE340F0FA8320C102032481024F
|
||||
:100820001301010367800000130101FE232E110054
|
||||
:10083000232C8100130401022326A4FE2324B4FEEA
|
||||
:100840000325C4FEEFF05FEE032584FEEFF09FF179
|
||||
:10085000B70700811385070CEFF01FED13000000B0
|
||||
:100860008320C1010324810113010102678000007C
|
||||
:10087000130101FD23261102232481021304010325
|
||||
:10088000232EA4FC232CB4FC232AC4FC2328D4FC50
|
||||
:10089000B73700810327C4FD23A2E798B73700814B
|
||||
:1008A00093874798032784FD23A2E700B737008189
|
||||
:1008B00093874798032744FD23A4E700B7370081B7
|
||||
:1008C00093874798032704FD23A6E700832704FDA9
|
||||
:1008D00093D737002326F4FE832704FD93F7770090
|
||||
:1008E000638807008327C4FE938717002326F4FE3E
|
||||
:1008F000B7370081938747980327C4FE23A8E700F2
|
||||
:10090000032704FD9307700063F2E702B737008105
|
||||
:1009100093864798B71700801386C7979305800082
|
||||
:10092000032504FDEFF09FAF6F000002B737008191
|
||||
:1009300093864798B71700801386C797832504FDD1
|
||||
:10094000032504FDEFF09FAD032704FD930780000E
|
||||
:1009500063F8E70013058000EFF09FBA6F00C00056
|
||||
:10096000032504FDEFF0DFB9130000008320C1026E
|
||||
:10097000032481021301010367800000130101FABF
|
||||
:10098000232E1104232C8104130401062326A4FA28
|
||||
:100990002324B4FAEFF09FC2232CA4FC832784FD08
|
||||
:1009A00083A70700232AF4FC832784FD83A747003D
|
||||
:1009B0002328F4FC832784FD83A787002326F4FCE7
|
||||
:1009C000832784FD83A707012326F4FE0327C4FEA3
|
||||
:1009D0008327C4FAB307F7022324F4FE8327C4FE57
|
||||
:1009E000639A0700930710002326F4FE8327C4FAB6
|
||||
:1009F0002324F4FE832784FD83A7C7002324F4FC6B
|
||||
:100A0000232204FE6F004012232004FE232E04FC48
|
||||
:100A10006F008007032784FA832784FCB307F7025B
|
||||
:100A20000327C4FDB307F7002322F4FC032784FC4B
|
||||
:100A30008327C4FDB307F702032784FEB307F7003B
|
||||
:100A40002320F4FC832744FC93972700032744FDCD
|
||||
:100A5000B307F70003A70700832704FC9397270039
|
||||
:100A6000832604FDB387F60083A70700B307F702C8
|
||||
:100A7000032704FEB307F7002320F4FE8327C4FDF9
|
||||
:100A800093871700232EF4FC0327C4FD832784FCDF
|
||||
:100A9000E362F7F8032784FA832784FC3307F7021D
|
||||
:100AA000832784FEB307F700232EF4FA032784FE7E
|
||||
:100AB000832784FCB337F70093F7F70F232CF4FA5E
|
||||
:100AC000832784FB93B71700A30BF4FA834774FBC7
|
||||
:100AD000138F0700B7170080938F47B16B200F006B
|
||||
:100AE0007B70FF018327C4FB939727000327C4FC77
|
||||
:100AF000B307F700032704FE23A0E700832784FE43
|
||||
:100B0000938717002324F4FEB7170080138E87B154
|
||||
:100B100067000E00130000006B300000832744FEC6
|
||||
:100B2000938717002322F4FE832744FE0327C4FE85
|
||||
:100B3000E3ECE7EC130000008320C10503248105EA
|
||||
:100B40001301010667800000130101FC232E11022E
|
||||
:100B5000232C810213040104232EA4FC232CB4FCB7
|
||||
:100B6000232AC4FC2328D4FC2326E4FCB7370081C5
|
||||
:100B70000327C4FD23ACE798B73700819387879993
|
||||
:100B8000032784FD23A2E700B73700819387879965
|
||||
:100B9000032744FD23A4E700B73700819387879993
|
||||
:100BA0000327C4FC23A6E700B73700819387879902
|
||||
:100BB000032704FD23A8E7008327C4FC93D737004D
|
||||
:100BC0002326F4FE8327C4FC93F77700638807008D
|
||||
:100BD0008327C4FE938717002326F4FEB7370081CE
|
||||
:100BE000938787990327C4FE23AAE7000327C4FC41
|
||||
:100BF0009307700063F2E702B73700819386879905
|
||||
:100C0000B7170080138687C693058000032504FD6F
|
||||
:100C1000EFF0DF806F000002B7370081938687997D
|
||||
:100C2000B7170080138687C68325C4FC032504FDFF
|
||||
:100C3000EFF0CFFE032704FD9307800063F8E70081
|
||||
:100C400013058000EFF0DF8B6F00C000032504FD6B
|
||||
:100C5000EFF01F8B130000008320C10303248103E6
|
||||
:100C60001301010467800000130101FB2326110416
|
||||
:100C70002324810413040105232EA4FA232CB4FA9F
|
||||
:100C8000EFF0DF932320A4FE832704FE83A7070051
|
||||
:100C9000232EF4FC832704FE83A74700232CF4FCB7
|
||||
:100CA000832704FE83A78700232AF4FC832704FEFE
|
||||
:100CB00083A747012326F4FE0327C4FE8327C4FB32
|
||||
:100CC000B307F7022324F4FE8327C4FE639A0700C8
|
||||
:100CD000930710002326F4FE8327C4FB2324F4FE8D
|
||||
:100CE000832704FE83A7C7002328F4FC232204FEE5
|
||||
:100CF0006F00000C032784FB832704FD3307F702F2
|
||||
:100D0000832784FEB307F7002326F4FC032784FE21
|
||||
:100D1000832704FDB337F70093F7F70F2324F4FC80
|
||||
:100D2000832784FC93B71700A303F4FC834774FC68
|
||||
:100D3000138F0700B7170080938FC7D96B200F0060
|
||||
:100D40007B70FF018327C4FC939727000327C4FD12
|
||||
:100D5000B307F70083A607008327C4FC93972700F7
|
||||
:100D6000032784FDB307F70003A707008327C4FC0C
|
||||
:100D700093972700032644FDB307F6003387E60068
|
||||
:100D800023A0E700832784FE938717002324F4FE23
|
||||
:100D9000B7170080138E07DA67000E0013000000FB
|
||||
:100DA0006B300000832744FE938717002322F4FE54
|
||||
:100DB000832744FE0327C4FEE3EEE7F2130000009E
|
||||
:100DC0008320C1040324810413010105678000000E
|
||||
:100DD000130101FC232E1102232C810213040104B0
|
||||
:100DE000232EA4FC232CB4FC232AC4FC2328D4FCEB
|
||||
:100DF0002326E4FCB73700810327C4FD23ACE79822
|
||||
:100E0000B737008193878799032784FD23A2E700E2
|
||||
:100E1000B737008193878799032744FD23A4E70010
|
||||
:100E2000B7370081938787990327C4FC23A6E7007F
|
||||
:100E3000B737008193878799032704FD23A8E7002C
|
||||
:100E40008327C4FC93D737002326F4FE8327C4FCF2
|
||||
:100E500093F77700638807008327C4FE9387170002
|
||||
:100E60002326F4FEB7370081938787990327C4FEB2
|
||||
:100E700023AAE7000327C4FC9307700063F2E7028C
|
||||
:100E8000B737008193868799B7170080138607EFDD
|
||||
:100E900093058000032504FDEFF04FD86F0000029A
|
||||
:100EA000B737008193868799B7170080138607EFBD
|
||||
:100EB0008325C4FC032504FDEFF04FD6032704FD72
|
||||
:100EC0009307800063F8E70013058000EFF04FE31D
|
||||
:100ED0006F00C000032504FDEFF08FE21300000057
|
||||
:100EE0008320C103032481031301010467800000F0
|
||||
:100EF000130101FB2326110423248104130401059B
|
||||
:100F0000232EA4FA232CB4FAEFF04FEB2320A4FEF7
|
||||
:100F1000832704FE83A70700232EF4FC832704FE07
|
||||
:100F200083A74700232CF4FC832704FE83A78700B4
|
||||
:100F3000232AF4FC832704FE83A747012326F4FE1B
|
||||
:100F40000327C4FE8327C4FBB307F7022324F4FE60
|
||||
:100F50008327C4FE639A0700930710002326F4FE3C
|
||||
:100F60008327C4FB2324F4FE832704FE83A7C70042
|
||||
:100F70002328F4FC232204FE6F00000C032784FBCB
|
||||
:100F8000832704FD3307F702832784FEB307F700A6
|
||||
:100F90002326F4FC032784FE832704FDB337F700E0
|
||||
:100FA00093F7F70F2324F4FC832784FC93B71700EF
|
||||
:100FB000A303F4FC834774FC138F0700B71700806A
|
||||
:100FC000938F47026B200F007B70FF018327C4FCC7
|
||||
:100FD000939727000327C4FDB307F70083A60700F4
|
||||
:100FE0008327C4FC93972700032784FDB307F700EA
|
||||
:100FF00003A707008327C4FC93972700032644FD1B
|
||||
:10100000B307F6003387E64023A0E700832784FE7A
|
||||
:10101000938717002324F4FEB7170080138E8702EE
|
||||
:1010200067000E00130000006B300000832744FEB1
|
||||
:10103000938717002322F4FE832744FE0327C4FE70
|
||||
:10104000E3EEE7F2130000008320C10403248104CF
|
||||
:101050001301010567800000130101FE232E8100AA
|
||||
:1010600013040102232604FE6F008004B7370081B9
|
||||
:101070000327C4FE131727009387079BB307F700C6
|
||||
:101080001307300023A0E700B74700810327C4FE01
|
||||
:10109000131727009387079BB307F7001307200058
|
||||
:1010A00023A0E7008327C4FE938717002326F4FEBE
|
||||
:1010B0000327C4FE9307F003E3DAE7FA1300000006
|
||||
:1010C0000324C1011301010267800000130101FE26
|
||||
:1010D000232E1100232C810013040102EFF0DFF70F
|
||||
:1010E0001307800093061000B75700811386079BF3
|
||||
:1010F000B74700819385079BB73700811385079B0E
|
||||
:10110000EFF09FA4B707008113854714EFF0CFE1FC
|
||||
:10111000B707008113850716EFF00FE1232604FEC1
|
||||
:101120006F0040058327C4FE93F77700639807009C
|
||||
:10113000B70700811385C716EFF00FDFB75700819F
|
||||
:101140000327C4FE131727009387079BB307F700F5
|
||||
:1011500083A7070013850700EFF0CFE0B7070081F2
|
||||
:1011600013850717EFF04FDC8327C4FE9387170022
|
||||
:101170002326F4FE0327C4FE93077000E3D4E7FAA6
|
||||
:10118000B707008113854717EFF00FDA13078000C8
|
||||
:1011900093061000B75700811386079BB74700815D
|
||||
:1011A0009385079BB73700811385079BEFF05FC2DC
|
||||
:1011B000B707008113854714EFF00FD7B7070081F9
|
||||
:1011C00013858719EFF04FD6232404FE6F004005E6
|
||||
:1011D000832784FE93F7770063980700B7070081A1
|
||||
:1011E0001385C716EFF04FD4B7570081032784FE4D
|
||||
:1011F000131727009387079BB307F70083A7070000
|
||||
:1012000013850700EFF00FD6B70700811385071786
|
||||
:10121000EFF08FD1832784FE938717002324F4FEF9
|
||||
:10122000032784FE93077000E3D4E7FAB707008131
|
||||
:1012300013854717EFF04FCF930700001385070082
|
||||
:101240008320C10103248101130101026780000092
|
||||
:1000000013054000731005021305800073101502DC
|
||||
:10001000731040F17310103037F1FF7FEF0080193B
|
||||
:10002000EF10C01173000000938B0600130D070042
|
||||
:10003000130F01009303050013051000635C7500A6
|
||||
:1000400013010180130305006B5003001305150015
|
||||
:100050006FF0DFFE13010F0013050000930F060081
|
||||
:10006000938D0300EBE0BF01170500001305051B8E
|
||||
:100070006B40050017030000130343FB6B000300F4
|
||||
:1000800067800000170200011302022323200200F0
|
||||
:100090002322120023242200232632002328420098
|
||||
:1000A000232A5200232C6200232E72002320820276
|
||||
:1000B000232292022324A2022326B2022328C20270
|
||||
:1000C000232AD202232CE202232EF202232002054D
|
||||
:1000D0002322120523242205232632052328420544
|
||||
:1000E000232A5205232C6205232E72052320820722
|
||||
:1000F000232292072324A2072326B2072328C2071C
|
||||
:10010000232AD207232CE207232EF2071302100022
|
||||
:1001100067800000170200011302021A0320020088
|
||||
:1001200083204200032182008321C20003220201B6
|
||||
:1001300083224201032382018323C201032402029A
|
||||
:1001400083244202032582028325C202032602037E
|
||||
:1001500083264203032782038327C2030328020462
|
||||
:1001600083284204032982048329C204032A020546
|
||||
:10017000832A4205032B8205832BC205032C02062A
|
||||
:10018000832C4206032D8206832DC206032E02070E
|
||||
:10019000832E4207032F8207832FC207130200001A
|
||||
:1001A000678000007325000267800000732510023D
|
||||
:1001B00067800000130101FE232E1100232C810013
|
||||
:1001C00013040102232604FE6F0000030327C4FE6C
|
||||
:1001D0009307404C3307F702B707008193874733F3
|
||||
:1001E000B307F70013850700EF0040418327C4FEE3
|
||||
:1001F000938717002326F4FE0327C4FE930770009D
|
||||
:10020000E3D6E7FC130000008320C1010324810131
|
||||
:100210001301010267800000130101FD2326110272
|
||||
:10022000232481022322A1031304010313070D00D9
|
||||
:100230009307404C3307F702B70700819387473392
|
||||
:10024000B307F70013850700EF00804C9307050004
|
||||
:10025000638A070213070D00B707008113172700F1
|
||||
:1002600093874729B307F7001307100023A0E7007F
|
||||
:1002700093070D0063960700EFF0DFE96F0080053C
|
||||
:100280007300000013070D009307404C3307F7027B
|
||||
:10029000B707008193874733B307F700130784FD3F
|
||||
:1002A0009305070013850700EF00003E832704FE37
|
||||
:1002B000138107008327C4FD832584FD032644FEA4
|
||||
:1002C000832684FE0327C4FE13850700EFF0DFD5E5
|
||||
:1002D000730000008320C10203248102032D410228
|
||||
:1002E0001301010367800000130101FB23261104A1
|
||||
:1002F0002324810413040105EFF0DFEA2324A4FE84
|
||||
:1003000093090100930710002326F4FE6F004008B4
|
||||
:100310000327C4FE9307404C3307F702B707008159
|
||||
:1003200093874733B307F70013850700EF00403E7C
|
||||
:1003300093070500639807040327C4FE9307404C06
|
||||
:100340003307F702B707008193874733B307F700F6
|
||||
:10035000130704FD9305070013850700EF00C03263
|
||||
:10036000832784FD13810700832744FD832504FD33
|
||||
:100370000326C4FD832604FE032744FE13850700DD
|
||||
:10038000EFF05FCF8327C4FE938717002326F4FE88
|
||||
:100390008327C4FE032784FEE3ECE7F613810900FC
|
||||
:1003A000EFF05FCE9307020063880704B707008170
|
||||
:1003B00013854733EF00C03593070500639E07029E
|
||||
:1003C000930784FB93850700B707008113854733A4
|
||||
:1003D000EF00802B832704FC138107008327C4FBD5
|
||||
:1003E000832584FB032644FC832684FC0327C4FC6A
|
||||
:1003F00013850700EFF05FC3130000008320C104E2
|
||||
:10040000032481041301010567800000130101FB2F
|
||||
:10041000232611042324810413040105232EA4FAA6
|
||||
:10042000232CB4FA232AC4FA2328D4FAEFF09FD855
|
||||
:10043000EFF05FD72322A4FE832544FEB707008197
|
||||
:1004400013850704EF00C03F13090100232604FEB3
|
||||
:10045000232404FE6F00C008B709FFFF33013101F8
|
||||
:10046000832784FE2326F4FC832784FB2328F4FCC3
|
||||
:1004700093070100232AF4FC832744FB232CF4FC7C
|
||||
:10048000832704FB232EF4FC8327C4FE2320F4FEE1
|
||||
:100490000327C4FE9307404C3307F702B7070081D8
|
||||
:1004A00093874733B307F7001307C4FC930507008E
|
||||
:1004B00013850700EF00C0168327C4FE938717003B
|
||||
:1004C0002326F4FE8327C4FE032744FE63E4E700EB
|
||||
:1004D000232604FE832784FE938717002324F4FE3B
|
||||
:1004E000032784FE8327C4FBE368F7F613010900A2
|
||||
:1004F000EFF09FDF130000008320C1040324810478
|
||||
:100500001301010567800000130101FD232611027C
|
||||
:100510002324810213040103232EA4FCEFF09FC8BF
|
||||
:100520002320A4FE232604FE6F004005232604FE9C
|
||||
:10053000232404FE6F00C003B7070081032784FE55
|
||||
:100540001317270093874729B307F70003A707006E
|
||||
:10055000930710006318F7008327C4FE93871700E2
|
||||
:100560002326F4FE832784FE938717002324F4FEBA
|
||||
:10057000832784FE032704FEE3E0E7FC0327C4FE91
|
||||
:100580008327C4FDE314F7FA232204FE6F008002E0
|
||||
:10059000B7070081032744FE1317270093874729D5
|
||||
:1005A000B307F70023A00700832744FE93871700B3
|
||||
:1005B0002322F4FE832744FE032704FEE3EAE7FC3C
|
||||
:1005C000130000008320C1020324810213010103F0
|
||||
:1005D00067800000130101FF23268100232471019D
|
||||
:1005E0001304010193870B00138507000324C10046
|
||||
:1005F000832B810013010101678000009302050035
|
||||
:10060000130300009303700023A0620023A2620082
|
||||
:1006100023A4620023A6720023A862006780000062
|
||||
:100620009302050003A382001303130023A46200B6
|
||||
:100630001383420183AE420093935E003303730041
|
||||
:1006400003AE05002320C30103AE45002322C301EE
|
||||
:1006500003AE85002324C30103AEC5002326C301D6
|
||||
:1006600003AE05012328C30103AE4501232AC301BC
|
||||
:10067000938E1E00130F20036394EE01930E00006F
|
||||
:1006800023A2D201678000009302050003A3820029
|
||||
:100690001303F3FF23A462001383420183AE02001D
|
||||
:1006A000930F2003138F0E00130F1F006314FF011D
|
||||
:1006B000130F000023A0E20193935E003303730045
|
||||
:1006C000032E030023A0C501032E430023A2C5016E
|
||||
:1006D000032E830023A4C501032EC30023A6C50156
|
||||
:1006E000032E030123A8C501032E430123AAC5013C
|
||||
:1006F000678000009302050003A382001305000039
|
||||
:10070000130E200363146E001305150067800000AC
|
||||
:100710009302050003A3820013050000130E0000DE
|
||||
:1007200063146E0013051500678000009302050036
|
||||
:1007300003A3C20083A3020133B5630067800000F6
|
||||
:10074000130141FF232011002322B100834505003E
|
||||
:1007500063880500EF00C001130515006FF01FFF4F
|
||||
:1007600083200100832541001301C1006780000040
|
||||
:10077000B708010023A0B80067800000130101FD45
|
||||
:10078000232611022324810213040103232EA4FC37
|
||||
:100790000327C4FD9307F00063E4E702B707008175
|
||||
:1007A0000327C4FD131727009387471DB307F700DE
|
||||
:1007B00083A7070013850700EFF09FF86F0040073D
|
||||
:1007C000930700022326F4FEA30504FE8327C4FE3C
|
||||
:1007D0009387C7FF0327C4FDB357F70093F7F700CC
|
||||
:1007E0002322F4FE832744FE63860700930710004C
|
||||
:1007F000A305F4FE8347B4FE63820702B7070081B6
|
||||
:10080000032744FE131727009387471DB307F700FC
|
||||
:1008100083A7070013850700EFF09FF28327C4FE2C
|
||||
:100820009387C7FF2326F4FE8327C4FEE340F0FA34
|
||||
:100830008320C102032481021301010367800000A9
|
||||
:10084000130101FE232E1100232C81001304010249
|
||||
:100850002326A4FE2324B4FE0325C4FEEFF05FEE9E
|
||||
:10086000032584FEEFF09FF1B70700811385870908
|
||||
:10087000EFF01FED130000008320C101032481016C
|
||||
:100880001301010267800000130101FD23261102FC
|
||||
:100890002324810213040103232EA4FC232CB4FC83
|
||||
:1008A000232AC4FC2328D4FCB73700810327C4FDC6
|
||||
:1008B00023AAE796B737008193874797032784FDDC
|
||||
:1008C00023A2E700B737008193874797032744FDAA
|
||||
:1008D00023A4E700B737008193874797032704FDD8
|
||||
:1008E00023A6E700EFF09F8C2324A4FE032704FD3A
|
||||
:1008F000832784FEB357F7022326F4FE032704FD63
|
||||
:10090000832784FEB377F702638807008327C4FE3A
|
||||
:10091000938717002326F4FE8325C4FEB7070081C2
|
||||
:100920001385C70DEFF0DFF1B73700819387479745
|
||||
:100930000327C4FE23A8E700032704FD832784FEC2
|
||||
:100940006362F702B737008193864797B717008035
|
||||
:100950001386C79B832584FE032504FDEFF01FABA0
|
||||
:100960006F000002B737008193864797B717008062
|
||||
:100970001386C79B832504FD032504FDEFF01FA903
|
||||
:10098000EFF05F822322A4FE032704FD832744FEA9
|
||||
:1009900063F8E700032544FEEFF01FB76F00C000C7
|
||||
:1009A000032504FDEFF05FB6130000008320C102B1
|
||||
:1009B000032481021301010367800000130101FA7F
|
||||
:1009C000232E1104232C8104130401062326A4FAE8
|
||||
:1009D0002324B4FAEFF01FC0232CA4FC832784FD4A
|
||||
:1009E00083A70700232AF4FC832784FD83A74700FD
|
||||
:1009F0002328F4FC832784FD83A787002326F4FCA7
|
||||
:100A0000832784FD83A707012326F4FE0327C4FE62
|
||||
:100A10008327C4FAB307F7022324F4FE8327C4FE16
|
||||
:100A2000639A0700930710002326F4FE8327C4FA75
|
||||
:100A30002324F4FE832784FD83A7C7002324F4FC2A
|
||||
:100A4000232204FE6F004012232004FE232E04FC08
|
||||
:100A50006F008007032784FA832784FCB307F7021B
|
||||
:100A60000327C4FDB307F7002322F4FC032784FC0B
|
||||
:100A70008327C4FDB307F702032784FEB307F700FB
|
||||
:100A80002320F4FC832744FC93972700032744FD8D
|
||||
:100A9000B307F70003A70700832704FC93972700F9
|
||||
:100AA000832604FDB387F60083A70700B307F70288
|
||||
:100AB000032704FEB307F7002320F4FE8327C4FDB9
|
||||
:100AC00093871700232EF4FC0327C4FD832784FC9F
|
||||
:100AD000E362F7F8032784FA832784FC3307F702DD
|
||||
:100AE000832784FEB307F700232EF4FA032784FE3E
|
||||
:100AF000832784FCB337F70093F7F70F232CF4FA1E
|
||||
:100B0000832784FB93B71700A30BF4FA834774FB86
|
||||
:100B1000138F0700B7170080938F47B56B200F0026
|
||||
:100B20007B70FF018327C4FB939727000327C4FC36
|
||||
:100B3000B307F700032704FE23A0E700832784FE02
|
||||
:100B4000938717002324F4FEB7170080138E87B510
|
||||
:100B500067000E00130000006B300000832744FE86
|
||||
:100B6000938717002322F4FE832744FE0327C4FE45
|
||||
:100B7000E3ECE7EC130000008320C10503248105AA
|
||||
:100B80001301010667800000130101FC232E1102EE
|
||||
:100B9000232C810213040104232EA4FC232CB4FC77
|
||||
:100BA000232AC4FC2328D4FC2326E4FCB737008185
|
||||
:100BB0000327C4FD23A4E798B7370081938787985C
|
||||
:100BC000032784FD23A2E700B73700819387879826
|
||||
:100BD000032744FD23A4E700B73700819387879854
|
||||
:100BE0000327C4FC23A6E700B737008193878798C3
|
||||
:100BF000032704FD23A8E700EFF04FDB2324A4FE26
|
||||
:100C00000327C4FC832784FEB357F7022326F4FE90
|
||||
:100C10000327C4FC832784FEB377F70263880700A9
|
||||
:100C20008327C4FE938717002326F4FEB73700817D
|
||||
:100C3000938787980327C4FE23AAE7000327C4FCF1
|
||||
:100C4000832784FE6362F702B73700819386879813
|
||||
:100C5000B7170080138607CC832584FE032504FD87
|
||||
:100C6000EFF0CFFA6F000002B737008193868798C4
|
||||
:100C7000B7170080138607CC8325C4FC032504FD29
|
||||
:100C8000EFF0CFF8EFF00FD22322A4FE032704FDEC
|
||||
:100C9000832744FE63F8E700032544FEEFF0DF8678
|
||||
:100CA0006F00C000032504FDEFF01F861300000055
|
||||
:100CB0008320C10303248103130101046780000022
|
||||
:100CC000130101FB232611042324810413040105CD
|
||||
:100CD000232EA4FA232CB4FAEFF0DF8F2320A4FEF6
|
||||
:100CE000832704FE83A70700232EF4FC832704FE3A
|
||||
:100CF00083A74700232CF4FC832704FE83A78700E7
|
||||
:100D0000232AF4FC832704FE83A747012326F4FE4D
|
||||
:100D10000327C4FE8327C4FBB307F7022324F4FE92
|
||||
:100D20008327C4FE639A0700930710002326F4FE6E
|
||||
:100D30008327C4FB2324F4FE832704FE83A7C70074
|
||||
:100D40002328F4FC232204FE6F00000C032784FBFD
|
||||
:100D5000832704FD3307F702832784FEB307F700D8
|
||||
:100D60002326F4FC032784FE832704FDB337F70012
|
||||
:100D700093F7F70F2324F4FC832784FC93B7170021
|
||||
:100D8000A303F4FC834774FC138F0700B71700809C
|
||||
:100D9000938F47DF6B200F007B70FF018327C4FC1C
|
||||
:100DA000939727000327C4FDB307F70083A6070026
|
||||
:100DB0008327C4FC93972700032784FDB307F7001C
|
||||
:100DC00003A707008327C4FC93972700032644FD4D
|
||||
:100DD000B307F6003387E60023A0E700832784FEED
|
||||
:100DE000938717002324F4FEB7170080138E87DF44
|
||||
:100DF00067000E00130000006B300000832744FEE4
|
||||
:100E0000938717002322F4FE832744FE0327C4FEA2
|
||||
:100E1000E3EEE7F2130000008320C1040324810401
|
||||
:100E20001301010567800000130101FC232E11024C
|
||||
:100E3000232C810213040104232EA4FC232CB4FCD4
|
||||
:100E4000232AC4FC2328D4FC2326E4FCB7370081E2
|
||||
:100E50000327C4FD23A4E798B737008193878798B9
|
||||
:100E6000032784FD23A2E700B73700819387879883
|
||||
:100E7000032744FD23A4E700B737008193878798B1
|
||||
:100E80000327C4FC23A6E700B73700819387879820
|
||||
:100E9000032704FD23A8E700EFF04FB12324A4FEAD
|
||||
:100EA0000327C4FC832784FEB357F7022326F4FEEE
|
||||
:100EB0000327C4FC832784FEB377F7026388070007
|
||||
:100EC0008327C4FE938717002326F4FEB7370081DB
|
||||
:100ED000938787980327C4FE23AAE7000327C4FC4F
|
||||
:100EE000832784FE6362F702B73700819386879871
|
||||
:100EF000B7170080138607F6832584FE032504FDBB
|
||||
:100F0000EFF0CFD06F000002B7370081938687984B
|
||||
:100F1000B7170080138607F68325C4FC032504FD5C
|
||||
:100F2000EFF0CFCEEFF00FA82322A4FE032704FD9D
|
||||
:100F3000832744FE63F8E700032544FEEFF0CFDC8F
|
||||
:100F40006F00C000032504FDEFF00FDC130000006C
|
||||
:100F50008320C1030324810313010104678000007F
|
||||
:100F6000130101FB2326110423248104130401052A
|
||||
:100F7000232EA4FA232CB4FAEFF0CFE52320A4FE0D
|
||||
:100F8000832704FE83A70700232EF4FC832704FE97
|
||||
:100F900083A74700232CF4FC832704FE83A7870044
|
||||
:100FA000232AF4FC832704FE83A747012326F4FEAB
|
||||
:100FB0000327C4FE8327C4FBB307F7022324F4FEF0
|
||||
:100FC0008327C4FE639A0700930710002326F4FECC
|
||||
:100FD0008327C4FB2324F4FE832704FE83A7C700D2
|
||||
:100FE0002328F4FC232204FE6F00000C032784FB5B
|
||||
:100FF000832704FD3307F702832784FEB307F70036
|
||||
:101000002326F4FC032784FE832704FDB337F7006F
|
||||
:1010100093F7F70F2324F4FC832784FC93B717007E
|
||||
:10102000A303F4FC834774FC138F0700B7170080F9
|
||||
:10103000938F47096B200F007B70FF018327C4FC4F
|
||||
:10104000939727000327C4FDB307F70083A6070083
|
||||
:101050008327C4FC93972700032784FDB307F70079
|
||||
:1010600003A707008327C4FC93972700032644FDAA
|
||||
:10107000B307F6003387E64023A0E700832784FE0A
|
||||
:10108000938717002324F4FEB7170080138E870977
|
||||
:1010900067000E00130000006B300000832744FE41
|
||||
:1010A000938717002322F4FE832744FE0327C4FE00
|
||||
:1010B000E3EEE7F2130000008320C104032481045F
|
||||
:1010C0001301010567800000130101FE232E81003A
|
||||
:1010D00013040102232604FE6F008004B737008149
|
||||
:1010E0000327C4FE131727009387079AB307F70057
|
||||
:1010F0001307300023A0E700B74700810327C4FE91
|
||||
:10110000131727009387079AB307F70013072000E8
|
||||
:1011100023A0E7008327C4FE938717002326F4FE4D
|
||||
:101120000327C4FE9307F00FE3DAE7FA1300000089
|
||||
:101130000324C1011301010267800000130101FEB5
|
||||
:10114000232E1100232C810013040102EFF0DFF79E
|
||||
:1011500093060001B75700811386079AB7470081AD
|
||||
:101160009385079AB73700811385079AEFF0CFF17F
|
||||
:10117000B707008113858712EFF08FDCB707008176
|
||||
:1011800013854714EFF0CFDB232604FE6F004005E4
|
||||
:101190008327C4FE93F7F70063980700B707008121
|
||||
:1011A00013850715EFF0CFD9B75700810327C4FE89
|
||||
:1011B000131727009387079AB307F70083A7070041
|
||||
:1011C00013850700EFF08FDBB70700811385471504
|
||||
:1011D000EFF00FD78327C4FE938717002326F4FE72
|
||||
:1011E0000327C4FE9307F00FE3D4E7FAB7070081A3
|
||||
:1011F00013858715EFF0CFD4130700019306000184
|
||||
:10120000B75700811386079AB74700819385079ADD
|
||||
:10121000B73700811385079AEFF01F97B707008152
|
||||
:1012200013858712EFF0CFD1B70700811385C71759
|
||||
:10123000EFF00FD1232404FE6F004005832784FEC6
|
||||
:1012400093F7F70063980700B70700811385071528
|
||||
:10125000EFF00FCFB7570081032784FE1317270045
|
||||
:101260009387079AB307F70083A707001385070042
|
||||
:10127000EFF0CFD0B707008113854715EFF04FCCC3
|
||||
:10128000832784FE938717002324F4FE032784FE1C
|
||||
:101290009307F00FE3D4E7FAB707008113858715AA
|
||||
:1012A000EFF00FCA1307000193060001B757008142
|
||||
:1012B0001386079AB74700819385079AB73700814D
|
||||
:1012C0001385079AEFF05FB6B70700811385871281
|
||||
:1012D000EFF00FC7B707008113858718EFF04FC6EF
|
||||
:1012E000232204FE6F004005832744FE93F7F70096
|
||||
:1012F00063980700B707008113850715EFF04FC407
|
||||
:10130000B7570081032744FE131727009387079AD6
|
||||
:10131000B307F70083A7070013850700EFF00FC698
|
||||
:10132000B707008113854715EFF08FC1832744FE6F
|
||||
:10133000938717002322F4FE032744FE9307F00F40
|
||||
:10134000E3D4E7FAB707008113858715EFF04FBFA5
|
||||
:1013500093070000138507008320C1010324810146
|
||||
:08136000130101026780000087
|
||||
:02000004810079
|
||||
:10000000300000003100000032000000330000002A
|
||||
:10001000340000003500000036000000370000000A
|
||||
:10002000380000003900000061000000620000009C
|
||||
:10003000630000006400000065000000660000002E
|
||||
:10004000446F6E653A200000736176656420636FCB
|
||||
:100050006E746578740A0000666F756E6420736F45
|
||||
:100060006D657468696E6720666F722077300A006C
|
||||
:100070006E756D5F746872656164733A200000008C
|
||||
:1000800030000000310000003200000033000000AA
|
||||
:10009000340000003500000036000000370000008A
|
||||
:1000A000380000003900000061000000620000001C
|
||||
:1000B00063000000640000006500000066000000AE
|
||||
:1000C0000A00000030000000310000003200000093
|
||||
:1000D000330000003400000035000000360000004E
|
||||
:1000E0003700000038000000390000006100000007
|
||||
:1000F0006200000063000000640000006500000072
|
||||
:1001000066000000300000003100000032000000F6
|
||||
:10011000330000003400000035000000360000000D
|
||||
:1001200037000000380000003900000061000000C6
|
||||
:100130006200000063000000640000006500000031
|
||||
:10014000660000002D2D2D2D2D2D2D2D2D2D2D2D2D
|
||||
:100150002D2D2D2D2D2D2D2D2D2D2D2D2D0A00004C
|
||||
:1001600046494E414C204144440A00000A00000028
|
||||
:10017000200000000A2D2D2D2D2D2D2D2D2D2D2D66
|
||||
:100180002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D9F
|
||||
:100190002D2D2D2D0A00000046494E414C2053754F
|
||||
:0301A000620A00F0
|
||||
:1001A4000000008104000081080000810C0000812F
|
||||
:1001B4001000008114000081180000811C000081DF
|
||||
:1001C4002000008124000081280000812C0000818F
|
||||
:1001D4003000008134000081380000813C0000813F
|
||||
:1001E4008000008184000081880000818C000081EF
|
||||
:1001F4009000008194000081980000819C0000819F
|
||||
:10020400A0000081A4000081A8000081AC0000814E
|
||||
:10021400B0000081B4000081B8000081BC000081FE
|
||||
:10022400C4000081C8000081CC000081D00000819E
|
||||
:10023400D4000081D8000081DC000081E00000814E
|
||||
:10024400E4000081E8000081EC000081F0000081FE
|
||||
:10025400F4000081F8000081FC00008100010081AD
|
||||
:1002640004010081080100810C010081100100815A
|
||||
:1002740014010081180100811C010081200100810A
|
||||
:1002840024010081280100812C01008130010081BA
|
||||
:1002940034010081380100813C010081400100816A
|
||||
:100040004E756D20617661696C61626C65207761C7
|
||||
:100050007270733A20000000300000003100000090
|
||||
:1000600032000000330000003400000035000000C2
|
||||
:1000700036000000370000003800000039000000A2
|
||||
:1000800061000000620000006300000064000000E6
|
||||
:1000900065000000660000000A000000300000005B
|
||||
:1000A0003100000032000000330000003400000086
|
||||
:1000B0003500000036000000370000003800000066
|
||||
:1000C00039000000610000006200000063000000D1
|
||||
:1000D0006400000065000000660000004F66667363
|
||||
:1000E00065743A200000000030000000310000007C
|
||||
:1000F0003200000033000000340000003500000032
|
||||
:100100003600000037000000380000003900000011
|
||||
:100110006100000062000000630000006400000055
|
||||
:1001200065000000660000002D2D2D2D2D2D2D2D9C
|
||||
:100130002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEF
|
||||
:100140002D0A000046494E414C204D41540A000002
|
||||
:100150000A000000200000000A2D2D2D2D2D2D2D30
|
||||
:100160002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DBF
|
||||
:100170002D2D2D2D2D2D2D2D0A00000046494E41EF
|
||||
:100180004C204144440A000046494E414C205375DE
|
||||
:03019000620A0000
|
||||
:100194000000008104000081080000810C0000813F
|
||||
:1001A4001000008114000081180000811C000081EF
|
||||
:1001B4002000008124000081280000812C0000819F
|
||||
:1001C4003000008134000081380000813C0000814F
|
||||
:1001D400580000815C00008160000081640000819F
|
||||
:1001E400680000816C00008170000081740000814F
|
||||
:1001F400780000817C0000818000008184000081FF
|
||||
:10020400880000818C0000819000008194000081AE
|
||||
:100214009C000081A0000081A4000081A80000814E
|
||||
:10022400AC000081B0000081B4000081B8000081FE
|
||||
:10023400BC000081C0000081C4000081C8000081AE
|
||||
:10024400CC000081D0000081D4000081D80000815E
|
||||
:10025400E8000081EC000081F0000081F4000081DE
|
||||
:10026400F8000081FC00008100010081040100818C
|
||||
:10027400080100810C01008110010081140100813A
|
||||
:10028400180100811C0100812001008124010081EA
|
||||
:040000058000000077
|
||||
:00000001FF
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
#include "vx_front.h"
|
||||
#include "../vx_os/vx_back/vx_back.h"
|
||||
|
||||
// -------------------------- Matrix Multiplication --------------------------
|
||||
|
||||
|
@ -13,28 +14,34 @@ void vx_sq_mat_mult(void * x, void * y, void * z, unsigned mat_dim)
|
|||
mat_mult_args.z = z;
|
||||
mat_mult_args.mat_dim = mat_dim;
|
||||
|
||||
unsigned off = (mat_dim/MAX_THREADS);
|
||||
unsigned num_avail_threads = vx_available_threads();
|
||||
|
||||
if ((mat_dim%MAX_THREADS) != 0)
|
||||
unsigned off = (mat_dim/num_avail_threads);
|
||||
|
||||
if ((mat_dim%num_avail_threads) != 0)
|
||||
{
|
||||
off += 1;
|
||||
}
|
||||
|
||||
vx_printf("Offset: ", off);
|
||||
|
||||
|
||||
mat_mult_args.offset = off;
|
||||
|
||||
if (mat_dim >= MAX_THREADS)
|
||||
if (mat_dim >= num_avail_threads)
|
||||
{
|
||||
vx_spawnWarps(mat_dim, MAX_THREADS, _vx_mat_mult, (void *) (&mat_mult_args));
|
||||
vx_spawnWarps(mat_dim, num_avail_threads, _vx_mat_mult, (void *) (&mat_mult_args));
|
||||
}
|
||||
else
|
||||
{
|
||||
vx_spawnWarps(mat_dim, mat_dim, _vx_mat_mult, (void *) (&mat_mult_args));
|
||||
}
|
||||
|
||||
if (mat_dim > MAX_WARPS)
|
||||
unsigned num_avail_warps = vx_available_warps();
|
||||
|
||||
if (mat_dim > num_avail_warps)
|
||||
{
|
||||
vx_wait_for_warps(MAX_WARPS);
|
||||
vx_wait_for_warps(num_avail_warps);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -102,9 +109,12 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co
|
|||
mat_r_args.num_cols = num_cols;
|
||||
mat_r_args.num_rows = num_rows;
|
||||
|
||||
unsigned off = (num_cols/MAX_THREADS);
|
||||
|
||||
if ((num_cols%MAX_THREADS) != 0)
|
||||
unsigned num_avail_threads = vx_available_threads();
|
||||
|
||||
unsigned off = (num_cols/num_avail_threads);
|
||||
|
||||
if ((num_cols%num_avail_threads) != 0)
|
||||
{
|
||||
off += 1;
|
||||
}
|
||||
|
@ -112,18 +122,20 @@ void vx_mat_add(void * x, void * y, void * z, unsigned num_rows, unsigned num_co
|
|||
|
||||
mat_r_args.offset = off;
|
||||
|
||||
if (num_cols >= MAX_THREADS)
|
||||
if (num_cols >= num_avail_threads)
|
||||
{
|
||||
vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_add, (void *) (&mat_r_args));
|
||||
vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_add, (void *) (&mat_r_args));
|
||||
}
|
||||
else
|
||||
{
|
||||
vx_spawnWarps(num_rows, num_cols, _vx_mat_add, (void *) (&mat_r_args));
|
||||
}
|
||||
|
||||
if (num_rows > (MAX_WARPS))
|
||||
unsigned num_avail_warps = vx_available_warps();
|
||||
|
||||
if (num_rows > num_avail_warps)
|
||||
{
|
||||
vx_wait_for_warps(MAX_WARPS);
|
||||
vx_wait_for_warps(num_avail_warps);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -182,9 +194,11 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co
|
|||
mat_r_args.num_cols = num_cols;
|
||||
mat_r_args.num_rows = num_rows;
|
||||
|
||||
unsigned off = (num_cols/MAX_THREADS);
|
||||
unsigned num_avail_threads = vx_available_threads();
|
||||
|
||||
if ((num_cols%MAX_THREADS) != 0)
|
||||
unsigned off = (num_cols/num_avail_threads);
|
||||
|
||||
if ((num_cols%num_avail_threads) != 0)
|
||||
{
|
||||
off += 1;
|
||||
}
|
||||
|
@ -192,18 +206,20 @@ void vx_mat_sub(void * x, void * y, void * z, unsigned num_rows, unsigned num_co
|
|||
|
||||
mat_r_args.offset = off;
|
||||
|
||||
if (num_cols >= MAX_THREADS)
|
||||
if (num_cols >= num_avail_threads)
|
||||
{
|
||||
vx_spawnWarps(num_rows, MAX_THREADS, _vx_mat_sub, (void *) (&mat_r_args));
|
||||
vx_spawnWarps(num_rows, num_avail_threads, _vx_mat_sub, (void *) (&mat_r_args));
|
||||
}
|
||||
else
|
||||
{
|
||||
vx_spawnWarps(num_rows, num_cols, _vx_mat_sub, (void *) (&mat_r_args));
|
||||
}
|
||||
|
||||
if (num_rows > (MAX_WARPS))
|
||||
unsigned num_avail_warps = vx_available_warps();
|
||||
|
||||
if (num_rows > num_avail_warps)
|
||||
{
|
||||
vx_wait_for_warps(MAX_WARPS);
|
||||
vx_wait_for_warps(num_avail_warps);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
#include "../vx_os/vx_back/vx_back.h"
|
||||
#include "../vx_os/vx_io/vx_io.h"
|
||||
|
||||
#define MAX_WARPS 8
|
||||
#define MAX_THREADS 8
|
||||
|
||||
|
||||
// -------------------------- Matrix Multiplication --------------------------
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ unsigned x[1024] = {0};
|
|||
unsigned y[1024] = {0};
|
||||
unsigned z[1024] = {0};
|
||||
|
||||
#define MAT_DIM 8
|
||||
#define MAT_DIM 16
|
||||
|
||||
#define NUM_COLS 8
|
||||
#define NUM_ROWS 1
|
||||
#define NUM_COLS 16
|
||||
#define NUM_ROWS 16
|
||||
|
||||
void initialize_mats()
|
||||
{
|
||||
|
@ -24,18 +24,18 @@ int main()
|
|||
|
||||
initialize_mats();
|
||||
|
||||
// // matrix multiplication
|
||||
// vx_sq_mat_mult(x, y, z, MAT_DIM);
|
||||
// vx_print_str("-------------------------\n");
|
||||
// vx_print_str("FINAL MAT\n");
|
||||
// matrix multiplication
|
||||
vx_sq_mat_mult(x, y, z, MAT_DIM);
|
||||
vx_print_str("-------------------------\n");
|
||||
vx_print_str("FINAL MAT\n");
|
||||
|
||||
// for (int j = 0; j < (MAT_DIM * MAT_DIM); j++)
|
||||
// {
|
||||
// if ((j % MAT_DIM) == 0) vx_print_str("\n");
|
||||
// vx_print_hex(z[j]);
|
||||
// vx_print_str(" ");
|
||||
// }
|
||||
// vx_print_str("\n-------------------------------\n");
|
||||
for (int j = 0; j < (MAT_DIM * MAT_DIM); j++)
|
||||
{
|
||||
if ((j % MAT_DIM) == 0) vx_print_str("\n");
|
||||
vx_print_hex(z[j]);
|
||||
vx_print_str(" ");
|
||||
}
|
||||
vx_print_str("\n-------------------------------\n");
|
||||
|
||||
|
||||
// matrix addition
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
void vx_before_main()
|
||||
{
|
||||
// unsigned num_available_warps = vx_available_warps();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
queue_initialize(q + i);
|
||||
|
@ -20,7 +21,7 @@ void vx_reschedule_warps()
|
|||
|
||||
if (queue_isEmpty(q+curr_warp))
|
||||
{
|
||||
vx_printf("Done: ", curr_warp);
|
||||
// vx_printf("Done: ", curr_warp);
|
||||
done[curr_warp] = 1;
|
||||
if (curr_warp == 0)
|
||||
{
|
||||
|
@ -44,11 +45,11 @@ void vx_reschedule_warps()
|
|||
void vx_schedule_warps()
|
||||
{
|
||||
|
||||
|
||||
unsigned num_available_warps = vx_available_warps();
|
||||
|
||||
asm __volatile__("mv s3, sp");
|
||||
|
||||
for (int curr_warp = 1; curr_warp < 8; ++curr_warp)
|
||||
for (int curr_warp = 1; curr_warp < num_available_warps; ++curr_warp)
|
||||
{
|
||||
if (!queue_isEmpty(q+curr_warp))
|
||||
{
|
||||
|
@ -64,17 +65,17 @@ void vx_schedule_warps()
|
|||
|
||||
vx_save_context();
|
||||
|
||||
vx_print_str("saved context\n");
|
||||
// vx_print_str("saved context\n");
|
||||
|
||||
register unsigned val asm("tp");
|
||||
if (val)
|
||||
{
|
||||
if (!queue_isEmpty(q))
|
||||
{
|
||||
vx_print_str("found something for w0\n");
|
||||
// vx_print_str("found something for w0\n");
|
||||
Job j;
|
||||
queue_dequeue(q,&j);
|
||||
vx_printf("num_threads: ", j.n_threads);
|
||||
// vx_printf("num_threads: ", j.n_threads);
|
||||
asm __volatile__("mv sp,%0"::"r" (j.base_sp):);
|
||||
vx_createThreads(j.n_threads, j.wid, j.func_ptr, j.args, j.assigned_warp);
|
||||
}
|
||||
|
@ -83,10 +84,13 @@ void vx_schedule_warps()
|
|||
}
|
||||
|
||||
|
||||
|
||||
void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args)
|
||||
{
|
||||
vx_before_main();
|
||||
|
||||
unsigned num_available_warps = vx_available_warps();
|
||||
vx_printf("Num available warps: ", num_available_warps);
|
||||
|
||||
asm __volatile__("addi s2, sp, 0");
|
||||
int warp = 0;
|
||||
for (unsigned i = 0; i < num_Warps; i++)
|
||||
|
@ -105,7 +109,7 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args)
|
|||
|
||||
queue_enqueue(q + warp,&j);
|
||||
++warp;
|
||||
if (warp >= 8) warp = 0;
|
||||
if (warp >= num_available_warps) warp = 0;
|
||||
}
|
||||
asm __volatile__("addi sp, s2, 0");
|
||||
|
||||
|
@ -117,11 +121,12 @@ void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void * args)
|
|||
void vx_wait_for_warps(unsigned num_wait)
|
||||
{
|
||||
// vx_printf("wait for: ", num_wait);
|
||||
unsigned num_available_warps = vx_available_warps();
|
||||
unsigned num = 0;
|
||||
while (num != num_wait)
|
||||
{
|
||||
num = 0;
|
||||
for (int i = 0; i < 8; i++)
|
||||
for (int i = 0; i < num_available_warps; i++)
|
||||
{
|
||||
if (done[i] == 1)
|
||||
{
|
||||
|
@ -131,7 +136,7 @@ void vx_wait_for_warps(unsigned num_wait)
|
|||
}
|
||||
|
||||
// vx_printf("num found: ", num);
|
||||
for (int i = 0; i < num_wait; i++) done[i] = 0;
|
||||
for (int i = 0; i < num_available_warps; i++) done[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,10 @@ void vx_load_context(void);
|
|||
|
||||
#define FUNC void (func)(unsigned, unsigned)
|
||||
|
||||
unsigned vx_available_warps(void);
|
||||
unsigned vx_available_threads(void);
|
||||
|
||||
|
||||
void vx_createThreads(unsigned, unsigned, unsigned, void *, unsigned);
|
||||
void vx_wspawn(unsigned, unsigned, unsigned, void *, unsigned);
|
||||
void vx_spawnWarps(unsigned num_Warps, unsigned num_threads, FUNC, void *);
|
||||
|
|
|
@ -6,6 +6,12 @@
|
|||
.type _start, @function
|
||||
.global _start
|
||||
_start:
|
||||
li a0, 4 # Num Warps
|
||||
csrw 0x20, a0 # Setting the number of available warps
|
||||
li a0, 8 # Num Threads
|
||||
csrw 0x21, a0 # Setting the number of available threads
|
||||
csrw mhartid,zero
|
||||
csrw misa,zero
|
||||
lui sp, 0x7ffff
|
||||
jal vx_before_main
|
||||
jal main
|
||||
|
@ -127,3 +133,19 @@ lw x31, 124(tp)
|
|||
li tp, 0
|
||||
ret
|
||||
|
||||
.type vx_available_warps, @function
|
||||
.global vx_available_warps
|
||||
vx_available_warps:
|
||||
csrr a0, 0x20
|
||||
ret
|
||||
|
||||
.type vx_available_threads, @function
|
||||
.global vx_available_threads
|
||||
vx_available_threads:
|
||||
csrr a0, 0x21
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue