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

Transcript of Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment time optimized architecture...

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