Sequences of data-dependent tasks, each one traversing large data sets, exist in many applications (such as video, image and signal processing applications). Those tasks usually perform computations (with loop intensive behavior) and produce new data to be consumed by subsequent tasks. This paper shows a scheme to pipeline sequences of data-dependent loops, in such a way that subsequent loops can start execution before the completion of the previous ones, which achieves performance improvements. It uses a hardware scheme with decoupled and concurrent data-path and control units that start execution at the same time. The communication of array elements between two loops in sequence is performed by special buffers with a data-driven, fine-gra...
Current parallelization techniques, mostly based on data dependence analysis, are primarily used to ...
Abstract—The parallel nature of the multi-core architectural design can only be fully exploited by c...
Uncountable loops (such as while loops in C) and if-conditions are some of the most common construct...
Data-driven array architectures seem to be important alternatives for coarse-grained reconfigurable ...
[[abstract]]A systematic procedure for designing pipelined data-parallel algorithms that are suitabl...
[[abstract]]A methodology for designing pipelined data-parallel algorithms on multicomputers is stud...
This paper proposes an efficient run-time system to schedule general nested loops on multiprocessors...
Pipelining is an important technique in high-level synthesis, which overlaps the execution of succes...
Developing efficient programs for many of the current parallel computers is not easy due to the arch...
Control divergence poses many problems in parallelizing loops. While predicated execution is commonl...
Abstract-FPGAs, (Field-Programmable Gate Arrays) are often used for embedded image processing applic...
Recursive sections in a data path are constraints to the minimum value of data introduction latency ...
While automatic parallelization of loops usually relies on compile-time analysis of data dependences...
Pipelining is a very effective way to increase the thruput of a process. It has been used successful...
Pipelining algorithms are typically concerned with improving only the steady-state performance, or t...
Current parallelization techniques, mostly based on data dependence analysis, are primarily used to ...
Abstract—The parallel nature of the multi-core architectural design can only be fully exploited by c...
Uncountable loops (such as while loops in C) and if-conditions are some of the most common construct...
Data-driven array architectures seem to be important alternatives for coarse-grained reconfigurable ...
[[abstract]]A systematic procedure for designing pipelined data-parallel algorithms that are suitabl...
[[abstract]]A methodology for designing pipelined data-parallel algorithms on multicomputers is stud...
This paper proposes an efficient run-time system to schedule general nested loops on multiprocessors...
Pipelining is an important technique in high-level synthesis, which overlaps the execution of succes...
Developing efficient programs for many of the current parallel computers is not easy due to the arch...
Control divergence poses many problems in parallelizing loops. While predicated execution is commonl...
Abstract-FPGAs, (Field-Programmable Gate Arrays) are often used for embedded image processing applic...
Recursive sections in a data path are constraints to the minimum value of data introduction latency ...
While automatic parallelization of loops usually relies on compile-time analysis of data dependences...
Pipelining is a very effective way to increase the thruput of a process. It has been used successful...
Pipelining algorithms are typically concerned with improving only the steady-state performance, or t...
Current parallelization techniques, mostly based on data dependence analysis, are primarily used to ...
Abstract—The parallel nature of the multi-core architectural design can only be fully exploited by c...
Uncountable loops (such as while loops in C) and if-conditions are some of the most common construct...