cornell-zhang/heterocl

Support dataflow primitive

Closed this issue · 2 comments

Referred to Hongzheng's PR. We need to handle two cases.

  1. dataflow optimization inside function body
# Apply .to to place data
s.to(kernel.conv, kernel.out, depth=1)
s.to(image, kernel.out, depth=20)

# Mark function body as dataflow region
top = s.subgraph()[0]
s[top].dataflow()
  1. dataflow optimization inside a loop
loop = hcl.compute((10,32), lambda *args: pe(args), "loop")

# Mark 1st loop's body as dataflow region
s[loop].dataflow(axis=1)

Which one is not supported?

@zhangzhiru. 1st one.