FAMOUS: Flexible Accelerator for the Attention Mechanism of Transformer on UltraScale+ FPGAs
<|reference_start|>FAMOUS: Flexible Accelerator for the Attention Mechanism of Transformer on UltraScale+ FPGAs: Transformer neural networks (TNNs) are being applied across a widening range of application domains, including natural language processing (NLP), machine translation, and computer vision (CV). Their popularity is largely attributed to the exceptional performance of their multi-head self-attention blocks when analyzing sequential data and extracting features. To date, there are limited hardware accelerators tailored for this mechanism, which is the first step before designing an accelerator for a complete model. This paper proposes \textit{FAMOUS}, a flexible hardware accelerator for dense multi-head attention (MHA) computation of TNNs on field-programmable gate arrays (FPGAs). It is optimized for high utilization of processing elements and on-chip memories to improve parallelism and reduce latency. An efficient tiling of large matrices has been employed to distribute memory and computing resources across different modules on various FPGA platforms. The design is evaluated on Xilinx Alveo U55C and U200 data center cards containing Ultrascale+ FPGAs. Experimental results are presented that show that it can attain a maximum throughput, number of parallel attention heads, embedding dimension and tile size of 328 (giga operations/second (GOPS)), 8, 768 and 64 respectively on the U55C. Furthermore, it is 3.28$\times$ and 2.6$\times$ faster than the Intel Xeon Gold 5220R CPU and NVIDIA V100 GPU respectively. It is also 1.3$\times$ faster than the fastest state-of-the-art FPGA-based accelerator.<|reference_end|>
@article{kabir2024famous:,
    title={FAMOUS: Flexible Accelerator for the Attention Mechanism of Transformer
  on UltraScale+ FPGAs},
    author={Ehsan Kabir, Md. Arafat Kabir, Austin R.J. Downey, Jason D. Bakos,
  David Andrews, Miaoqing Huang},
    journal={arXiv preprint arXiv:2409.14023},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.14023},
    primaryClass={cs.AR cs.AI cs.LG}
}