z-logo
open-access-imgOpen Access
Optimising loops in dynamic dataflow
Author(s) -
Santiago Leandro,
Marzulo Leandro A.J.,
Sena Alexandre C.,
Alves Tiago A.O.,
França Felipe M.G.
Publication year - 2017
Publication title -
iet circuits, devices and systems
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.251
H-Index - 49
ISSN - 1751-8598
DOI - 10.1049/iet-cds.2015.0148
Subject(s) - dataflow , computer science , parallel computing , operand , compiler , overhead (engineering) , control flow , dataflow architecture , boosting (machine learning) , loop (graph theory) , programming language , operating system , combinatorics , mathematics , machine learning
Dynamic dataflow allows simultaneous execution of instructions in different iterations of a loop, boosting parallelism exploitation. In this model, operands are tagged with their associated instance number, which is incremented as they go through the loop. Instruction execution is triggered when all input operands with the same tag become available. However, this traditional tagging mechanism often requires the generation of several control instructions to manipulate tags and guarantee the correct match. To address this problem, this work presents three dataflow loop optimisation techniques. The stack‐tagged dataflow is a tagging mechanism that uses stacks of tags to reduce control overheads in dataflow. On the other hand, as nested loops may increase the overhead of stack‐tag comparison, tag resetting can be used to set the tag to zero whenever it is safe, allowing a one‐level reduction at the stack depth. Finally, loop skipping allows to further avoid stack comparison overhead in loops , when the number of iterations can be determined by the compiler. Experimental results show the overhead, drawbacks and benefits for the three optimisations presented. Moreover, the results suggested that a hybrid compiling approach can be used to get the best performance of each technique.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here