[논문 리뷰] An Efficient FPGA-Based Accelerator for Swin Transformer
이 논문은 Swin Transformer용 효율적인 FPGA 기반 가속기를 제안하며, 레이어 정규화를 배치 정규화로 대체하여 하드웨어 융합을 가능하게 하고, 소프트맥스와 GELU에 대해 근사화된 하드웨어 友好的 유닛을 설계하며, 모든 선형 연산을 위한 통합 행렬 곱셈 유닛을 활용한다. 이 가속기는 CPU 대비 최대 1.76배의 속도 향상과 20.45배 높은 에너지 효율성을 달성하여 기존 FPGA 가속기보다 성능과 효율성 면에서 뛰어나다.
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.
연구 동기 및 목표
- Swin Transformer를 FPGA에서 가속화하는 데 있어 복잡한 비선형 연산(예: 소프트맥스와 GELU)이 자원을 많이 소비하고 지연이 길다는 도전 과제를 해결하기 위해.
- FPGA 하드웨어에서 비효율적인 레이어 정규화(LN)의 문제를 해결하기 위해 LN을 배치 정규화(BN)로 대체하여 선형 레이어와 융합할 수 있도록 하여 추론 효율성을 향상시키기 위해.
- 비선형 함수(소프트맥스와 GELU)에 대해 이동, 덧셈, 곱셈 연산만을 사용하는 하드웨어 친화적인 근사화를 설계하여 FPGA 자원 사용량과 지연 시간을 줄이기 위해.
- Swin Transformer의 행렬 연산 구조적 특성을 활용하여 모든 선형 계산을 효율적으로 처리할 수 있는 통합 행렬 곱셈 유닛(MMU)을 개발하기 위해.
- 전체 가속기 스택을 FPGA 배포에 최적화하여 엣지 장치에서 고속·저전력 추론을 달성하기 위해.
제안 방법
- Swin-T, Swin-S, Swin-B 모델에 레이어 정규화(LN)를 배치 정규화(BN)로 대체하여 선형 레이어와 융합할 수 있도록 하여 계산 오버헤드를 감소시키고 하드웨어 매핑을 효율적으로 구현하였다.
- 패치 임베딩의 컨볼루션을 행렬 곱셈으로 변환하여 선형 연산 처리를 통일하고 하드웨어 활용도를 향상시켰다.
- 기반-2 지수함수와 이동-덧셈 연산을 사용하여 소프트맥스와 GELU에 대해 근사화된 하드웨어 아키텍처를 설계하여 복잡한 나눗셈과 초월함수 의존도를 최소화하였다.
- Swin Transformer 내 모든 행렬 곱셈을 지원하는 단일이고 효율적인 행렬 곱셈 유닛(MMU)을 구현하였으며, 사용되는 특정 행렬 형상과 데이터 유형에 최적화하였다.
- 자원 소비를 줄이기 위해 고정소수점 산술(Fix16)을 사용하였고, ImageNet에서 모델 정확도 손실이 0.5% 미만으로 유지되었다.
- 에너지 효율성 평가를 위해 HWiNFO64(CPU), MSI Afterburner(GPU), Vivado Power Report(FPGA)를 사용하여 전력 및 성능 측정을 수행하였다.
실험 결과
연구 질문
- RQ1Swin Transformer에서 레이어 정규화를 배치 정규화로 대체함으로써 하드웨어 융합이 가능해지고 FPGA 자원 사용량이 감소하면서도 정확도 손실이 크지 않은가?
- RQ2소프트맥스와 GELU와 같은 비선형 연산을 이동, 덧셈, 곱셈 연산만으로 근사화하여 FPGA 자원 소비와 지연 시간을 어떻게 줄일 수 있는가?
- RQ3모든 선형 연산을 효율적으로 처리할 수 있는 통합 행렬 곱셈 유닛(MMU)의 최적 설계는 무엇이며, 면적은 최소화하고 스루풋은 최대화할 수 있는가?
- RQ4제안된 FPGA 가속기는 Swin Transformer 추론에서 CPU 및 GPU 기준 대비 성능과 에너지 효율성 면에서 어떻게 비교되는가?
- RQ5기존 FPGA 기반 Swin Transformer 가속기 대비 통과량, 전력 효율성, 자원 활용도 면에서 더 뛰어난 성능을 달성할 수 있는가?
주요 결과
- 수정된 Swin-T, Swin-S, Swin-B 모델은 각각 ImageNet에서 Top-1 정확도 80.7%, 82.7%, 82.8%를 기록하였으며, 원본 모델 대비 미미한 하락만을 보였다.
- FPGA 가속기는 AMD Ryzen 5700X CPU 대비 Swin-T, Swin-S, Swin-B에서 각각 1.76배, 1.66배, 1.25배의 속도 향상을 달성하였다.
- 세 모델에 대해 CPU 대비 각각 20.45배, 18.60배, 14.63배 높은 에너지 효율성(FPS/watt)을 기록하였다.
- Nvidia RTX 2080 Ti GPU와 비교해 각각 5.05배, 4.42배, 3.00배 높은 에너지 효율성을 확보하였다.
- Swin-T, Swin-S, Swin-B에 대해 각각 10.69W, 10.69W, 11.11W의 전력을 소비하였으며, GPU의 240W에 비해 크게 낮았다.
- 제안된 가속기는 통과량과 에너지 효율성 면에서 기존 FPGA 가속기들을 능가하였으며, Swin-T에서 431.2 GOPS를 달성하고 DSP 1727개를 사용하여 현재까지 보고된 바 있는 가장 빠른 FPGA 기반 Swin Transformer 가속기였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.