본문 바로가기
Paper Review/Architecture

논문 리뷰 - Field-Programmable Gate Array Architecture for Deep Learning: Survey & Future Directions(2024)

by je0nsye0n 2024. 7. 24.

본 논문은 DL 기반의 FPGA 관련 내용을 다룬다. 

FPAG를 공부하고 싶어서 서칭하던 중, 최근의 Survey 논문을 발견하게 되어 읽게 되었다.

 

논문의 순서는 다음과 같다.

I. Introduction
II. FPGA for DL Acceleration (FPGA를 이용한 DL 가속)
III. FPGA Architecture & Opportunities for DL (FPGA 아키텍처 및 DL을 위한 기회)
IV. FPGA Architecture Exploration (FPGA 아키텍처 탐색)
V. Enhancing Existing FPGA Fabric Blocks (기존 FPGA 패브릭 블록 향상)
VI. DL-Specific FPGA Enhancements (DL-특화 FPGA 향상)
VII. Hybrid Architectures (하이브리드 아키텍처)
VIII. Conclusion and Future Directions (결론 및 향후 연구 방향)

[논문 정보]
Field-Programmable Gate Array Architecture for Deep Learning: Survey & Future Directions

: Andrew Boutros, Aman Arora, Vaughn Betz (Submitted on 15 Apr 2024)
https://arxiv.org/abs/2404.10076

 


I. Introduction

  • 문제 해결

컴퓨터가 문제를 해결한다는 것은 알고리즘적 접근 방식을 생각해야 하고, 그 다음 프로그래밍 언어를 사용하여 그 단계를 정확하게 설명해야 한다. 그러나, 인간의 뇌가 쉽게 수행할 수 있는 작업을 알고리즘적으로 설명한다는 것을 쉽지만은 않은 일이다. 아래는 문제 해결에 있어서 머신 러닝과 딥러닝의 차이를 나타낸다.

- Machine Learning : domain expert에 의해서 고차원 입력에서 추출할 수 있는 특징을 수작업으로 제작 후, 이러한 특징을 사용하여 많은 예제와 해당 예측 출력을 사용하여 통계 분류기로 훈련한다.

- Deep Learning : 훈련 데이터의 증가와 계산 능력의 향상으로 인해 1980년대에는 대형 인공 신경망을 훈련하는 것이 가능해졌는데, 이러한 신경망이 깊은 계층의 연속으로 구성되어 있어 딥러닝(DL) 모델이라 부른다.

ML과 DL의 차이

고전적인 ML 방법과의 주요 차이점은 DL 모델이 도메인 전문가가 수작업으로 만든 특징에 의존하지 않고 입력 훈련 데이터에서 직접 특징을 추출하고 분류할 수 있다는 점이다.

 

  • DL 모델을 위한 아키텍처

이처럼 디럽닝이 중요한 워크로드로 부상함에 따라 성능을 높이기 위한 여러 아키텍처가 설계되어 왔다.

① ASIC (Application Specific Integrated Circuit) : DL 모델의 성능 요구를 충족하기 위한 맞춤형 하드웨어라는 장점이 있지만, 모델의 빠른 성장과 다양한 시스템의 통합으로 매번 맞춤형 컴퓨터 칩을 만드는 것은 어려운 일이라 평가한다.

FPGA(Field Programming Gate Arrays) : 재프로그래밍이 가능하고 직접 하드웨어 실행을 결합한 구조이기에 DL 추론을 가속화 하는데 적합하다. 파이프라인과 메모리 계층 구조를 사용자가 직접 정의할 수 있기 때문에 낮은 지연 시간과 높은 에너지 효율성 달성 가능하다.

 

→ 본 논문에서는 FPGA를 DL 응용시 나타나는 강약점 및 아키텍처에 대해서 설명하며, 미래의 연구 방향에 대해 논의한다.

 

II. FPGA for DL Acceleration

  • DL 가속을 위한 요구사항

① Performance : 성능을 결정하는 것은 Throughput(처리량)과 Latency(지연시간)이다
Throughput이란 특정 가속기가 주어진 딥러닝 작업에서 단위 시간당 처리할 수 있는 예제 수를 의미하며, Latency란 가속기가 단일 입력을 처리하는데 걸리는 시간을 의미한다. 단, training 단계에서는 Latency가 고려대상이 아니므로, 주로 Throughput 처리를 최적화하는데 집중한다고 한다.
② Cost and Energy Efficiency : Cost and Energy Efficiency는 Training(훈련)과 Inference(추론) 단계 모두에서 중요하다. 
현재 대부분은 에너지 효율성을 극대화하는 방식으로 설계되고 있다. 에너지 효율을 높인다는 것은 Cost를 절약한다는 것과 동일한 의미를 지닌다.
③ Adaptability : DL 가속기는 높은 성능과 에너지 효율성을 달성하는 것 외에도, 빈번한 알고리즘 변화를 수용할 수 있는 유용성을 가져야 한다.

 

  • DL 가속을 위한 FPGA의 강점

 

① 맞춤형 계산 경로: FPGA는 애플리케이션에 맞춤형 계산 경로와 온칩 메모리 시스템을 구성할 수 있어, 저정밀도 계산이 필요한 DL 추론에 적합하다. CPU와 GPU는 특정 연산 정밀도만 지원하지만, FPGA는 이진, 삼진, 좁은 부동소수점 형식 등의 다양한 정밀도를 구현할 수 있다.
② 공간 컴퓨팅 장치: FPGA는 데이터가 메모리 계층을 통해 이동할 필요 없이 분산된 온칩 버퍼에서 직접 계산 유닛으로 흐르도록 하여 데이터 이동에 소요되는 시간과 에너지를 절약할 수 있다.
③ 유연성: FPGA는 새로운 비트스트림으로 재구성하여 하드웨어 기능을 변경할 수 있어, 빠르게 변화하는 DL 알고리즘과 모델 구조에 신속하게 적응할 수 있다. 반면, ASIC 가속기는 새로운 칩이 설계, 제조, 배포될 때까지 성능 저하가 발생한다.
④ 다양한 프로그래머블 IO 인터페이스: FPGA는 다양한 프로토콜을 유연하게 구현할 수 있는 프로그래머블 IO 인터페이스를 제공하며, 현대 FPGA는 데이터센터 배치를 위한 여러 표준을 구현하여 서버 가속기 카드로서의 효율적인 통신을 가능하게 한다.

  • DL 가속을 위한 FPGA의 강점

FPGA 기반 DL 추론 가속 스타일에는 다음과 같은 방식들이 있다:

  1. 모델 맞춤형 FPGA 가속기: 초기에는 특정 DL 모델이나 유사한 모델 그룹에 맞춤형 FPGA 가속기를 설계하여 CNN과 같은 계산 집약적인 층을 가속화한다. 이러한 접근 방식은 CPU 및 GPU 기반 소프트웨어 솔루션에 비해 성능과 에너지 효율성에서 큰 향상을 가져온다. 그러나 DL 모델이 빠르게 발전하면서 매번 새로운 모델에 맞춤형 FPGA 가속기를 설계하는 것은 비효율적이게 된다.
  2. 하드웨어 생성기: 모델 맞춤형 FPGA 가속기 설계를 자동화하는 하드웨어 생성기가 개발되었다. 이 생성기는 대상 FPGA와 DL 모델의 데이터 흐름 그래프를 입력으로 받아 최적화된 모델별 FPGA 구현을 생성한다. 이러한 도구들은 스트리밍 레이어 파이프라인 아키텍처와 유연한 처리 요소(PE)를 활용한 아키텍처를 생성하여 성능을 극대화한다. 또한, 낮은 수치 정밀도로 양자화하고 희소성을 활용하여 불필요한 계산을 건너뛰는 최적화를 적용한다.
  3. FPGA 오버레이: 소프트웨어 프로그래머블 도메인별 오버레이를 구축하여 FPGA의 유연성을 활용한 접근 방식이다. 오버레이 ISA와 프로세서 아키텍처를 설계하고, 이를 FPGA에 배포하여 다양한 DL 모델을 실행할 수 있다. 사용자는 하드웨어 설계 지식이 필요 없으며, 빠른 소프트웨어 컴파일로 새로운 DL 모델을 실행할 수 있다.

이러한 방식들은 FPGA의 재구성 가능성을 활용하여 특정 모델이나 모델 군에 최적화된 가속기를 구현하고, 빠르게 변화하는 DL 모델에 적응할 수 있도록 돕는다.

 

III. FPGA  ARCHITECTURE & OPPORTUNITIES FOR DL

해당 섹션에서는 FPGA 아키텍처와 DL 계산을 최적화 할 수 있는 opportunities에 대해서 설명한다.

  • Programmable Logic & Routing

 

Programmable Logic Block(LB)는 FPGA에서 가장 중요한 요소이다.

일반적으로 N개의 로직 요소(LE)와 로컬 라우팅으로 구성이 되어 있다. 각 LE는 K-LUT과 바이패스 가능한 플립플롭(FF)로 이루어져있다. 최신 FPGA 아키텍처의 LE는 분할되어 K-1 입력 이하의 두 개 논리 함수로 구현이 가능하다. 많은 LE는 덧셈기 회로를 포함하여 덧셈기를 효율적으로 구현 가능하다. LB와 기타 FPGA 블록을 유연하게 연결 가능하고, SRAM 제어 멀티플렉서를 사용하여 블록 출력과 라우팅 와이어 연결이 가능하다.

이러한 아키텍처를 통해서 custom, low precision MAC 유닛 구현을 할 수 있다.

  • Digital Signal Processing Blocks

디지털 신호 처리(DSP) 블록은 FPGA 기반의 딥러닝(DL) 가속기 구현에서 매우 중요한 역할을 한다. DL 작업이 대부분 곱셈-누산(MAC) 연산에 의해 지배되기 때문이다. DSP 블록은 FPGA 패브릭에 내장된 하드(ASIC 스타일) 블록으로 곱셈기와 덧셈기를 구현하며, 높은 효율성을 유지하면서도 다양한 FPGA 설계에서 활용할 수 있도록 일부 프로그래머빌리티를 제공한다. 이러한 이유로, DSP 블록들은 무선 통신 도메인에서 널리 사용되는 정밀도(예: 27×27 및 18×18 곱셈)를 기본적으로 지원한다. 하지만 DL 추론에 일반적으로 필요한 정밀도보다 높은 경우가 많아 DSP 블록의 기능이 과도하게 설계되었으며, 이는 실리콘 면적의 낭비로 이어질 수 있다.

첫 번째 개선 방법은 DSP 블록 내부의 곱셈기를 더 낮은 정밀도의 곱셈기로 분할할 수 있는 저비용 재구성 회로를 추가하는 것이다. 이를 통해 기존 호환성을 유지하면서도 DL 성능을 향상시킬 수 있다. 두 번째 개선 방법은 무선 통신 도메인을 위해 설계된 DSP 블록을 DL에 맞춘 새로운 블록으로 교체하는 것이다. 따라서 이러한 기능을 더 DL-중심적인 기능으로 대체하면 FPGA의 계산 밀도와 효율성을 높일 수 있다. 이러한 접근 방식을 통해 FPGA가 DL 작업에서 더 높은 성능을 발휘할 수 있으며, 기존 DSP 블록의 한계를 극복할 수 있다.

  • On-Chip Block Memories

FPGA는 블록 RAM(BRAM)이라고 불리는 대규모 온칩 SRAM 메모리 블록을 포함하고 있으며, 최신 FPGA에는 10,000개 이상의 BRAM 블록이 열 형태로 분산되어 있다. Intel FPGA는 20Kb 용량의 BRAM을, AMD FPGA는 36Kb BRAM과 288Kb의 Ultra RAM(URAM)을 포함하고 있다. 이 BRAM은 재구성 가능한 회로를 포함하여, 다양한 폭과 깊이의 버퍼와 포트 수를 구현할 수 있다. 예를 들어, 20Kb BRAM은 구성에 따라 ROM, 단일 포트 RAM, 또는 듀얼 포트 RAM으로 사용할 수 있다. FPGA BRAM은 병렬로 액세스할 수 있어, 높은 대역폭과 낮은 지연 시간으로 데이터 접근이 가능하며, 독립적으로 제어되어 계산 유닛에 직접 연결될 수 있다. 이는 저지연 대규모 병렬 DL 계산에 유용하다.

따라서, 인메모리 컴퓨팅 기술을 활용하여 BRAM에 인메모리 컴퓨팅 기능을 추가한다면, 비교적 적은 비용으로 FPGA에 수천 개의 병렬 계산 유닛을 제공할 수 있다.

  • Interposers

패시브 인터포저는 활성 트랜지스터가 없는 실리콘 다이로, 여러 다이를 조밀하게 연결하여 고밀도의 라우팅 트랙을 제공한다. AMD와 Intel은 이 기술을 사용하여 여러 FPGA 다이와 고대역폭 메모리(HBM) 칩렛을 통합하고 있다. 이러한 통합 기술은 대규모 병렬 MAC 연산을 요구하는 DL 모델에 유리하며, 고효율 ASIC 칩렛을 사용하여 연산을 오프로드할 수 있다. 이는 시스템의 다양한 DL 모델 변경과 IO 요구를 충족시키는 데 필요한 유연성을 제공한다.

  • Networks-on-Chip and Embedded Accelerators

최근에는 새로운 재구성 가능한 가속 장치(RAD)가 등장했다. AMD Versal 아키텍처가 그 예로, FPGA 패브릭과 범용 프로세서 코어, 그리고 소프트웨어로 프로그래밍 가능한 벡터 프로세서 배열을 단일 장치에 결합한 것이다. 이러한 구성 요소들은 패킷 스위칭 네트워크 온 칩(NoC)을 통해 연결되어 효율적인 시스템 수준 통신을 가능하게 한다. NoC는 다양한 소프트 디자인 IP와 하드웨어 애플리케이션 특화 임베디드 가속기를 결합한 시스템의 빠르고 쉬운 통합을 가능하게 한다.

 

IV. FPGA ARCHITECTURE EXPLORATION

  1. 도구와 흐름:
    • FPGA 아키텍처 수정을 평가하기 위해 Verilog-to-Routing(VTR)와 같은 도구를 사용한다. VTR은 Verilog 합성, 논리 최적화, 기술 매핑, 패킹, 배치 및 라우팅, 정적 타이밍 분석을 수행하는 여러 도구를 통합한 오픈 소스 흐름이다.
    • COFFE는 트랜지스터 레벨에서 FPGA 회로 설계를 자동화하고, 구성 요소의 지연 및 면적을 계산하여 VTR 아키텍처 파일에 포함시킨다.
  2. 벤치마크 디자인:
    • FPGA 아키텍처 최적화를 위해 다양한 응용 분야를 포괄하는 벤치마크 디자인이 필요하다.
    • 전통적인 벤치마크로는 MCNC, VTR, Titan 등이 있으며, 이들은 FPGA 아키텍처 및 CAD 연구에 사용된다.
    • DL 도메인에 특화된 벤치마크가 부족하다는 점을 보완하기 위해 Koios 벤치마크가 도입되었다. Koios는 다양한 크기, 구현 스타일, 목표 신경망, 수치 정밀도 및 회로 특성을 포괄하는 40개의 DL 회로를 포함한다.

평가 방법론:

  1. 새로운 하드 블록 도입:
    • 특정 도메인(예: DL)을 대상으로 새로운 유형의 하드 블록(예: 컨볼루션 엔진)을 FPGA 패브릭에 추가하는 것을 평가한다.
    • RTL 구현을 작성하고, COFFE를 사용해 회로 수준 평가를 수행한다.
    • 하드 블록의 면적, 타이밍 및 전력 모델을 생성하고, VTR과 같은 CAD 흐름에 통합하여 아키텍처 수준 평가를 수행한다.
  2. 대표 벤치마크 사용:
    • 제안된 하드 블록을 포함한 FPGA 아키텍처에 대표적인 벤치마크 회로를 매핑하여 자원 활용, 타이밍, 라우팅 가능성을 평가한다.

FPGA 아키텍처 향상 분류:

  1. 기존 FPGA 패브릭 블록 개선 (예: LB, DSP, BRAM)
  2. 새로운 DL 전용 하드 블록 도입 (예: 텐서 블록)
  3. FPGA 패브릭과 같은 다이에 일괄된 DL 가속기 통합 (예: AMD AI 엔진)
  4. FPGA와 다른 DL 칩렛을 동일 패키지에 통합

이러한 방식으로 FPGA 아키텍처는 DL 추론 가속을 위해 지속적으로 발전하고 있다.