Improving Job Launch Rates in the TaPaSCo FPGA Middleware by Hardware/Software-Co-Design

In recent years, FPGAs have established themselves as an important acceleration platform next to GPUs in heterogeneous HPC systems, providing flexibility and high performance for tasks such as machine learning inference or DNA sequencing.While the design of the FPGA-based accelerator cores has become accessible to a broader range of users through customized RISC-V soft-cores and the maturity of High-Level Synthesis (HLS), the integration of and interaction with such accelerator cores in the overall heterogeneous system remains a challenging task.The open-source TaPaSCo framework eases this task by providing a concise software API and middleware for the interaction with FPGA-based accelerator system-on-chips automatically generated from user-provided accelerator cores.In this work, we present an extension of the TaPaSCo framework which improves the launch rates and latencies of FPGA-accelerated compute jobs, a crucial factor for the performance of the overall system, through hardware/software-co-design of an improved Rust-based software runtime, and a job dispatcher itself accelerated by hardware.Our evaluation shows that the new dispatchers can provide an improvement of up to 6x in job throughput with only minimal resource overhead.

[1]  Andreas Koch,et al.  A Flexible Compute and Memory Infrastructure for High-Level Language to Hardware Compilation , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[2]  Andreas Koch,et al.  High-Throughput Multi-Threaded Sum-Product Network Inference in the Reconfigurable Cloud , 2019, 2019 IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC).

[3]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[4]  Marco Platzner,et al.  ReconOS: An Operating System Approach for Reconfigurable Computing , 2014, IEEE Micro.

[5]  Philipp Holzinger,et al.  Heterogeneous Computing Utilizing FPGAs , 2018, J. Signal Process. Syst..

[6]  Andreas Koch,et al.  The TaPaSCo Open-Source Toolflow , 2019, Journal of Signal Processing Systems.

[7]  Andreas Koch,et al.  An Open-Source Tool Flow for the Composition of Reconfigurable Hardware Thread Pool Architectures , 2015, 2015 IEEE 23rd Annual International Symposium on Field-Programmable Custom Computing Machines.

[8]  Neil W. Bergmann,et al.  A Hardware Scheduler Based on Task Queues for FPGA-Based Embedded Real-Time Systems , 2015, IEEE Transactions on Computers.

[9]  Andreas Koch,et al.  Energy-efficient heterogeneous reconfigurable sensor node for distributed structural health monitoring , 2012, Proceedings of the 2012 Conference on Design and Architectures for Signal and Image Processing.

[10]  Andreas Koch,et al.  A Catalog and In-Hardware Evaluation of Open-Source Drop-In Compatible RISC-V Softcore Processors , 2019, 2019 International Conference on ReConFigurable Computing and FPGAs (ReConFig).

[11]  Vivek Sarkar,et al.  Dynamic Task Parallelism with a GPU Work-Stealing Runtime System , 2011, LCPC.

[12]  Andreas Koch,et al.  OpenMP device offloading to FPGA accelerators , 2017, 2017 IEEE 28th International Conference on Application-specific Systems, Architectures and Processors (ASAP).