goal: split compiler llvm llvm – dresc bytecode staticdeployment time optimized architecture...
TRANSCRIPT
Goal: Split Compiler
LLVM LLVM – DRESCbytecode
static deployment time
optimized architecture description
compiler strategy
ML
annotations
C code ADRES executable
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
What does the DRESC scheduler do?
Scheduling Phases
1. Determining the clusters2. Recurrence Cluster Scheduling3. Non-recurrence Cluster Scheduling
1. Determining the clusters
1
2
3 4
2. Recurrence Cluster Scheduling
I. Schedule incoming tree of cluster
II. Schedule recurrence cluster
2.I Schedule incoming tree of cluster
1
2
3
2.II Schedule recurrence cluster
• All recurrence clusters are scheduled in a reverse manner
3
1
2
3. Schedule Remaining Nodes
4
4. Failure? Backtracking
5. A more complex example
2
1
3
4
5
3
4
5