From: Lionel M. <lio...@in...> - 2015-11-27 09:10:57
|
Dear all, I’m prospecting for a potential research project on the applicability of loop-optimization techniques to the efficient compilation of dataflow programs. The advantages I see in considering these questions at the cal level instead of the C code generated are: - cal uses a foreach syntax that’s way nicer to handle by loop optimization tools (typically the polyhedral models) than the while implementation we find in the C generated - doing this at the C level would lead us towards pointer analysis techniques that one should avoid when possible. - Most importantly, in the long term, we're interested in looking at the interaction between loop optimizations applied at the sequential code level (inside actors) and the possibilities for re-structuring the dataflow graph (actor splitting, merging, etc). So my question is really addressed to people writing actual decoders in rvc-cal: could you tell me if you use loop nests inside the actors’ code and what are the usual sizes of those loop nets when they are used. I have seen such foreach loops in the code of some actors. But I’m not familiar enough with what actors actually do to make a proper sense out of those and decide if they are costly operations that would benefit from further optimizations or not. In particular, determining the size of these loops is tricky as some depend on input tokens which may have “runtime properties” that typically limit their range. This is also related to the question of multi-dimensional arrays in rvc-cal. I know you cannot declare FIFOs manipulating multi-dim tokens. I also am aware of the possibility to restructure a 1D input data stream into a local 2D data structure, and _then_ write loop nests on those local arrays. I think this is cumbersome and I fear this to be relatively inefficient if used frequently (lots of data duplication typically). So a question related to the previous one is: does anyone feel the need for multi-dimensional FIFOs. As anybody been working on integrating this to CAL? If yes what were the outcomes? If no, why? If this rings any bell to someone on the list, I’d be happy to discuss this further. Best regards. Lionel -- Lionel Morel MCF INSA Lyon / Laboratoire CITI-INRIA Équipe Socrate |