Goal: Split Compiler LLVM LLVM – DRESC bytecode staticdeployment 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 clusters 2.Recurrence Cluster Scheduling 3.Non-recurrence Cluster Scheduling
1. Determining the clusters
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
3 4 5