Skip to main content
QUICK REVIEW

[論文レビュー] An Efficient FPGA-Based Accelerator for Swin Transformer

Zhiyang Liu, Pengyu Yin|arXiv (Cornell University)|Aug 26, 2023
Advanced Memory and Neural ComputingEngineering被引用数 3
ひとこと要約

本稿では、FPGAベースの効率的なスイントランスフォーマー用アクセラレータを提案する。レイヤー正規化(LN)をバッチ正規化(BN)に置き換えることで、ハードウェア統合を可能にし、ソフトマックスとゲルマン非線形関数(GELU)の近似ハードウェアユニットを設計し、すべての線形演算を統一された行列乗算ユニット(MMU)で処理する。このアクセラレータは、CPUに比べて最大1.76倍の高速化と20.45倍の高いエネルギー効率を達成し、既存のFPGAアクセラレータを上回る性能と効率を発揮する。

ABSTRACT

Since introduced, Swin Transformer has achieved remarkable results in the field of computer vision, it has sparked the need for dedicated hardware accelerators, specifically catering to edge computing demands. For the advantages of flexibility, low power consumption, FPGAs have been widely employed to accelerate the inference of convolutional neural networks (CNNs) and show potential in Transformer-based models. Unlike CNNs, which mainly involve multiply and accumulate (MAC) operations, Transformer involve non-linear computations such as Layer Normalization (LN), Softmax, and GELU. These nonlinear computations do pose challenges for accelerator design. In this paper, to propose an efficient FPGA-based hardware accelerator for Swin Transformer, we focused on using different strategies to deal with these nonlinear calculations and efficiently handling MAC computations to achieve the best acceleration results. We replaced LN with BN, Given that Batch Normalization (BN) can be fused with linear layers during inference to optimize inference efficiency. The modified Swin-T, Swin-S, and Swin-B respectively achieved Top-1 accuracy rates of 80.7%, 82.7%, and 82.8% in ImageNet. Furthermore, We employed strategies for approximate computation to design hardware-friendly architectures for Softmax and GELU computations. We also designed an efficient Matrix Multiplication Unit to handle all linear computations in Swin Transformer. As a conclude, compared with CPU (AMD Ryzen 5700X), our accelerator achieved 1.76x, 1.66x, and 1.25x speedup and achieved 20.45x, 18.60x, and 14.63x energy efficiency (FPS/power consumption) improvement on Swin-T, Swin-S, and Swin-B models, respectively. Compared to GPU (Nvidia RTX 2080 Ti), we achieved 5.05x, 4.42x, and 3.00x energy efficiency improvement respectively. As far as we know, the accelerator we proposed is the fastest FPGA-based accelerator for Swin Transformer.

研究の動機と目的

  • FPGA上でスイントランスフォーマーを高速化する課題に対処する。これは、ソフトマックスやGELUといった複雑な非線形演算がリソースを多く消費し、遅延が大きいという点に起因する。
  • FPGAハードウェアにおいて非効率なレイヤー正規化(LN)の問題を克服するため、バッチ正規化(BN)に置き換えることで、線形層との統合を可能にし、推論効率を向上させる。
  • シフト、加算、乗算演算のみを用いて、非線形関数(ソフトマックスとGELU)のハードウェアに適した近似を設計し、FPGAリソース使用量と遅延を削減する。
  • スイントランスフォーマー内のすべての線形計算を効率的に行える統一された行列乗算ユニット(MMU)を設計し、その行列演算の構造的特徴を活用する。
  • エッジデバイスでの高速・低消費電力推論を実現するため、FPGAデプロイメントに最適化されたアクセラレータスタック全体を最適化する。

提案手法

  • スイントランスフォーマーのスイント(T)、スイント(S)、スイント(B)モデルにおいて、レイヤー正規化(LN)をバッチ正規化(BN)に置き換えることで、線形層との統合を可能にし、計算オーバーヘッドを低減し、ハードウェアマッピングを効率化する。
  • パッチエンベッディングの畳み込みを行列乗算に変換することで、線形計算の処理を統一し、ハードウェア利用効率を向上させる。
  • 2のべき乗の指数関数とシフトアド演算を用いて、ソフトマックスとGELUの近似ハードウェアアーキテクチャを設計し、複雑な除算や超越関数への依存を最小限に抑える。
  • スイントランスフォーマー内のすべての行列乗算を効率的に処理できる1つのマトリクス乗算ユニット(MMU)を実装し、使用される特定の行列形状とデータ型に最適化する。
  • リソース消費を削減しながら高い精度を維持するため、固定小数点演算(Fix16)を採用し、ImageNet上でのモデル精度損失は0.5%未満に抑える。
  • エネルギー効率を評価するために、HWiNFO64(CPU)、MSI Afterburner(GPU)、Vivado Power Report(FPGA)を用いて、電力と性能の測定を実施する。

実験結果

リサーチクエスチョン

  • RQ1スイントランスフォーマーにおいてレイヤー正規化(LN)をバッチ正規化(BN)に置き換えることで、FPGA上で効率的なハードウェア統合が可能になり、リソース使用量が増加せず、精度損失も最小限に抑えられるか?
  • RQ2ソフトマックスやGELUといった非線形演算を、シフト、加算、乗算演算のみでどのように近似できるか?これにより、FPGAリソース消費量と遅延がどれほど削減できるか?
  • RQ3スイントランスフォーマー内のすべての線形演算を効率的に処理できる統一された行列乗算ユニット(MMU)の最適設計は何か?面積を最小限に抑えつつ、高いスループットを達成できるか?
  • RQ4提案されたFPGAアクセラレータは、スイントランスフォーマー推論においてCPUおよびGPUベースラインと比較して、速度とエネルギー効率で優れているか?
  • RQ5提案されたアクセラレータは、スループット、電力効率、リソース使用率の観点から、既存のFPGAベースのスイントランスフォーマーアクセラレータを上回る性能を発揮できるか?

主な発見

  • 修正されたスイント(T)、スイント(S)、スイント(B)モデルは、それぞれImageNet上でトップ1精度80.7%、82.7%、82.8%を達成し、元のモデルと比較してわずかな精度低下にとどまった。
  • FPGAアクセラレータは、AMD Ryzen 5700X CPUに対して、スイント(T)で1.76倍、スイント(S)で1.66倍、スイント(B)で1.25倍の高速化を達成した。
  • 3つのモデルすべてについて、CPU比で20.45倍、18.60倍、14.63倍の高いエネルギー効率(FPS/watt)を達成した。
  • Nvidia RTX 2080 Ti GPUと比較すると、それぞれ5.05倍、4.42倍、3.00倍の高いエネルギー効率を達成した。
  • スイント(T)、スイント(S)、スイント(B)の各モデルで、それぞれ10.69W、10.69W、11.11Wの消費電力を示し、GPUの240Wに比べて顕著に低い。
  • 提案されたアクセラレータは、スループットとエネルギー効率の両面で既存のFPGAアクセラレータを上回り、スイント(T)で431.2 GOPSを達成し、1727個のDSPを用いており、これまでに報告された中で最も高速なFPGAベースのスイントランスフォーマーアクセラレータである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。