Return
PoCo: Extending Task-Parallel HLS Programming with Shared Multi-Producer Multi-Consumer Buffer Support
DOI:10.1145/3771938.png)
Abstract
En 中文
Advancements in High-Level Synthesis (HLS) tools have enabled task-level parallelism on FPGAs. However,prevailing frameworks predominantly employ Single-Producer-Single-Consumer (SPSC) models for taskcommunication, thus limiting application scenarios. Analysis of designs becomes non-trivial with an increasingnumber of tasks in task-parallel systems. Adding features to existing designs often requires re-profiling ofseveral task interfaces, redesign of the overall inter-task connectivity, and describing a new floorplan. Thisarticle proposes PoCo, a novel framework to design scalable Multi-Producer-Multi-Consumer (MPMC) modelson task-parallel systems. PoCo introduces a shared-buffer abstraction that facilitates dynamic and high-bandwidth access to share on-chip memory resources, incorporates latency-insensitive communication,and implements placement-aware design strategies to mitigate routing congestion. The frontend providesconvenient APIs to access the buffer memory, while the backend features an optimized and pipelined datapath.Empirical evaluations demonstrate that PoCo achieves up to 50% reduction in on-chip memory utilizationon SPSC models without performance degradation. Additionally, three case studies on distinct real-worldapplications reveal up to 1.5xfrequency improvements and simplified dataflow management in heterogeneousFPGA accelerator designs.
Keywords:
Multi-producer multi-consumer
buffer optimization
floorplan optimization
multi-die FPGA
high-level synthesis
Journal
IF:
2.8
Papers:
597
Citations:
810

