Yin-Yang: Programming Abstractions for Cross-Domain Multi-Acceleration
- Joon Kyung Kim ,
- Byung Hoon Ahn ,
- Sean Kinzer ,
- Soroush Ghodrati ,
- Rohan Mahapatra ,
- Brahmendra Yatham ,
- Shu-Ting Wang ,
- Dohee Kim ,
- Parisa Sarikhani ,
- Babak Mahmoudi ,
- Divya Mahajan ,
- Jongse Park ,
- Hadi Esmaeilzadeh
IEEE Micro |
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×.