cornell-zhang / heterocl

HeteroCL: A Multi-Paradigm Programming Infrastructure for Software-Defined Heterogeneous Computing
https://cornell-zhang.github.io/heterocl/
Apache License 2.0
322 stars 92 forks source link

Support dataflow primitive #317

Closed hecmay closed 3 years ago

hecmay commented 3 years ago

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()


2. dataflow optimization inside a loop
```python
loop = hcl.compute((10,32), lambda *args: pe(args), "loop")

# Mark 1st loop's body as dataflow region
s[loop].dataflow(axis=1)
zhangzhiru commented 3 years ago

Which one is not supported?

hecmay commented 3 years ago

@zhangzhiru. 1st one.