Using Graph-Based Characterization for Predictive Modeling - - PowerPoint PPT Presentation

using graph based characterization for predictive modeling
SMART_READER_LITE
LIVE PREVIEW

Using Graph-Based Characterization for Predictive Modeling - - PowerPoint PPT Presentation

Using Graph-Based Characterization for Predictive Modeling Assistant Prof. John Cavazos University of Delaware Department of Computer and Information Sciences Motivation State-of-the-art Graph-based Build & Use Evaluation for Code 2


slide-1
SLIDE 1

Using Graph-Based Characterization for Predictive Modeling

Assistant Prof. John Cavazos

University of Delaware Department of Computer and Information Sciences

slide-2
SLIDE 2

Evaluation Build & Use Graph-based State-of-the-art

2

Motivation

for Code

slide-3
SLIDE 3

Evaluation Build & Use Graph-based State-of-the-art

3

Motivation

Key Idea

… …

Machine ¡ learning ¡model

BB1 BB3 BB2 BB4 BB5 BB6

Graph-­‑based ¡ Characteriza7on

Op7mized ¡ Code

COMPILER Opts

[Work ¡done ¡with ¡Eunjung ¡Park ¡and ¡Marco ¡Alvarez ¡and ¡published ¡at ¡ Interna7onal ¡Symposium ¡on ¡Code ¡Genera7on ¡and ¡Op7miza7on, ¡2012]

Original ¡ Code

Can ¡significantly ¡Intel’s ¡compiler ¡by ¡several ¡factors

slide-4
SLIDE 4

Evaluation Build & Use Graph-based State-of-the-art

4

Motivation

Finding the Best Optimization is Difficult

PoCC 600 ¡opt combinaDons OpDmized ¡ versions

Fusion Unrolling Tiling Paralleliza7on Vectoriza7on

1

2 4 6 8 10 12 14 16 18 20 100 200 300 400 500 600 Normalized speedup to baseline Applied optimization sequences sorted by increasing actual speedup

Normalized ¡Speedup ¡to ¡ICC ¡-­‑fast

Applied ¡Op7miza7on ¡Combina7ons ¡Sorted ¡by ¡Increasing ¡Actual ¡Speedup

Actual ¡Speedup

2MM ¡(Matrix ¡Mul7ply) ¡

slide-5
SLIDE 5

Evaluation Build & Use Graph-based State-of-the-art

5

Motivation

Finding the Best Optimization is Difficult

PoCC 600 ¡opt combinaDons OpDmized ¡ versions

Fusion Unrolling Tiling Paralleliza7on Vectoriza7on

: ¡Degrade : ¡Improvement ¡ ¡> ¡ ¡1.0x : ¡The ¡best ¡Improvement : ¡Significant ¡Improvement ¡ ¡>= ¡ ¡6.0X

1

2 4 6 8 10 12 14 16 18 20 100 200 300 400 500 600 Normalized speedup to baseline Applied optimization sequences sorted by increasing actual speedup

Normalized ¡Speedup ¡to ¡ICC ¡-­‑fast

Applied ¡Op7miza7on ¡Combina7ons ¡Sorted ¡by ¡Increasing ¡Actual ¡Speedup

Actual ¡Speedup

2MM ¡(Matrix ¡Mul7ply) ¡

slide-6
SLIDE 6

Evaluation Build & Use Graph-based State-of-the-art

6

Motivation

Observations

Highest-­‑level ¡opt ¡flag ¡(-­‑fast) ¡does ¡not ¡give ¡best ¡perf Low ¡density ¡of ¡“very” ¡good ¡points ¡in ¡the ¡op7miza7on ¡ space No ¡single ¡opDmizaDon ¡configuraDon ¡best ¡for ¡all ¡programs Bundled ¡flags ¡are ¡doomed ¡to ¡fail

slide-7
SLIDE 7

Evaluation Build & Use Graph-based State-of-the-art

7

Motivation

Using a Prediction Model

PoCC 600 ¡opt combinaDons OpDmized ¡ versions

Fusion Unrolling Tiling Paralleliza7on Vectoriza7on

Actual ¡Speedup

2 4 6 8 10 12 14 16 18 20 100 200 300 400 500 600 Normalized speedup to baseline Applied optimization sequences sorted by increasing actual speedup

Applied ¡Op7miza7on ¡Combina7ons ¡Sorted ¡by ¡Increasing ¡Actual ¡Speedup

Normalized ¡Speedup ¡to ¡-­‑fast in ¡Intel ¡ICC ¡Compiler

Model

Model ¡follows ¡the ¡trend ¡of ¡actual ¡speedup

2MM ¡(Matrix ¡Mul7ply) ¡

1

slide-8
SLIDE 8

2 4 6 8 10 12 14 16 18 20 100 200 300 400 500 600 Normalized speedup to baseline Applied optimization sequences sorted by increasing actual speedup

Model Actual ¡Speedup

Applied ¡Op7miza7on ¡Combina7ons ¡Sorted ¡by ¡Increasing ¡Actual ¡Speedup

Normalized ¡Speedup ¡to ¡-­‑fast in ¡Intel ¡ICC ¡Compiler

1

Evaluation Build & Use Graph-based State-of-the-art

8

Motivation

Using a Prediction Model

PoCC 600 ¡opt combinaDons OpDmized ¡ versions

Fusion Unrolling Tiling Paralleliza7on Vectoriza7on : ¡top ¡1 ¡-­‑ ¡5 ¡Predicted ¡CombinaDons ¡ : ¡top ¡6 ¡-­‑ ¡10 ¡Predicted ¡CombinaDons ¡ 2MM ¡(Matrix ¡Mul7ply) ¡

slide-9
SLIDE 9

Motivation Evaluation Build & Use Graph-based State-of-the-art

9

State-of-the-art Characterizations

Dynamic Sta7c

Performance Counters Reac7ons Source ¡Code Performance Counters

Category List ¡of ¡PCs Num Cache ¡Line ¡Access CA_CLN, ¡CA-­‑ITV, ¡.. 3 L1 ¡Cache L1_DCA, ¡L1_DCH, ¡... ¡ 10 L2/L3 ¡Cache L2_DCA, ¡L2_DCM, ¡... 16 Branch ¡Related BR_TKN, ¡BR_NTK, ¡... 7 Floa7ng ¡Point FDV_INS, ¡FP_OPS, ¡... 6 Interrupt/Stall HW_INT, ¡RES_STL 2 TLB TLB_DM, ¡TLM_IM, ¡... 4 Total ¡Cycle/Inst. TOT_CYC, ¡TOT_IIS, ¡... 3 Load/Store ¡Inst. LD_INS, ¡SR_INS 2 SIMD ¡Inst VEC_INS, ¡VEC_DP, ¡... 3

Backend Compiler

Underlying Architecture

Performance Counters

Complied ¡with ¡-­‑O0 ... 1: 1: Performance ¡Counters

...

N-­‑1:

... ... N-­‑1: for ¡N-­‑1 ¡Programs N-­‑1 ¡Programs

slide-10
SLIDE 10

10

Motivation Evaluation Build & Use Graph-based State-of-the-art

State-of-the-art Characterizations

Dynamic Sta7c

Performance Counters Reac7ons Source ¡Code Collected ¡from ¡source ¡code ¡or ¡compiler ¡intermediate ¡ representa7ons Number ¡of ¡different ¡type ¡of ¡statements ¡in ¡a ¡func7on Sta7s7cs ¡on ¡control ¡flow ¡graph ¡in ¡a ¡func7on Use ¡fixed ¡length ¡of ¡vector ¡(structured ¡data) ¡to ¡use ¡with ¡ machine ¡learning Source ¡Code

... N-1 programs Milepost GCC ... ... R Source code features for N-1 programs ... Source Code

1 N-1 1 R

...

1 N-1

slide-11
SLIDE 11

11

Motivation Evaluation Build & Use Graph-based State-of-the-art

State-of-the-art Characterizations

Dynamic Sta7c

Performance Counters ReacDons Source ¡Code

Advantages

  • ­‑ ¡Easy ¡to ¡collect ¡and ¡works ¡with ¡standard ¡ML ¡algorithms

Disadvantages

  • ­‑ ¡ ¡Fixed-­‑length ¡vector ¡loses ¡informa7on ¡about ¡program

¡ ¡ ¡ ¡(e.g., ¡Lost ¡informa7on ¡about ¡loop ¡structure)

slide-12
SLIDE 12

State-of-the-art

12

Motivation Evaluation Build & Use Graph-based

Graph-based Characterization

Dynamic Sta7c

Performance Counters Reac7ons Source ¡Code Graph-­‑based ¡program ¡characteriza7ons ¡ (e.g., ¡control ¡flow ¡graphs, ¡data ¡dependence ¡graphs) Main ¡difference ¡from ¡state-­‑of-­‑the-­‑art Using ¡“unstructured” ¡data ¡instead ¡of ¡fixed ¡length ¡of ¡ vector Graph-­‑based Graph-­‑based

MinIR CFG topology and feature of each node for N-1 programs Graph-based - CFG N-1 programs

N-1 1

...

bb1 bb2 bb3 bb4 bb5 bb6

... ... ...

Feature vector of each node bb1 bb6 CFG Topology bb1 -> bb2, bb3 bb2 -> bb5 ... bb5 -> bb6 N-1

... ... ...

bb 1 bb 6 CFG Topology bb1 -> bb2, bb3 bb2 -> bb5 ... bb5 -> bb6

... ... ...

Feature vector of each bb bb1 bb6 CFG Topology bb1 -> bb2, bb3 bb2 -> bb5 ... bb5 -> bb6 1

...

slide-13
SLIDE 13

17 8 9 18 10 15 11 13 12 14 16 1 6 7 2 4 3 5

1: <1,0,0,0,0,0,0,0,0,1,0,0> 2: <4,0,0,0,0,0,1,0,0,1,0,2> 3: <16,2,0,1,0,3,1,0,0,1,0,8> … 16: <2,1,0,0,0,0,0,0,0,1.0.0> 17: <3,0,0,0,0,0,0,1,1,0,1,0> 18: <1,0,0,0,0,0,0,0,0,1,0,0> Feature vector for each node 1->6 2->4 3->4 … 16->17 17->10 17->18 Topology of CFG

State-of-the-art Motivation Evaluation Build & Use Graph-based

13

Graph-based Characterization using CFG

2MM ¡-­‑ ¡Matrix ¡Mul7plica7on

Number ¡of ¡InstrucDons Number ¡of ¡Add ¡InstrucDon Number ¡of ¡Sub ¡InstrucDon Number ¡of ¡Mult ¡InstrucDon Number ¡of ¡Div ¡InstrucDon Number ¡of ¡Load ¡InstrucDon Number ¡of ¡Store ¡InstrucDon Number ¡of ¡Comparisons Number ¡of ¡CondiDonal ¡Branches Number ¡of ¡UncondiDonal ¡Branches Number ¡of ¡Phi ¡Nodes Number ¡of ¡GetElementPtr ¡InstrucDon

Features ¡of ¡Each ¡Node

Control ¡flow ¡graphs ¡from ¡compiler Control ¡Flow ¡Graph ¡Features

slide-14
SLIDE 14

Optimization Sequence O

…"

Predicted speedup of O over the Baseline Op7miza7on ¡Combina7on ¡O

Graph-based

Building the Prediction Model

14

State-of-the-art Motivation Evaluation Build & Use

Control ¡Flow ¡Graph ¡Features

slide-15
SLIDE 15

15

Graph-based State-of-the-art Motivation Evaluation Build & Use

Building the Prediction Model

  • Opt. seqs and their speedup
  • ver baseline for N-1 programs

CFG features for N-1 programs

Machine Learning Algorithm

... ...

Generated model for a given machine ... ... ...

N-1

... ... ... ... ... ...

1

. . .

N-1 1

...

  • Opt. Combinations
slide-16
SLIDE 16

Graph-based State-of-the-art Motivation Evaluation Build & Use

16

Evaluating Predictors

N ¡Number ¡of ¡evalua7ons ¡= ¡N-­‑Shot ¡model Non-­‑itera7ve ¡scenario ¡(1-­‑shot ¡model) Itera7ve ¡scenario

5-­‑shot ¡model

Op7miza7on ¡Combina7ons

… …

Program ¡ characteris7cs

Predicted ¡speedup ¡for ¡ each ¡combina7on CFG ¡Features

… …

Sort ¡by ¡Predicted ¡Speedup

top1

Non-­‑itera7ve ¡scenario ¡(1-­‑shot ¡model)

top5

Itera7ve ¡scenario

5-­‑shot ¡model

slide-17
SLIDE 17

Build & Use

17

Graph-based State-of-the-art Motivation

Case Study

All ¡OpDmizaDons ¡Considered Unrolling ¡Factor ¡= ¡0, ¡2, ¡4, ¡and ¡8 Loop ¡Fusion ¡= ¡nofuse, ¡maxfuse, ¡smarkuse Loop ¡7ling ¡= ¡1, ¡32 ¡(outer, ¡middle, ¡inner ¡loops) Paralleliza7on ¡= ¡on/off Vectoriza7on ¡= ¡on/off

Source Code

Extract Polyhedral Dependency Representation Build Legal Transformations Source Code Generation Apply Optimizations

Transformed Source Code

PoCC ¡(Source-­‑to-­‑source ¡Polyhedral ¡Compiler) Since ¡source-­‑to-­‑source, ¡requires ¡a ¡backend ¡compiler

Evaluation

slide-18
SLIDE 18

18

Build & Use Graph-based State-of-the-art Motivation Evaluation

Experimental Configuration

Hardware ¡Configura7on

(Nehalem) ¡Intel ¡Xeon ¡E5620 ¡2.4GHz, ¡16 ¡H/W ¡threads (Quad) ¡Intel ¡Core2 ¡Quad ¡Q9650 ¡3.0GHz, ¡4 ¡H/W ¡threads Sopware ¡Configura7on Backend ¡compiler: ¡ICC ¡(Baseline: ¡-­‑fast) ¡GCC ¡(Baseline ¡-­‑O3) Machine ¡Learning ¡: ¡Support ¡Vector ¡Machines Benchmarks: ¡PolyBench ¡V2.1 ¡(30 ¡scien7fic ¡kernels) 26 ¡FP, ¡4 ¡INT ¡C ¡kernels ¡with ¡Average ¡LOC ¡337 ¡ Linear ¡Algebra, ¡Solvers, ¡Stencil ¡Comps, ¡Data ¡Mining

slide-19
SLIDE 19

19

Build & Use Graph-based State-of-the-art Motivation Evaluation

Experiment: CFG vs. State-of-the-art

Single-­‑Shot ¡SVM ¡Model

Dynamic Sta7c We ¡achieved ¡significant ¡performance ¡improvements ¡by ¡using ¡ single-­‑shot ¡CFG ¡model ¡(staDc ¡technique)! Note: ¡ICC ¡-­‑par ¡performs ¡poorly ¡ (1.8x ¡on ¡Nehalem ¡and ¡1.3x ¡on ¡Quad) PC SRC CFG OPT Nehalem-­‑GCC

4.6x ¡(51%) 5.2x ¡(57%) 5.7x ¡(63%) 9.06x

Nehalem-­‑ICC

2.5x ¡(45%) 2.7x ¡(48%) 3.0x ¡(53%) 5.60x

Quad-­‑GCC

2.0x ¡(54%) 2.2x ¡(59%) 2.7x ¡(73%) 3.67x

Quad-­‑ICC

1.7x ¡(37%) 1.8x ¡(40%) 2.8x ¡(60%) 4.57x

slide-20
SLIDE 20

20

Build & Use Graph-based State-of-the-art Motivation Evaluation

Experiment: CFG vs. State-of-the-art

5-­‑Shot ¡SVM ¡Model

Dynamic Sta7c We ¡achieved ¡up ¡to ¡88% ¡of ¡OPT ¡just ¡in ¡5 ¡iteraDons! PC SRC CFG OPT Nehalem-­‑GCC

5.2x ¡(57%) 5.8x ¡(63%) 7.2x ¡(79%) 9.06x

Nehalem-­‑ICC

3.3x ¡(58%) 2.9x ¡(52%) 4.1x ¡(73%) 5.60x

Quad-­‑GCC

2.4x ¡(66%) 2.4x ¡(65%) 3.2x ¡(88%) 3.67x

Quad-­‑ICC

2.6x ¡(57%) 2.5x ¡(55%) 3.5x ¡(76%) 4.57x

slide-21
SLIDE 21

21

Build & Use Graph-based State-of-the-art Motivation Evaluation

Optimization Combination Analysis: Quad-ICC

Fusion and Distribution Fusion and Distribution Fusion and Distribution Tiling Tiling pluto- parallel auto- parallel pluto- prevec vector- ization Loop-unr Loop-unroll-and-jam

  • ll-and-jam

max smart no i j k pluto- parallel auto- parallel pluto- prevec vector- ization 2 4 8

2mm 3mm adi atax bicg cholesky correlation covariance doitgen durbin dynprog fdtd-2d fdtd-apml gauss-filter gemm gemver gesummv gramschmidt jacobi-1d jacobi-2d lu ludcmp mvt reg_detect seidel symm syr2k syrk trisolv trmm

X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X

slide-22
SLIDE 22

22

Build & Use Graph-based State-of-the-art Motivation Evaluation

A Closer Look

ATAX ¡and ¡BICG ¡perform ¡best ¡using ¡same ¡op7miza7on ¡seq ATAX ¡-­‑ ¡matrix ¡transpose ¡and ¡vector ¡mul7plica7on BiCG ¡-­‑ ¡Kernel ¡from ¡the ¡Bi-­‑conjugate ¡gradient ¡solver No ¡Fusion, ¡No ¡Unrolling, ¡Wavefront ¡Parallelism, ¡ Parallelizing ¡the ¡Outer ¡Loop, ¡and ¡Tiling ¡the ¡Inner ¡Loop Graph-­‑based ¡technique ¡predicts ¡good ¡sequences ¡to ¡apply ¡ for ¡both ¡these ¡kernels

slide-23
SLIDE 23

23

Build & Use Graph-based State-of-the-art Motivation Evaluation

ATAX BiCG

slide-24
SLIDE 24

24

Build & Use Graph-based State-of-the-art Motivation Evaluation

Never send a human to do a machine's job.

compiler’s

slide-25
SLIDE 25

Using Graph-Based Characterization for Predictive Modeling

Assistant Prof. John Cavazos cavazos@udel.edu

http://www.cis.udel.edu/~cavazos

Thank You!