36
ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan 1 2 , Gai Liu 1 , Ritchie Zhao 1 , Steve Dai 1 , Zhiru Zhang 1 1 Computer Systems Laboratory, Electrical and Computer Engineering, Cornell University 2 Google Inc.

ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

ElasticFlow: A Complexity-Effective Approach for

Pipelining Irregular Loop Nests

Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve Dai1, Zhiru Zhang1

1 Computer Systems Laboratory,

Electrical and Computer Engineering, Cornell University

2 Google Inc.

Page 2: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Loop pipelining in HLS

▸ Irregular loop nest

▸ ElasticFlow architecture

▸ ElasticFlow synthesis

▸ Experimental results

Outline

2

Page 3: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ An important optimization in HLS

– Create a static schedule for the loop body to allow successive

loop iterations to be overlapped

3

Loop Pipelining

II=1

II=1

A1

B1

C1

j=0

load

*+

A2

B2

C2

j=1

load

*+

A3

B3

C3

j=2

load

*+

A4

B4

C4

j=3

load

*+

Clo

ck C

ycle

0

1

2

3

4

5

6

steady

state

Initiation Interval (II)

Throughput

Objective

for(i=0; i < 4; i++){for(j=0; j < 4; j++){ #pragma pipelineacc += A[j] * i;

} }

Page 4: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

4

Pipelining Outer Loop

for(i=0; i < 4; i++){for(j=0; j < 4; j++){ acc += A[j] * i;

} }

for(i=0; i < 4; i++){#pragma pipelineacc += A[0] * i;acc += A[1] * i;acc += A[2] * i;acc += A[3] * i;

}

2. Pipelining outer loop

by unrolling inner loop

for(i=0; i < 4; i++){for(j=0; j < 4; j++){ #pragma pipelineacc += A[i] * j;

} }

1. Pipelining only inner loop

Fixed inner loop bound

1 inner loop iteration

per cycle

1 outer loop iteration

per cycle

Page 5: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Contains one or more dynamic-bound inner loops

– Number of inner loop iterations vary during runtime

– Accesses less-regular data structures (e.g. sparse matrices,

graphs, and hash tables) common in emerging applications

– How to pipeline this loop nest to achieve one lookup per cycle?

for (i : keys_to_find)#pragma pipeline

hv = Jenkins_hash(k);p = hashtbl[hv].keys;

while (p && p->key!=k)p = p->next;

format_output(p)}

.

.

.

Keys

0

1

N

Hash

buckets

Hash lookup

5

Pipelining Irregular Loop Nest

Page 6: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

6

Aggressively Unrolling Inner Loop

for (i : keys_to_find)#pragma pipeline

hv = Jenkins_hash(k);p = hashtbl[hv].keys;

for (j=0; j<6; j++)#pragma unrollif (p && p->key!=k)p = p->next;

format_output(p)}

Clo

ck C

ycle

...

i=0

i=0

j=0

j=1

j=2

j=3

j=4

j=5

i=1

i=1

j=0

j=1

j=2

j=3

j=4

j=5

i=2

i=2

j=0

j=1

j=2

j=3

j=4

j=5

i=3

i=3

j=0

j=1

j=2

j=3

j=4

j=5

i=4

i=4

j=0

j=1

j=2

j=3

j=4

j=5

i=5

i=5

j=0

j=1

j=2

j=3

j=4

j=5

Resource

1 lookup/cycleA

B

C

B

Page 7: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

i=0

i=1

j=99

.

.

.

j=99

.

.

.

.

.

.

.

.

....

.

.

.

7

Issues with Aggressive Unrolling

...

i=0j=0

j=1

j=2

j=3

j=4

j=5

i=1j=0

j=1

j=2

j=3

j=4

j=5

i=2j=0

j=1

j=2

j=3

j=4

j=5

i=3j=0

j=1

j=2

j=3

j=4

j=5

i=4j=0

j=1

j=2

j=3

j=4

j=5

i=5j=0

j=1

j=2

j=3

j=4

j=5

i=6j=0

j=1

j=2

j=3

j=4

j=5

i=7j=0

j=1

j=2

j=3

j=4

i=8j=0

j=1

j=2

i=9j=0

j=1

.

.

.

Resource

3. Unnecessarily deep pipeline,

very inefficient in area

1. May not be statically determinable

2. Worst-case bound >> common case

(e.g. 99 vs. 2)

Clo

ck C

ycle

B

Page 8: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Irregular loop nests are prevalent

– Graph processing,

– Scientific computation,

– Image processing, etc.

▸ Naive approaches result in low throughput or large area

– Need resource-efficient pipelining of the outer loop for an

irregular loop nest to target one outer loop iteration per cycle

8

Need for a New Approach

Page 9: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ ElasticFlow

– Architecture and associated synthesis techniques

– Effectively accelerate irregular loop nests

▸ Transform the irregular loop nest into a multi-stage

dataflow pipeline

– Dynamically distribute different outer loop instances of the

dynamic-bound inner loop to one or more processing units

– Inner loops execute in a pipelined fashion across different outer

loop iterations

ElasticFlow Concept

9

Page 10: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Each dynamic-bound inner loop is mapped to an

application-specific loop processing array (LPA)

– LPA contains one or more loop processing units (LPUs)

– Each LPU executes an inner loop until completion, which

automatically handles inner loop carried dependences

ElasticFlow Architecture

Collector

Distributor

Loop Processing Array (LPA) for B

LPU1 LPU2 LPUK

…B

A

C

10

<i, val>

<i, val>

<i, val>

i=0i=1

i=2

i=3

Page 11: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Distributor

– Dynamically distributes inner loop instances to LPUs

▸ Collector

– Collects results from the LPUs

– Acts as an reorder buffer (ROB) to ensure that results are

committed to the next stage in-order

Distributor and Collector

Collector

Distributor

LPA

…B

A

C

11

i=0i=1

i=2

Page 12: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

12

ElasticFlow on Hash Lookup

12

B

A

C

for (i : keys_to_find) {#pragma pipeline

hv = Jenkins_hash(k);p = hashtbl[hv].keys;

while (p && p->key!=k)p = p->next;

format_output(p)}

i=0

i=1i=2

i=3

A

B

C

Clo

ck C

ycle

LPUs specialized for B

Dynamically overlap inner loops across outer loop iterations

to achieve a throughput of one outer loop iteration per cycle

Page 13: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

13

Execution with Single LPU

▸ Single LPU for Stage B

– Execution in Stage A and C

can overlap in time

– Inner loop iterations execute

serially on Stage B

i=0

i=1

i=2

i=3

stall

i=4

i=5

i=6

i=7

A CB

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

stall

stall

stall

stall

i=0

i=1

i=2

stall

i=3

i=4

i=5

i=6

stall

stall

stall

stall

stall

i=7stall.

.

. ... .

.

Clo

ck C

ycle

for (i : keys_to_find) {#pragma pipeline

hv = Jenkins_hash(k);p = hashtbl[hv].keys;

while (p && p->key!=k)p = p->next;

format_output(p)}

A

B

CThroughput bottlenecked by the inner loop latency in stage B.

Page 14: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

14

Execution with Multiple LPUs

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

A CB

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

.

.

. ... .

.

Clo

ck C

ycle

▸ Multiple LPUs for Stage B

– Dynamically schedule inner loops

LPU1 LPU2 LPU3 LPU4

i=0

i=0

i=1

i=1

i=2

i=2

i=3

i=3

i=4

i=4

i=6

i=6

i=7i=7

i=5i=5

A B

i=1

C

i=0

i=2i=3i=4i=5i=6i=7

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Multiple LPUs for B Single LPU for B

Page 15: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Dynamic scheduling policy

– Mitigates the effect of unbalanced workload on throughput due to

latency variation of different inner loops

Dynamic Scheduling

15

i=0 i=3

i=4 i=7

LPU1 LPU2 LPU3 LPU4

i=1

i=5

i=2

i=6

A B C

.

.

.

.

.

....

.

.

....

Inefficient resource utilization

due to many stalls and idles!

LPU1 LPU2 LPU3 LPU4

i=0

i=0

i=1

i=1

i=2

i=2

i=3

i=3

i=4

i=4

i=6

i=6

i=7i=7

i=5i=5

A B

i=1

C

i=0

i=2i=3i=4i=5i=6i=7

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Dynamic scheduling Static scheduling

Page 16: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

16

Multiple Dynamic-Bound Inner Loops

C

Collector

Distributor

LPAD

sLPUK

A

Collector

Distributor

LPAB

sLPU1 sLPUK

E

<i, val> <i, val>

<i, val> <i, val>

……

sLPU1

for (i=0; i<num_keys; i++)#pragma pipeline

// A: lookup hashtbl1...// B: dynamic-bound loopwhile (p && p->key!=k)p = p->next;

// C: loop up hashtbl2...// D: dynamic-bound loopwhile (q && q->key!=k)q = q->next;

// E: merge results...

}

Database join

B

D

B B D D

Each LPA is dedicated to a

particular inner loop

Architecture with dedicated LPAs

Page 17: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ If loop B incurs much longer average latency than loop

D, the LPA for loop D results in poor resource utilization

Issues with Dedicated LPAs

17

iD=0 iD=1

iD=3iD=4

sLPU1 sLPU2

Idle Idle

iD=2

sLPU3

Idle

iB=0iB=1

sLPU1 sLPU2

iB=3

sLPU3

iB=2

iB=4iB=5

iD=5

sLPAB sLPAD

execute dbjoin on dedicated LPUs

Clo

ck C

ycle

Page 18: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ An LPA can be shared among one or more inner loops

– sLPU: single-loop processing unit, dedicated to one loop

– mLPU: multi-loop processing unit, shared among multiple loops

– sLPA: single-loop processing array, consists of multiple sLPUs

for a particular loop

– mLPA: multi-loop processing array, consists of multiple mLPUs

each shared among loops

LPA Sharing

18

C

Shared mLPUs

A

Collector

Distributor

E

<s, i, val> <s, i, val>

<i, val> <i, val> mLPAB,D

…Architecture with shared LPUs B/D B/D B/D

vs. sLPA

Page 19: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ mLPA improves resource utilizations and performance by

reducing pipeline stalls for unbalanced workload

Execution with Shared LPUs

19

iD=0 iD=1

iD=3iD=4

sLPU1 sLPU2

Idle Idle

iD=2

sLPU3

Idle

iB=0iB=1

sLPU1 sLPU2

iB=3

sLPU3

iB=2

iB=4iB=5

iD=5

sLPAB sLPAD

Execution of dbjoin on dedicated LPAs

Clo

ck C

ycle

iB=0

iD=0

iD=1

mLPU1 mLPU2 mLPU3 mLPU4

iB=1iB=2

iB=3

iD=2

iD=3

iB=5iD=4

iD=5

mLPAB,D

iB=4

Even requires fewer LPUs

Execution on shared mLPA

Page 20: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

Shared mLPUs

Collector

Distributor

mLPAB,D

20

ElasticFlow Synthesis

▸ Maps irregular loop nest to the ElasticFlow architecture

– Partition the loop nest into multiple stages

– Identify inner loop candidates to form the LPAs

– Synthesize these inner loops into sLPUs and mLPUs

B

A

C

Goal: Optimize LPU allocation

to meet the expected throughput

D

E

for (i=0; i<num_keys; i++)#pragma pipeline

// A: lookup hashtbl1...// B: dynamic-bound loop

while (p && p->key!=k)

p = p->next;// C: loop up hashtbl2...// D: dynamic-bound loop

while (q && q->key!=k)

q = q->next;// E: merge results...

}

1. How many?

2. Shared or not shared?

Page 21: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Definitions

– TP: Expected number of outer loop iterations per cycle

– IIi: Achievable initiation interval (II) of inner loop i

– Li: Latency in cycles of a single iteration of loop i

– Bi: Common-case bound of inner loop i (from profiling)

21

sLPU Allocation

Ui=[IIi(Bi-1)+Li]∙TP

Common-case latency of

each inner loop instance

Need this many sLPU to hide

the latency of inner loop

To achieve the

expected throughputNumber of sLPUs

How many simultaneous in-flight outer loop iterations is required?

Page 22: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Replace dedicated sLPUs with shared mLPUs to

improve performance and resource utilization

– How many sLPUs should be replaced with mLPUs?

▸ Inherent trade-off between performance and area

– mLPUs improve performance by allowing adaptive assignment

of resources to different types of loops depending on workload

– mLPUs typically consume more area than sLPUs

22

mLPU Allocation

Page 23: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Optimize the tradeoff as an integer linear program given

– Resource usage of each type of LPU

– Area of the sLPA architecture

23

LPU Allocation

sharing + #LPUs ≈ performance

Total area of the LPAs

Prevent over-allocation of LPUs

Each loop maps to a single type of LPA

Loops mapped to compatible LPA

Page 24: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

24

ROB Buffer Sizing

▸ Reorder buffer (ROB) must hold all results from the

LPUs that are not yet ready to be committed

▸ Distributor stalled when ROB is full. LPUs cannot process

new outer loop iterations, and become underutilized.

Need to store results from i=1 to i=7 because they finish before i=0

Collector (ROB)

Distributor

LPA

LPU1 LPU2 LPUK

LPU1 LPU2 LPU3 LPU4

i=0

i=0

i=1

i=1

i=2

i=2

i=3

i=3

i=4

i=4

i=6

i=6

i=7i=7

i=5i=5

stall

Tim

e

A B

i=1

C

i=0

i=2i=3i=4i=5i=6i=7

.

.

. ...

.

.

.

.

.

.

.

.

.

.

.Problem: how to statically but suitably size the ROB during synthesis?

Page 25: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ We estimate the ROB size based on profiling

– Maximum latency Lmax– Minimum latency Lmin– Average latency Lavg– Latency standard deviation σ

▸ Our estimates (for K LPUs) achieve good performance

based on the following empirical formulation

25

ROB Buffer Sizing

Page 26: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Both sLPA and mLPA are deadlock-free

– Limit the number of in-flight outer loop iterations to be no greater

than the number of available ROB entries

▸ Entire dataflow architecture cannot deadlock

– If the architecture forms a directed acyclic graph

– If there is data dependence between shared inner loops

26

Deadlock Avoidance

Page 27: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ ElasticFlow’s setup leverages a commercial HLS tool

which uses LLVM compiler as its front-end

▸ Compared ElasticFlow to pipelining techniques

employed in state-of-the-arts commercial HLS tool

▸ Target Xilinx Virtex-7 FPGA with 5-ns target clock period

▸ Benchmark applications

– Graph processing, database, scientific computing, image

processing

27

Experimental Setup

Page 28: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

28

Performance for Different Number of LPUs

0

1

2

3

4

5

6

7

8

9

No

rma

lize

d s

pe

ed

up

Benchmark applications

Performance Comparison

1 LPU 2 LPUs 4 LPUs 8 LPUs

Close to proportional improvement in performance

for increasing number of LPUs

Page 29: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

Design Technique Latency LUTs Registers

dbjoin Unroll 386 10632 21187

ElasticFlow 389 6493 4239

spmv Unroll 365 2884 6319

ElasticFlow 372 1894 1412

29

ElasticFlow vs. Aggressive Unrolling

1.5x

reduction

4.5x

reductioncomparable

▸ Achieves comparable performance with significantly less

resource usage

– Unrolling is inapplicable when the worst-case loop bound cannot

be statically determined

Page 30: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Using mLPA can further improve the performance by

21%-34% with similar area

30

Effectiveness of LPU Sharing

Design # sLPUs # mLPUs Latency

Reduction

Slice

Overhead

cfd-A 8 8 34.7% 3.8%

cfd-B 16 16 31.5% 5.2%

dbjoin-A 8 7 21.3% 7.0%

dbjoin-B 16 14 21.6% 5.7%

Small area

overheadSignificant

latency reduction

Comparison of mLPUs over sLPUs

Page 31: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Existing HLS tools rely on static pipelining techniques

– Extract parallelism only at compile time

– Not competitive for irregular programs with dynamic parallelism

▸ Need for adaptive pipelining techniques

– Dynamically extract parallelism at runtime

– Efficiently handle statically unanalyzable program patterns

▸ We address pipelining of irregular loop nests containing

dynamic-bound inner loops

– Novel dataflow pipeline architecture and synthesis techniques

– Substantial performance improvement

31

Take-Away Points

Page 32: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

ElasticFlow: A Complexity-Effective Approach for

Pipelining Irregular Loop Nests

Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve Dai1, Zhiru Zhang1

1 Computer Systems Laboratory,

Electrical and Computer Engineering, Cornell University

2 Google Inc.

Page 33: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

33

Backup Slides

Page 34: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Liu, Johnson, and August, DAC’14

▸ Generates coarse-grained pipelines for a loop nest by

partitioning it into parallel and non-parallel sections

– Employs replicated data-level parallelism to create multiple

identical copies of the parallel section

– Applies decoupled pipeline parallelism to separate the parallel

and sequential sections with a set of FIFOs

▸ ElasticFlow achieves additional performance and

resource efficiency

– Enables out-of-order execution and dynamic scheduling

– Optimizes allocation and sharing of LPUs with mLPA architecture

– Studies sizing for both ROB and delay line and runtime policy to

prevent deadlock

34

Coarse-Grained Pipelined Accelerators (CGPA)

Page 35: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

35

Comparison with CGPA

Page 36: ElasticFlow: A Complexity-Effective Approach for ......ElasticFlow: A Complexity-Effective Approach for Pipelining Irregular Loop Nests Mingxing Tan1 2, Gai Liu1, Ritchie Zhao1, Steve

▸ Kocberber, Grot, Picorel, Falsafi, Lim, and Ranganathan,

MICRO’13

▸ A reconfigurable accelerator for hash indexing in

database systems

– Uses decoupled pipeline architecture similar to ElasticFlow

– Hashing unit distributes work to a parallel array of walker units,

whose results are combined in a n output unit

▸ ElasticFlow is a technique for addressing a more general

problem of pipelining irregular loop nests

36

Widx