+ All Categories
Home > Documents > Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided...

Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided...

Date post: 27-Jun-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
22
Feedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization Peng Zhao and Jos´ e Nelson Amaral Department of Computing Science University of Alberta Oct 6, 2004 October 6, 2004 Page 1
Transcript
Page 1: Feedback-Guided Switch Statement Optimizationamaral/cascon/CDP04/slides/zhao.pdfFeedback-guided Swtich Statement Optimization Feedback-Guided Switch Statement Optimization PengZhaoandJos¶eNelsonAmaral

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Feedback-guided Swtich Statement Optimization

Thank you very much!

October 6, 2004 Page 22


Recommended