Does Training Input Selection Matter for Feedback-Directed Optimizations? Paul Berube University of Alberta CDP05, October 17, 2005
September 28, 2005Paul Berube2 Outline Background and motivation Aestimo: an FDO evaluation tool Workload Selection Results
September 28, 2005Paul Berube3 What Is FDO? compiletrain Feedback-Directed Optimization: compileevaluate
September 28, 2005Paul Berube4 What Is FDO? compiletrain Feedback-Directed Optimization: compileevaluate training input profile eval input
September 28, 2005Paul Berube5 Performance Evaluation Space Programs Evaluation Inputs Static optimization
September 28, 2005Paul Berube6 Performance Evaluation Space Programs Evaluation Inputs Training Inputs FDO
September 28, 2005Paul Berube7 Performance Evaluation Space Programs Evaluation Inputs Training Inputs Only 1 Train input SPEC Usually 1 Ref input
September 28, 2005Paul Berube8 The Big Question Does the selection of training inputs matter for feedback-directed optimization? –Different transformation decisions? –Different performance?
September 28, 2005Paul Berube9 Aestimo An FDO evaluation tool Automates training and evaluating on a large number of inputs Isolates individual transformations –Fewer experiment variables –Results vary by transformation Measures: –Differences in transformation decisions –Performance differences
September 28, 2005Paul Berube10 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload
September 28, 2005Paul Berube11 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload One Per Input
September 28, 2005Paul Berube12 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload Binary X Input 5 times each
September 28, 2005Paul Berube13 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload Performanc e
September 28, 2005Paul Berube14 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload Performanc e Transformatio n Differences
September 28, 2005Paul Berube15 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload Performanc e Transformatio n Differences FDO vs. Static
September 28, 2005Paul Berube16 An Overview of Aestimo Compile Binaries Optimization Logs Execute Analyze Program Workload Performanc e Transformatio n Differences FDO vs. Static Resubstitutio n
September 28, 2005Paul Berube17 Compilation Process Static Binary Optimization Log Source Static Compile
September 28, 2005Paul Berube18 Compilation Process Source Static Compile Static Binary Optimization Log Training Input Instrumented Binary Instr. Compile Training Run Profile FDO Compile FDO Binary
September 28, 2005Paul Berube19 Compilation Process Source Static Compile Static Binary Optimization Log Instr. Compile Training Run Profile FDO Compile FDO Binary Training Input Optimization Log Static Compile Final Binary Instrumented Binary
September 28, 2005Paul Berube20 Compilation Process Source Static Compile Static Binary Optimization Log Instr. Compile Instrumented Binary Training Run Profile FDO Compile FDO Binary Training Input Optimization Log Static Compile Final Binary
September 28, 2005Paul Berube21 Workload Selection SPEC CINT2000 Benchmark inputs –8 programs, 32 input 84 Additional Inputs –Contacted benchmark authors –Varied representative inputs –Existing collections –Synthetic input generator
September 28, 2005Paul Berube22 Results ORC compiler Inlining and if conversion Itanium and Itanium 2 processors
September 28, 2005Paul Berube23 Workload Performance: bzip2 Inlining Itanium
September 28, 2005Paul Berube24 Workload Performance: bzip2 Training Input Selection Matters! Inlining Itanium
September 28, 2005Paul Berube25 Summary of Contributions Training input selection does impact optimization decisions and performance Aestimo: –Automates training and evaluating on a large number of inputs –Isolates individual transformations A large collection of representative inputs for SPEC CINT2000 programs
September 28, 2005Paul Berube26 Thank You Questions?
September 28, 2005Paul Berube27 Performance: bzip2 trained on xml Inlining Itanium
September 28, 2005Paul Berube28 Performance: bzip2.combined Inlining Itanium