❈♦♠♣✐❧❛t✐♦♥ ❛♥❞ ❆♥❛❧②s❡s✱ ❙♦❢t✇❛r❡ ❛♥❞ ❍❛r❞✇❛r❡
❈❆❙❍ ❏♦✐♥t ■♥r✐❛ ❚❡❛♠ ♣r♦♣♦s❛❧ ❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦②
❯♥✐✈❡rs✐t② ❈❧❛✉❞❡ ❇❡r♥❛r❞ ▲②♦♥ ✶ ✴ ❈◆❘❙ ✴ ❊◆❙ ▲②♦♥ ✴ ■♥r✐❛ ✭▲■P ▲❛❜♦r❛t♦r②✮
t ss tr - - PowerPoint PPT Presentation
t ss tr rr t r rs rst s
❯♥✐✈❡rs✐t② ❈❧❛✉❞❡ ❇❡r♥❛r❞ ▲②♦♥ ✶ ✴ ❈◆❘❙ ✴ ❊◆❙ ▲②♦♥ ✴ ■♥r✐❛ ✭▲■P ▲❛❜♦r❛t♦r②✮
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✸ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✹ ✴ ✷✸
❢♦r i ✿❂ ✶ t♦ N − ✷ ❢♦r j ✿❂ ✶ t♦ N − ✷ Gx ✿❂ ✭❈❬✐✰✷✱❥✰✶❪✰❈❬✐✰✷✱❥❪✰❈❬✐✰✷✱❥✰✷❪✮ −✭❈❬✐✱❥✰✶❪✰❈❬✐✱❥❪✰❈❬✐✱❥✰✷❪✮❀ Gy ✿❂ ✭❈❬✐✰✶✱❥✰✷❪✰❈❬✐✱❥✰✷❪✰❈❬✐✰✷✱❥✰✷❪✮ − ✭❈❬✐✰✶✱❥❪✰❈❬✐✱❥❪✰❈❬✐✰✷✱❥❪✮❀ B[i, j] ✿❂
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✺ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✻ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✼ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✽ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✾ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✵ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✶ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✷ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✷ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✷ ✴ ✷✸
P1 P2 P3 P4
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✸ ✴ ✷✸
P1 P2 P3 P4
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✸ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✹ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✹ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✹ ✴ ✷✸
P1
2
P3 P2
1 4 3
C-to-Dataflow HLS tool
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✺ ✴ ✷✸
P1
2
P3 P2
1 4 3
C-to-Dataflow HLS tool
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✺ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✻ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✻ ✴ ✷✸
FPGA Big C kernel Medium grain dataflow model Small grain dataflow model Multi/many core, GPU
HLS compilation
1 1 3 4 5 3
Dataflow parallel application
1
Relying on scalable and precise static analysis 2 General purpose compilation
Simulation
. . . . . . . . .
3
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✻ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✼ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✼ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✽ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶✾ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷✵ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷✶ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷✷ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷✸ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷✸ ✴ ✷✸
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✶ ✴ ✹
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✷ ✴ ✹
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✸ ✴ ✹
❈❤r✐st♦♣❤❡ ❆❧✐❛s✱ ▲❛✉r❡ ●♦♥♥♦r❞✱ ▲✉❞♦✈✐❝ ❍❡♥r✐♦✱ ▼❛tt❤✐❡✉ ▼♦② ✹ ✴ ✹