Abstract

Loop pipelining (LP) is a key optimization in modern high-level synthesis (HLS) tools for synthesizing efficient hardware datapaths. Existing techniques for automatic LP are limited by static analysis that cannot precisely analyze loops with data-dependent control flow and/or memory accesses. We propose a technique for speculative LP that handles both control-flow and memory speculations in a unified manner. Our approach is entirely expressed at the source level, allowing a seamless integration to development flows using HLS. Our evaluation shows significant improvement in throughput over standard LP.

Highlights

  • FPGA accelerators benefit from excellent energy/performance characteristics, their usage is hindered by the lack of high-level programming tools

  • The main reason is that existing loop pipelining techniques rely on static schedules, which cannot precisely capture data-dependent behaviors. We address this limitation through a speculative loop pipelining framework supporting both control-flow and memory dependence speculation

  • This allows our approach to be seamlessly integrated into HighLevel Synthesis (HLS) design flows providing two key benefits: (i) the pipelined datapath is synthesized by the HLS tools that are capable of deriving efficient designs, and (ii) we do not compromise on the ease-of-use aspects: programmers keep all the productivity benefits of having high-level specifications

Read more

Summary

INTRODUCTION

FPGA accelerators benefit from excellent energy/performance characteristics, their usage is hindered by the lack of high-level programming tools. The usage of HLS tools resembles that of CAD tools, such as Logic/RTL synthesizers, where the design process involves a lot of interactions with the user These interactions allow the exploration of performance and area trade-offs in the resulting hardware. An important strength of our work is that the speculative design is expressed entirely at the source-level This allows our approach to be seamlessly integrated into HLS design flows providing two key benefits: (i) the pipelined datapath is synthesized by the HLS tools that are capable of deriving efficient designs, and (ii) we do not compromise on the ease-of-use aspects: programmers keep all the productivity benefits (e.g., easier/faster testing) of having high-level specifications. This article was presented in the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems 2020 and appears as part of the ESWEEK-TCAD special issue

BACKGROUND
F2 F3 F4 F5 F6
Limits of Loop Pipelining
Speculative Loop Pipelining at the Source-Level
H2 H3 H4 - - - H4 H5 H6
The Parameters of the Recovery Mechanism
Managing Arrays
Supporting Memory Speculation
Profitability of SLP
AUTOMATION IN A COMPILER
Program representation
Identifying Speculative Execution Points
Constructing the Recovery Logic
Transformation on Gated-SSA Representation
Memory Dependence Speculation
Managing Concurrent Execution of SCCs
Multiple Speculations
EVALUATION
Benchmarks
Area Overhead
LP SLP
Effective Throughput
DISCUSSION AND RELATED
SDC SLP
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call