Proceedings of the 26th International Conference on Compiler Construction 2017
DOI: 10.1145/3033019.3033027
|View full text |Cite
|
Sign up to set email alerts
|

From functional programs to pipelined dataflow circuits

Abstract: We present a translation from programs expressed in a functional IR into dataflow networks as an intermediate step within a Haskellto-Hardware compiler. Our networks exploit pipeline parallelism, particularly across multiple tail-recursive calls, via non-strict function evaluation. To handle the long-latency memory operations common to our target applications, we employ a latency-insensitive methodology that ensures arbitrary delays do not change the functionality of the circuit. We present empirical results c… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
16
0

Year Published

2018
2018
2024
2024

Publication Types

Select...
3
2
2

Relationship

1
6

Authors

Journals

citations
Cited by 27 publications
(16 citation statements)
references
References 29 publications
0
16
0
Order By: Relevance
“…A different approach is HLS from functional languages [12,15,27], and dataflow languages [11,13,25]. For example Townsend et al [27] uses a subset of Haskell and perform a syntax-directed translation to a internal dataflow representation which ultimately translated into a hardware design. Those works are closer to ours, as applications are expressed using high-level platform-agnostic patterns.…”
Section: Related Workmentioning
confidence: 99%
“…A different approach is HLS from functional languages [12,15,27], and dataflow languages [11,13,25]. For example Townsend et al [27] uses a subset of Haskell and perform a syntax-directed translation to a internal dataflow representation which ultimately translated into a hardware design. Those works are closer to ours, as applications are expressed using high-level platform-agnostic patterns.…”
Section: Related Workmentioning
confidence: 99%
“…Practically, nondeterministic merge processes expose the timing of a dataflow system implementation by interleaving sequences according to when tokens arrive at their inputs, and thus are used to improve performance or break a deadlock by avoiding the need to wait. For example, in the dataflow networks we obtain from syntax-directed translation [43], we use nondeterministic merge processes to share resources as shown in Figure 6, which we will explain in more detail in Section 3.4.…”
Section: Nondeterministic Mergementioning
confidence: 99%
“…We present a limited, core group of actors that we have found is rich enough to implement a wide variety of algorithms (see Townsend et al [43]). Our framework could support additional actor types, but their design is outside the scope of this article.…”
Section: Hardware Dataflow Actorsmentioning
confidence: 99%
See 1 more Smart Citation
“…This is also the case of Floh language described in Ref. [5]. A Floh program is translated into a dataflow graph using a very small set of types of actor and buffer, presented in details in Ref.…”
Section: Introductionmentioning
confidence: 99%