tancheng / CGRA-Mapper

An LLVM pass that can generate CDFG and map the target loops onto a parameterizable CGRA.
BSD 3-Clause "New" or "Revised" License
53 stars 8 forks source link

Parameters in param.json for mapping #10

Closed StephanEnseleit closed 1 year ago

StephanEnseleit commented 1 year ago

Hello, I am using the CGRA-Mapper combined with the param.json as a template as it can be found in the CGRA-Bench repository. But it seems like there are no real explanations given as to what each of the parameters is changing. I looked through the provided code here, but there also seem to be no comments. Could you please provide some descriptions to the parameters as, for example, the ones here: https://github.com/tancheng/CGRA-Bench/blob/master/kernels/gemm/param.json

Thank you very much in advance, Stephan

StephanEnseleit commented 1 year ago

On another note, does the basic CGRA architecture that is also used in the CGRA-Bench example above provide similar data pass-throughs as in the Hycube architecture? In Hycube, data can be transferred between processing elements on an array that are more than one step apart from each other in only a single cycle. Is this possible in OpenCGRA and is that what the "bypassConstraint" parameter refers to?

tancheng commented 1 year ago

Hi, the HyCUBE's single-cycle multi-hop is not modeled in this compiler and it might require non-trivial engineering effort to implement it. If you are only interested in HyCUBE related topic, you can look into morpher.

StephanEnseleit commented 1 year ago

Thank you for the answer. I'm not only interest in HyCUBE, therefore it would be nice if you could explain the parameters in more detail. Thank you

tancheng commented 1 year ago

Thanks for your interest. No problem. I will try to do it today~

tancheng commented 1 year ago

Thank you for the answer. I'm not only interest in HyCUBE, therefore it would be nice if you could explain the parameters in more detail. Thank you

The README is updated with the explanation on the param.json, feel free to ask if you have any other questions.

StephanEnseleit commented 1 year ago

Thank you very much, makes it a lot clearer how to use the param.json!