Programming parallelism on FPGAs with Eclat
Résumé
Eclat is a general purpose OCaml-like programming language with synchronous semantics for designing reactive hardware applications on FPGAs. It is compiled down to hardware descriptions to realize computations as intrinsically parallel circuits able to interact with the physical world.
This paper presents a formalization of Eclat with shared memory and mutability, handling concurrent memory accesses while preserving determinacy. The language is precise enough to express efficient circuits with fine control over throughput, parallelism and time-space trade-off. It also enables abstraction by letting the programmer implement, reuse and compose algorithmic skeletons such as map and pipe. The synchronous approach makes it possible to estimate the execution time of parallel programs by simple reasoning on source code for quick prototyping and optimization.
Origine | Fichiers produits par l'(les) auteur(s) |
---|