goal: split compiler llvm llvm – dresc bytecode staticdeployment time optimized architecture...

23
Goal: Split Compiler LLVM LLVM – DRESC byteco de static deployment time optimize d architec ture descript ion compile r strateg y ML annotati ons C code ADRES executa ble

Upload: christy-barnwell

Post on 31-Mar-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

Goal: Split Compiler

LLVM LLVM – DRESCbytecode

static deployment time

optimized architecture description

compiler strategy

ML

annotations

C code ADRES executable

Page 2: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

ADRES

• Two functional views/operation modes

• Features heterogeneous FUs, local RFs, direct connections between FUs

• Reconfigurable every cycle

• Tightly coupled to control processor

IMEC ADRES CGRA Coarse-Grained Reconfigurable Array

Page 3: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

What does the DRESC scheduler do?

Page 4: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

Scheduling Phases

1. Determining the clusters2. Recurrence Cluster Scheduling3. Non-recurrence Cluster Scheduling

Page 5: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

1. Determining the clusters

Page 6: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

1

2

3 4

Page 7: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

2. Recurrence Cluster Scheduling

I. Schedule incoming tree of cluster

II. Schedule recurrence cluster

Page 8: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

2.I Schedule incoming tree of cluster

Page 9: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

1

2

Page 10: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

3

Page 11: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES
Page 12: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

2.II Schedule recurrence cluster

• All recurrence clusters are scheduled in a reverse manner

Page 13: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

3

Page 14: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

1

2

Page 15: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

3. Schedule Remaining Nodes

Page 16: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

4

Page 17: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

4. Failure? Backtracking

Page 18: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES
Page 19: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES
Page 20: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES
Page 21: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

5. A more complex example

Page 22: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

2

1

3

4

5

Page 23: Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture description compiler strategy ML annotations C code ADRES

3

4

5