automatic high level compilation to the cell/b ethe cell/b...

27
Automatic High Level Compilation to Automatic High Level Compilation to the Cell/B E the Cell/B E with with the Polyhedral the Polyhedral the Cell/B.E the Cell/B.E. with . with the Polyhedral the Polyhedral Approach Approach Allen Leung, Benoît Meister, Nicolas Vasilache, David Wohlford, Richard Lethin Reservoir Labs, Inc. New York, NY Portland, OR (212) 780-0527 reservoir abs GT STI Cell Workshop 10 July 2008 0

Upload: others

Post on 16-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Automatic High Level Compilation to Automatic High Level Compilation to the Cell/B Ethe Cell/B E with with the Polyhedral the Polyhedral the Cell/B.Ethe Cell/B.E. with . with the Polyhedral the Polyhedral

ApproachApproach

Allen Leung, Benoît Meister, Nicolas Vasilache, David Wohlford, Richard Lethin

Reservoir Labs, Inc.New York, NY Portland, OR

(212) 780-0527( )

r eser voi r abs GT STI Cell Workshop10 July 2008

0

Page 2: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

OutlineOutline

• Programming the CELL Processor• The R-Stream Compiler

The Programming Model• The Programming Model• CELL Runtime Layer• The Polyhedral Model• Mapping Tasks and Algorithms• Current Weaknesses and Future Improvements• ConclusionConclusion

r eser voi r abs GT STI Cell Workshop10 July 2008

1

Page 3: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

The Challenge of Optimizing to Cell B.E.The Challenge of Optimizing to Cell B.E.

SPU SPU SPUSPU SPUSPUSPUSPU

High Level Mapping• Partitioning between

PPE/SPELS

EIB

LS LSLS LSLSLSLS • Parallelization• Scheduling• Memory distribution &

PPE MIC

C

• Memory distribution & management

• Communication generation • Synchronization

PPU

MIC Synchronization• Locality of referenceLow Level Mapping

I t ti l tiDRAM

• Instruction selection• Instruction scheduling• Register allocation

r eser voi r abs GT STI Cell Workshop10 July 2008

2

• SIMDization

Page 4: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

RR--Stream ProjectStream Project

HPEC

R-Stream 3.0 CompilerRaising

High Level Analysis

Capabilities beyond previous compilers

Input programs: increased scope of optimizationsImperfect loop nests.Parametric affine static control programs.HPEC

Applicationin

C Language

High-Level AnalysisParallelization

PartitioningTiling

Locality EnhancementPlacement

Communication Generation

p g

Out: increased scope of targetsOptimizations and transformations for Polymorphous

Computing Architectures (PCAPCA).

Based on the polyhedral model:L “ i ”… Less “magic”

LLC LLC LLC LLC LLCLLC LLC PCA Hardware:10-100x FLOPS/Watt advantage

ProgrammingChallengesTarget Machine Abstractions

Smart Memories Monarch TRIPS RAW Cell GPU FPGA

- Parallelism- SIMD- Heterogeneous Functional Units- Coarse grain communication ops- Streaming Engines- Tiled Chip Multiprocessing

Distributed local memories

r eser voi r abs 3

- Distributed local memories- Starved for pin bandwidth

Polymorphous Computer Architectures COTS Streaming Architectures

Page 5: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Current RCurrent R--Stream InfrastructureStream Infrastructure

•conditional constant propagation

•identify mappable regions•identify statement granularity•determine loop structure•identify arrays and affine indexing expressions

foo.c C Front-end

Raising

•algebraic simplification•global value numbering•strength reduction•loop invariant hoisting•unrolling•global reassociation

y y g p

polyhedral representation

S i

M hi e

MapperMapperMachineModel

•global reassociation•inlining•pointer analysis•etc …

TRIPS

Sprig:SSA-basedoptimizingcompiler

i f t t

x86

MachineModels Lowering

•resynthesize loop nests

space/time mapping

CELLinfrastructure

PowerPCCell SPU

TRIPS

FPGA…

•perform target specific transformations

Target APIfoo_ppu.c

f

GPUCELL

AMD64 …

OpenMPFPGA

FPGA backendOpenMP backend

CELL backend

r eser voi r abs 4

foo_spu.c FPGA …

Page 6: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

The Programming ModelThe Programming Model

• Sequential C– Auto-parallelization and mapping by the compiler – Output in mapped C form (programs in PPE and SPE form)– Output in mapped C form (programs in PPE and SPE form)

• Caveats:– The mapper can only handle static affine control programs: affine

indexing functions affine loop bounds parameters allowedindexing functions, affine loop bounds, parameters allowed– But, data-dependent predicates are allowed– Currently, the mapper requires the user to specify which functions she

wants to map via a pragmawants to map via a pragma#pragma rstream mapvoid matmult(float A[N][N], float B[N][N], float C[N][N]) {int i, j, k;for (i = 0; i < N; i++) {for (i 0; i N; i ) {C[i][j] = 0;for (j = 0; j < N; j++)

for (k = 0; k < N; k++) C[i][j] += A[i][k] * B[k][j];

}

r eser voi r abs GT STI Cell Workshop10 July 2008

5

}

Page 7: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

CELL RuntimeCELL Runtime

• A thin layer on top of libspe2.h• SPE side:

– Async DMA: CELL dma get, CELL dma put, CELL dma waity _ _g _ _p _ _• Alignment and size restrictions removed in most generate version• Specialized variants when special size and alignment invariants are satisfied• Translate strided DMA DMA list• Implemented in terms of spu mfcdma64, spu writech, spu mfcstat, etcImplemented in terms of spu_mfcdma64, spu_writech, spu_mfcstat, etc.

– Synchronization barrier: CELL_barrier• Implemented in terms of atomic_ea_t and completion_ea_t

• PPE side:– Process control, SPE program loading: CELL_mapped_begin,

CELL_mapped_end• Implemented in terms of spe_program_load() and pthreads

• Execution model preferences:• Execution model preferences:– Data parallel– Bulk communication (take advantage of DMA)– Coarse-grained synchronization

r eser voi r abs GT STI Cell Workshop10 July 2008

6

g y– SPEs can coordinate parallel execution

Page 8: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Mapped Matrix Multiply on SPEsMapped Matrix Multiply on SPEs// outer loops omittedforfor (k = -1; k <= 16; k++) { // 16 stages + 1 prologue and 1 epilogue16 stages + 1 prologue and 1 epilogue

if (k <= 15 && k >= 0) { // Block until the Block until the prefetchedprefetched data is readydata is readyCELL_dma_waitCELL_dma_wait(0);swap swap C_l_v1 and C_l_v2, A_l_v1 and A_l_v2, B_l_v1 and B_l_v2;

}}if (k <= 14) {

// PrefetchPrefetch next block of A, B and Cnext block of A, B and CCELL_dma_getCELL_dma_get(&B[64*j][64+64*k], &B_l_v2[0][0], 64*4,1024*4,64*4,64,0);CELL_dma_getCELL_dma_get(&A[512*i+64*PROC0][64*j], &A_l_v2[0][0],

64*4,1024*4,64*4,64,0);64 4,1024 4,64 4,64,0);CELL_dma_getCELL_dma_get(&C[512*i+64*PROC0][64+64*k],&C_l_v2[0][0],64*4,

1024*4,64*4,64,0);}if (k <= 15 && k >= 0) { // 64x64 matrix multiply kernel64x64 matrix multiply kernel

forfor(l = 0; l <= 63; l++) forfor(m = 0; m <= 63; m++)

forfor (n = 0; n <= 63; n++) C_l_v1[l][m] = C_l_v1[l][m] + B_l_v1[n][m] * A_l_v1[l][n];

}if (k >= 1) CELL_dma_waitCELL_dma_wait(1); // Block until the previous write completesBlock until the previous write completesif (k < 15 && k > 0) { // Initiate write back to CInitiate write back to Cif (k <= 15 && k >= 0) { // Initiate write back to CInitiate write back to C

CELL_dma_putCELL_dma_put(&C_l_v1[0][0],&C[512*i+64*PROC0][64*k],64*4,64*4,1024*4,64,1);

}}// outer loops omitted

r eser voi r abs GT STI Cell Workshop10 July 2008

7

// outer loops omitted

Page 9: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Interface between Interface between PPE PPE and and SPEsSPEs

union __context__context {struct {

float (*A)[1024];float (*B)[1024];float (*B)[1024];float (*C)[1024];

} context;double padding[2];

}PPU SPU

union __context__context context;extern spe_program_handlespe_program_handle

matmult1024 spu;

}

int main(uint64_t id, uint64_t argp){union __context__context c;

PPU SPU

_ p ;struct CELL_mapped_regionCELL_mapped_region* region;context.context.A = A;context.context.B = B; context.context.C = C;egion CELL mapped beginCELL mapped begin(0 8 0

uint64_t t1;CELL_spu_initCELL_spu_init(id,argp,...);CELL_dma_getCELL_dma_get((void *)_t1, &c,

sizeofsizeof(c), 0, 0, 1, 0);CELL dma waitCELL dma wait(0);region = CELL_mapped_beginCELL_mapped_begin(0, 8, 0,

&matmult1024_spu, &context, sizeofsizeof(context));

CELL_mapped_endCELL_mapped_end(region);

CELL_dma_waitCELL_dma_wait(0);__kernel(c.context.A,

c.context.B,c.context.C);

return 0;}

r eser voi r abs GT STI Cell Workshop10 July 2008

8

}

Page 10: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

What’s Mapping?What’s Mapping?

• Scalar optimizations•• RaisingRaising: SSA Polyhedral Form

A iA i d d d l id d l i•• Array expansion Array expansion and dependence analysisdependence analysis•• Affine SchedulingAffine Scheduling: extract coarse-grained and fine-grained

synchronization-free and pipelined parallelism + locality optimization•• TilingTiling: group computation into coarse grained “tasks” with bulk•• TilingTiling: group computation into coarse-grained tasks with bulk

communication•• Processor assignmentProcessor assignment: assign tasks to processors in grid (1-D in CELL)•• Local memory compactionLocal memory compaction: layout memory for each tasks and generateLocal memory compactionLocal memory compaction: layout memory for each tasks and generate

communication; double-buffering to overlap communication and computation

•• DMA GenerationDMA Generation: communication target specific DMA operators• Optionally, loop unrolling, unroll and jam, array contractionloop unrolling, unroll and jam, array contraction, etc.•• Polyhedral Scanning Polyhedral Scanning and LoweringLowering: polyhedral Form AST SSA• Scalar optimizations

r eser voi r abs GT STI Cell Workshop10 July 2008

9

Page 11: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Scalar OptimizationsScalar Optimizations

• Apply classical scalar optimizations in Static Single Assignment (SSA) Form– Clean up input codeClean up input code– Make other analyses more accurate

• Conditional Constant Propagation• Global Value Numbering• Global Value Numbering• Global Code Motion• Induction Variable Elimination/Strength Reduction• Global Reassociation

r eser voi r abs GT STI Cell Workshop10 July 2008

10

Page 12: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Polyhedral RepresentationPolyhedral Representation

for (i=2; i<=M; i++) {for (j=0; j<=N; j+=2)

A[i,N-j] = C[i-2,4*i+j/2];

}2,0,2.|),{( kjNjMikji =≤≤≤≤∃

Iteration spaces as constraints (polytopesfor (j=i; j<=N; j++) B[i,N-j] = A[i,j+1];

} },2|),{( NjiMiji ≤≤≤≤⎤⎡

Iteration spaces as constraints (polytopes

⎥⎥⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎢⎢⎡

⎥⎥⎥

⎢⎢⎢

⎡−

100000101000001

NMji

⎥⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎢⎡

⎥⎥⎥

⎢⎢⎢

⎡ −

200000001840002

NMji

⎥⎦⎢⎣ 1

⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎡

⎥⎥⎤

⎢⎢⎡

− 010100000

Mji

i

⎥⎥⎥⎤

⎢⎢⎢⎡

⎥⎤

⎢⎡

1001000001

Mji

⎥⎥⎦⎢

⎢⎣⎦⎣

1

Dependences can then be extractedfrom these information.

⎥⎥⎥

⎦⎢⎢⎢

⎥⎥⎦⎢

⎢⎣

110000 N

⎥⎥⎥⎥

⎦⎢⎢⎢⎢

⎥⎥⎥

⎦⎢⎢⎢

⎣1

1000010010

NM

Array indices as affine functions

from these information.Dependences are represented

as polyhedra

r eser voi r abs GT STI Cell Workshop10 July 2008

11

y

Page 13: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Raising: C Code Raising: C Code Polyhedral FormPolyhedral Form

• Pointer analysis• Loop detection

Rec rrence detection• Recurrence detection– Affine, modulo and exponential recurrence can be detected– Normalizes C’s pointer arithmetic idioms into array indexing

If i f ith if/th / l• If-conversion for programs with if/then/else• Regroup fine-grained operations into “statements”

r eser voi r abs GT STI Cell Workshop10 July 2008

12

Page 14: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Affine SchedulingAffine Scheduling

and S,...,S statementsgiven : n1scheduling Affine

ij

titiittSt t tfit ti)(

),...,( schedule affine wise-statement Find

,relationsdependence

SS n1

R

Θ

ΘΘ=Θ

xxSitimeexecution its toSstatement ofiteration maps )( iΘ

i,jyxyx ijSS jiallfor ),( ,)()( iflegalis schedule A R∈ΘΘ f

Iteration x of Si depends on iteration y of Sj

“after”

r eser voi r abs GT STI Cell Workshop10 July 2008

13

Page 15: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Affine Scheduling and SpaceAffine Scheduling and Space--Time Time MappingsMappings

⎥⎤

⎢⎡

:mappingstoschedulesfromtion Generaliza

1

( )(x)s

time-space

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=Θ )( 3

2

(x)s(x)t

xSi

M

Space dimensions (can be interpreted

as processor element coordinates)

⎥⎥⎦⎢

⎢⎣ )(xtk

MTime dimensions determine execution order

Our algorithm tries to maximize the amount of coarse-grained (

synchronization-free and pipelined) parallelism while trying to

maximize locality and minimize communication

r eser voi r abs GT STI Cell Workshop10 July 2008

14

Page 16: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

TilingTiling

• Affine scheduling determines the “tile shape”• Tiling phase determines the tile size(s)

Statement ise tiling

communicationMemory footprint

• Statement-wise tiling• Tile size determines

– Communication volume– Memory footprint

• Limited by– SPE’s local memory– SIMD/DMA alignment restrictions

• Algorithm:– Ehrhart polynomials are used compute functions from tile sizes to cost

metric– Similar to cache-miss equations– Genetic algorithm to guide the search for good tile sizes

r eser voi r abs GT STI Cell Workshop10 July 2008

15

Page 17: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

PlacementPlacement

• Mapped inter-tile coordinates into processors• Local communications can be optimized

SPE0 SPE0 SPE0 SPE0t=2

SPE1SPE1 SPE1SPE1t=1

SPE2 SPE2 SPE2 SPE2t=0

SPE3SPE3 SPE3SPE3

r eser voi r abs GT STI Cell Workshop10 July 2008

16

Page 18: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Local Memory CompactionLocal Memory CompactionOriginal data footprint with

tilei

local memoryi

U

S2 L(y)+S-1U

L(y)

D(y)S1

jj

)()()()(

min...1

yxyxyydi i

DSLUL

S

∈+<≤∀∏ =

function affineintegralan is :function reindexing unimodular a is :

)( ,)()()( . yxyxyy

dp

dd

ZZLZZU

DSLUL

∈+<≤∀

array local theof dimensions therepresents :indices theof boundlower therepresentsh whic

g

dZS

r eser voi r abs GT STI Cell Workshop10 July 2008

17

tileaset withinfootprint dataparametric a is )( yD

Page 19: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

DMA DMA GenerationGeneration

• Starts from a data transfer set: a set of data accessed by a convex set of iterations

affine relationaffine relation

remote memorylocal memory

• Scan data along dimensions for which arrays elements are contiguouscontiguous

• Collapse contiguous array elements into DMA operations

r eser voi r abs GT STI Cell Workshop10 July 2008

18

Page 20: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Index and Loop Bounds SimplificationIndex and Loop Bounds Simplification

for (l = 512 * i + 64 * PROC0; l <= 512 * i + 64 * PROC0 + 63; l++)for (m = 64 * k; m <= 64 * k + 63; m++)

for (n = 64 * j; n <= 64 * j + 63; n++)C_l[-512 * i + l -64 * PROC0][-64 * k + m] +=

B_l[-64 * j + n][-64 * k + m] * A_l[-512 * i+ l -64 * PROC0][-64 * j + n];

•Both loops are equally “easy” for our mapper •But gcc and IBM’s XLC cannot SIMDize the above loop•Find “equivalent schedules” which are simpler

for (l = 0; l <= 63; l++) for (m = 0; m <= 63; m++)

for (n = 0; n <= 63; n++) C_l[l][m] += B_l[n][m] * A_l[l][n];

r eser voi r abs 19GT STI Cell Workshop10 July 2008

Page 21: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Polyhedral ScanningPolyhedral Scanning

• Polyhedral representation loop nestsSome impro ements o er state of the art CLooG• Some improvements over state-of-the-art, CLooG

• Constraints tightening in every step to remove redundant loop bounds

• Better detection of loop strides• Hoisting loop invariant predicates• Mechanisms for controlling code explosion

– Specialize only in innermost loop nests– Generate predicates in outer loops for control execution

• Reverse if-conversion

r eser voi r abs GT STI Cell Workshop10 July 2008

20

Page 22: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

High Level Syntax ReconstructionHigh Level Syntax Reconstruction

• CFG/SSA CFG+quads• Quads expressions • CFG hil d hil f l if/ l it h• CFG while, do-while, for-loops, if/else, switch,

break, continue, goto, etc.• Pointer expressions array expressions• Matching common C idioms:

– i=i+1 i++– *(A+2*i) A[2*i]

• Insert target specific pragmas and type annotations (e.g., __declspec(…), restrict, __attribute((…)), etc.)

• Generally speaking, each compiler requires different customization to its output– E.g., XLC doesn’t SIMDize while loops with breaks, and some pointer

arithmetic idioms

r eser voi r abs GT STI Cell Workshop10 July 2008

21

Page 23: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

Future ExtensionsFuture Extensions

• Automatically determine mapping region• Larger scope of input loop nests

Better s pport for CELL/XLC feat res• Better support for CELL/XLC features

r eser voi r abs GT STI Cell Workshop10 July 2008

22

Page 24: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

NonNon--Affine ExtensionsAffine Extensions

• Geometric recurrences --- appears in some FFT implementations• Non-linear indexing functions --- encoding dynamic multidimensional

arrays as 1-D arrays in C89arrays as 1-D arrays in C89• A[p[x]] – where p is an updatable permutation• A[f(x) % m] where f(x) is affine• While-loops• Pragmas support for

– Associativity and commutativity – Data independence

r eser voi r abs GT STI Cell Workshop10 July 2008

23

Page 25: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

SIMDizationSIMDization

• Currently XLC cannot SIMDize loops with complex bounds or complex array indexing functions

• Performance of compiler SIMDization still lags behind hand• Performance of compiler SIMDization still lags behind hand SIMDized code

• Performance gaps should narrow in future XLC and gcc releases

• Alternative: perform SIMDization in the polyhedral mapper• Generate SPU intrinsics for the computationally intensive loops• Advantage: the mapper has more accurate information about

dependencies and alignment

r eser voi r abs GT STI Cell Workshop10 July 2008

24

Page 26: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

ConclusionConclusion

A tomatic and effecti e mapping of high performance n merical• Automatic and effective mapping of high performance numerical code is feasible with state-of-the-art techniques

• The polyhedral model: – Powerful techniques of formulating and solving mapping problems for

numerical kernels/applicationsO i ti i i l f t t i ll li i il– Organization principles for structuring a parallelizing compiler

r eser voi r abs GT STI Cell Workshop10 July 2008

25

Page 27: Automatic High Level Compilation to the Cell/B Ethe Cell/B ...sti.cc.gatech.edu/Slides2008/Leung-080710.pdf · Automatic High Level Compilation to the Cell/B Ethe Cell/B.E. with the

ThanksThanks

• To the commercial interest and support by the members of STI• Kathryn O’Brien, Yuan Shao, Alexandre Eichenberger and others at

IBM/Watson for providing valuable help for XLCIBM/Watson for providing valuable help for XLC• DARPA/AFRL for providing funding for this work (F03602-03-C-

0033, W31P4Q-07-C-0147, W9113M-07-C-0072, W9113M-08-C-0146 and W31P4Q-08-C-0319 )0146 and W31P4Q-08-C-0319.)

• Other government agencies and components for their interest and support

r eser voi r abs GT STI Cell Workshop10 July 2008

26