ACQuA: A Parallel Accelerator Architecture for Pure Functional Programs

2020 
Typical reconfigurable accelerators are either limited to instruction-level parallelism or require developers to manage parallelism in the source code manually. Pure functional languages simplify this task because they disallow the occurrence of side effects allowing safe and automatic identification of parallel operations. On the other hand, the higher level of abstraction of functional languages, when compared to imperative languages, typically makes the execution of functional programs less efficient. To improve this efficiency, we present ACQuA, a parallel accelerator that can be programmed with pure functional languages. ACQuA exploits the parallelism available in independent function calls, using hardware support and a dedicated memory organization to minimize the overheads of scheduling, communication, and synchronization. ACQuA also includes optimizations targeting the efficient execution of map, an important higher-order function in functional languages. We evaluate the effectiveness of these optimizations and ACQuA's scalability in terms of area and performance, showing near-optimal speedup for applications with independent function calls while using manageable amounts of hardware resources.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    20
    References
    0
    Citations
    NaN
    KQI
    []