- Yatham, Brahmendra;
- Wang, Shu-Ting;
- Kim, Dohee;
- Sarikhani, Parisa;
- Mahmoudi, Babak;
- Mahajan, Divya;
- Park, Jongse;
- Esmaeilzadeh, Hadi;
- Kim, Joon;
- Ahn, Byung;
- Kinzer, Sean;
- Ghodrati, Soroush;
- Mahapatra, Rohan
FPGA accelerators offer performance and efficiency gains by narrowing the scope of acceleration to one algorithmic domain. However, real-life applications are often not limited to a single domain, which naturally makes Cross-Domain Multi-Acceleration a crucial next step. The challenge is, existing FPGA accelerators are built upon their specific vertically-specialized stacks, which prevents utilizing multiple accelerators from different domains. To that end, we propose a pair of dual abstractions, called Yin-Yang, which work in tandem and enable programmers to develop cross-domain applications using multiple accelerators on a FPGA. The Yin abstraction enables cross-domain algorithmic specification, while the Yang abstraction captures the accelerator capabilities. We also develop a dataflow virtual machine, dubbed XLVM, that transparently maps domain functions (Yin) to best-fit accelerator capabilities (Yang). With six real-world cross-domain applications, our evaluations show that Yin-Yang unlocks 29.4× speedup, while the best single-domain acceleration achieves 12.0×.