feedback-guided switch statement optimizationamaral/cascon/cdp04/slides/zhao.pdffeedback-guided...
TRANSCRIPT
![Page 1: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/1.jpg)
Feedback-guided Swtich Statement Optimization
Feedback-Guided Switch
Statement Optimization
Peng Zhao and Jose Nelson Amaral
Department of Computing ScienceUniversity of Alberta
Oct 6, 2004
October 6, 2004 Page 1
![Page 2: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/2.jpg)
Feedback-guided Swtich Statement Optimization
1 – Switch = Case Selection + Case Action
switch (key)
{
case 1:
... //action 1 break;
case 2:
... //action 2 break;
case 3:
... //action 3 break;
default:
... //default action
}
... // next statement
October 6, 2004 Page 2
![Page 3: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/3.jpg)
Feedback-guided Swtich Statement Optimization
2 – Outline
♠ Revisit the existent switch optimizations
♠ Propose two new techniques (hot defaultcase promotion and large switch statementpartition) to take advantage of skewedfrequency among cases
♠ Investigate the potential of switchoptimizations in Itanium-2 systems.
October 6, 2004 Page 3
![Page 4: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/4.jpg)
Feedback-guided Swtich Statement Optimization
3 – Search Strategy (BR)
switch (key)
{
case 1:
... //action 1 break;
case 2:
... //action 2 break;
case 3:
... //action 3 break;
default:
... //default action
}
... // next statement
action 1
action 2
action 3
next stmt
goto
goto
goto
goto
goto
goto
default action
if (key == 1)
if (key == 2)
if (key == 3)
October 6, 2004 Page 4
![Page 5: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/5.jpg)
Feedback-guided Swtich Statement Optimization
4 – Jump-Table Strategy (JT)
October 6, 2004 Page 5
![Page 6: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/6.jpg)
Feedback-guided Swtich Statement Optimization
switch (key)
{
case 5:
... //action 5 break;
case 6:
... //action 6 break;
case 7:
... //action 7 break;
case 8:
... //action 8 break;
case 10:
... //action 10 break;
default:
... //default action
}
action 5
action 6
action 10
...
next stmt
default action
action 6action 7action 8defaultaction 10
action 5
jumptable:key’ = key − 5;
if (key’ > 5)
=10
=6=5
goto [jumptable+8*key’]
normalization
on−table check
key>10
key=9
October 6, 2004 Page 6
![Page 7: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/7.jpg)
Feedback-guided Swtich Statement Optimization
5 – Hybrid Strategy (COMB)
key
BR (0, 5)
< 100
< 50 >= 50 < 150 >= 150
JT (50, 65) BR (100, 105) BR (150, 155)
1 0 ~ 52 50 ~ 653 100 ~ 1054 150 ~ 155
cluster range
>= 100
October 6, 2004 Page 7
![Page 8: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/8.jpg)
Feedback-guided Swtich Statement Optimization
6 – What if we have runtime feedback?
October 6, 2004 Page 8
![Page 9: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/9.jpg)
Feedback-guided Swtich Statement Optimization
7 – Hot case hoisting (HH)
switch(key)
{
case 5:
... break; // hot
... // Other cases
case 9:
... break; // hot
default:
... //default action
}
... // next statement
if(key == 5)
... // goto action5
if(key == 9)
... // goto action9
switch (key)
{
... // Other cases
default:
... //default action
}
... // next statement
October 6, 2004 Page 9
![Page 10: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/10.jpg)
Feedback-guided Swtich Statement Optimization
8 – What is missing?
♣ Selection for cases in the default categoryis still un-optimized♣ The hot cases and cold cases are mixed
together, which is bad for cache efficiency, andmight prevent fast case selection and otheroptimizations such as inlining.
October 6, 2004 Page 10
![Page 11: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/11.jpg)
Feedback-guided Swtich Statement Optimization
9 – Hot Default Case Promotion (DP)
switch (key)
{
case 5:
... break;
case 6:
... break;
case 7:
... break;
default: // 9 is very hot
... //default action
}
... // next statement
switch (key)
{
case 5:
... break;
case 6:
... break;
case 7:
... break;
case 9: // case 9 is promoted
default:
... //default action
}
... // next statement
October 6, 2004 Page 11
![Page 12: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/12.jpg)
Feedback-guided Swtich Statement Optimization
10 – Switch Partition(SP)
EXACT BOL EOL STAR PLUS... ... DEFAULT
...switch (OP(scan))
ENTRY
EXIT
45 cases (35 cases never touched)total freq: 1805920 (1.6%)
Total freq: 1.12438*10^8 (98.4%)
freq=1.14266*10^8884 lines C code
12 cases
October 6, 2004 Page 12
![Page 13: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/13.jpg)
Feedback-guided Swtich Statement Optimization
11 – Switch Partition(SP) (with cold default)
...
ENTRY
EXIT12 cases
Total freq: 98.4%
freq=1.14266*10^8884 lines C code
DEFAULT
DEFAULT...
45 cases (35 cases never touched, 1.6%)
Cold Region (splitted)
EXACT BOL EOL STAR PLUS
...switch (OP(scan))
switch (OP(scan))
October 6, 2004 Page 13
![Page 14: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/14.jpg)
Feedback-guided Swtich Statement Optimization
12 – Switch Partition(SP) (with hot default)
DEFAULT
NULL...
switch (key)
DEFAULT
Cold Region (splitted)
ENTRY
EXIT
Case 1
...switch (key)
...Case 2
Cold cases
October 6, 2004 Page 14
![Page 15: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/15.jpg)
Feedback-guided Swtich Statement Optimization
13 – Implementation
♠ Use the Open Research Compiler (ORC) 2.1as the platform♠ Extend profiling library to record the valuesand frequencies of the default cases♠ Insert DP & SP before traditional switchoptimization
∑MaxPromotionNum
j=1DefaultFreq[j]
S.total freq> PromotionThreshold (1)
Size Ratio
Freq Ratio> Benefit Threshold (2)
where:
ColdSize
total size= Size Ratio
ColdFreq
total freq= Freq Ratio (3)
October 6, 2004 Page 15
![Page 16: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/16.jpg)
Feedback-guided Swtich Statement Optimization
14 – Experimental Study
October 6, 2004 Page 16
![Page 17: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/17.jpg)
Feedback-guided Swtich Statement Optimization
Benchmarks bzip2 crafty vpr vortex perl gcc
# of Switches 3 42 12 37 127 374
<6 3 17 12 11 68 199
Case 7 ∼ 15 0 25 0 22 30 117
Num 16 ∼ 30 0 0 0 24 15 32
Distr 31 ∼ 100 0 0 0 0 11 21
>100 0 0 0 0 3 5
Maximum Cases 4 13 6 30 243 398
Freq 106 ∼ 107 1 2 0 6 13 0
Distr > 107 1 3 0 0 7 0
Hot default 0 1 0 3 25 45
Table 1: Statistics of Switch-case Statements
October 6, 2004 Page 17
![Page 18: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/18.jpg)
Feedback-guided Swtich Statement Optimization
15 – Skewed frequency distribution among cases
0 10 20 30 40 50 600
1
2
3
4
5
6
7
8
9
10
11
Total Number of Cases
Hot
cas
es (
freq
uenc
y w
eigh
t > 9
9%)
vortexbzip2craftyperlbmk
October 6, 2004 Page 18
![Page 19: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/19.jpg)
Feedback-guided Swtich Statement Optimization
16 – Runtime Performane Comparison
bzip2 crafty vpr vortex perlbmk gcc0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Benchmarks
Per
form
ance
Impr
ovem
ent (
%)
BRBR+JTBR+PBR+JT+PBR+JT+HH+P (O3)O3+DPO3+DP+SP
October 6, 2004 Page 19
![Page 20: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/20.jpg)
Feedback-guided Swtich Statement Optimization
17 – Micro-architectural benchmarking
stall reduc. instr. inc. stall reduc. instr. inc.−2
0
2
4
6
8
10
12
14
Benchmarks
Met
rics
Cha
nge
(%)
perlbmk vortex
BRBR+JTBR+PBR+JT+PBR+JT+HH+P (O3)O3+DPO3+DP+SP
October 6, 2004 Page 20
![Page 21: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/21.jpg)
Feedback-guided Swtich Statement Optimization
18 – Conclusion
♠ Switch optimization could yield non-trivialperformance improvement if switch statementsare invoked frequently in a program
♠ Feedback plays an important role inswitch-case optimization
♠ Though BR strategy results in a lot moreinstructions than JT does, it often outperformsJT and JT+BR strategy
♠ Effectiveness of HH, DP and SP varies fordifferent benchmarks.
October 6, 2004 Page 21
![Page 22: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral](https://reader030.vdocuments.mx/reader030/viewer/2022041110/5f10080c7e708231d4471a52/html5/thumbnails/22.jpg)
Feedback-guided Swtich Statement Optimization
Thank you very much!
October 6, 2004 Page 22