2020 · 49 citations · 40 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingAccelerator ArchitectureData ParallelismData TypesHardware AccelerationInstruction SchedulingParallel ArchitecturesAccelerator MicroarchitectureAcceleratorsAutomated Design Space ExplorationCompiler SupportHardware SchedulingOperatorsResource Requirements AssessmentStreaming Architectures
Designing efficient, application-specialized hardware accelerators requires assessing trade-offs between a hardware module’s performance and resource requirements. To facilitate hardware design space exploration, we describe Aetherling, a system for automatically compiling data-parallel programs into statically scheduled, streaming hardware circuits. Aetherling contributes a space- and time-aware intermediate language featuring data-parallel operators that represent parallel or sequential hardware modules, and sequence data types that encode a module’s throughput by specifying when sequence elements are produced or consumed. As a result, well-typed operator composition in the space-time language corresponds to connecting hardware modules via statically scheduled, streaming interfaces.
40
Edward A. Lee, David G. Messerschmitt · Proceedings of the IEEE · 1987 · 1.8K citations
The synchronous data flow programming language LUSTRE
Nicolas Halbwachs, P. Caspi, Pascal Raymond et al. · Proceedings of the IEEE · 1991 · 1.5K citations · Full text
Jonathan Bachrach, Huy T. Vo, Brian Richards et al. · 2012 · 905 citations