FPGA

IT 위키

FPGA(Field-Programmable Gate Array)는 사용자가 제작된 이후에도 하드웨어 회로를 직접 구성할 수 있도록 설계된 프로그래머블 집적회로이다. 범용 CPU나 GPU와 달리, FPGA는 하드웨어 레벨에서 병렬 처리 구조를 원하는 형태로 설계할 수 있어 높은 유연성과 맞춤형 가속 기능을 제공한다.

개요[편집 | 원본 편집]

FPGA는 내부에 구성 가능한 논리 블록(logic block)과 이들을 서로 연결하는 라우팅 구조로 이루어져 있다. 사용자는 HDL(Hardware Description Language) 또는 고수준 합성(HLS)을 통해 FPGA를 특정 회로처럼 동작하도록 “프로그래밍”할 수 있다.

대표적인 FPGA 제조사는 Xilinx(현 AMD), Intel(Altera), Lattice Semiconductor 등이 있으며, Xilinx Alveo 시리즈는 AI 및 데이터센터 용으로 널리 사용된다.

특징[편집 | 원본 편집]

높은 유연성[편집 | 원본 편집]

FPGA의 가장 큰 장점은 설계된 후에도 논리 회로를 변경할 수 있다는 점이다. 이는 다음과 같은 장점을 제공한다:

  • 새로운 알고리즘에 빠르게 대응 가능
  • 특정 응용을 위한 맞춤형 하드웨어 구현
  • ASIC 설계 전에 성능 검증 플랫폼으로 활용 가능

병렬 처리 성능[편집 | 원본 편집]

FPGA는 사용자가 자료 흐름(dataflow)에 맞춰 병렬적인 하드웨어 회로를 직접 구성할 수 있기 때문에, 특정 워크로드에서는 CPU/GPU보다 효율적으로 동작할 수 있다.

짧은 개발 주기[편집 | 원본 편집]

ASIC처럼 제조 과정이 필요하지 않기 때문에, 하드웨어 가속기 개발 및 테스트 시간이 매우 짧다.

장점[편집 | 원본 편집]

  • 하드웨어 레벨 최적화 가능
  • 유연한 알고리즘 변경
  • 프로토타이핑 및 연구용으로 뛰어남

단점[편집 | 원본 편집]

  • 클럭 속도가 ASIC/GPU보다 낮음
  • 전력 효율이 ASIC보다는 떨어짐
  • 복잡한 완전 커스텀 회로는 성능적 제약 존재

구성 요소[편집 | 원본 편집]

Logic Block (LUT + Flip-Flop)[편집 | 원본 편집]

FPGA 회로의 기본 단위로, 사용자가 원하는 논리 연산을 구현할 수 있는 구성 가능한 소자이다.

Routing / Interconnect[편집 | 원본 편집]

Logic block들을 서로 연결하는 구성 가능한 배선 구조.

BRAM (Block RAM)[편집 | 원본 편집]

고속 온칩 메모리로, AI/영상/네트워크 처리 등에 사용된다.

DSP Slice[편집 | 원본 편집]

고속 곱셈·덧셈 연산을 위한 전용 연산 유닛으로, DNN 가속에 필수적이다.

High-Bandwidth I/O[편집 | 원본 편집]

PCIe, Ethernet 등 다양한 고속 인터페이스를 지원한다.

FPGA와 딥러닝 (DNN)[편집 | 원본 편집]

FPGA는 최근 딥러닝 추론 가속기 분야에서 주목받고 있다.

장점[편집 | 원본 편집]

  • 다양한 DNN 구조에 맞는 맞춤형 데이터 경로 구성
  • Low-latency inference에 강점
  • ASIC 제작 전 프로토타입 플랫폼으로 사용 가능
  • Edge AI 및 산업용 로봇 등에서 인기

FPGA 기반 AI 가속기 예시[편집 | 원본 편집]

  • Xilinx Alveo U200/U250/U280 시리즈
  • Intel Arria 10 FPGA
  • AWS F1 인스턴스 (Xilinx Ultrascale+)

FPGA vs ASIC vs GPU[편집 | 원본 편집]

특성 FPGA ASIC GPU
목적 프로그래머블 하드웨어 특정 작업 전용 범용 병렬 연산
유연성 매우 높음 매우 낮음 높음(소프트웨어 기반)
성능 중간 ~ 높음 최고 성능 높음
전력 효율 중간 매우 높음 중간
개발 기간 짧음 매우 길음 필요 없음
비용 낮음 매우 높음 중간
사용 예 연구·프로토타이핑·Edge AI TPU·ANE·전용 가속기 딥러닝 학습·추론

활용 분야[편집 | 원본 편집]

  • 딥 러닝 추론 (CNN, Transformer 일부 구조)
  • 영상 처리 / 신호 처리
  • IoT 및 Edge 컴퓨팅
  • 금융(초저지연 트레이딩)
  • 네트워크 패킷 처리
  • 로봇 및 산업 자동화

프로그래밍 방식[편집 | 원본 편집]

FPGA는 여러 방식으로 프로그래밍할 수 있다:

HDL (Hardware Description Language)[편집 | 원본 편집]

  • Verilog
  • VHDL

하드웨어 회로를 직접 설계하는 가장 전통적인 방식.

High-Level Synthesis (HLS)[편집 | 원본 편집]

  • C/C++ 기반 회로 설계
  • DNN inference 가속용 HLS 라이브러리 제공

프레임워크 기반 도구[편집 | 원본 편집]

  • Xilinx Vitis AI
  • hls4ml
  • FINN (Xilinx DNN compiler)

장점[편집 | 원본 편집]

  • 높은 유연성
  • 빠른 개발 및 수정
  • 하드웨어 최적화 가능
  • ASIC 제작 전 성능 검증 용도로 활용 가능

한계[편집 | 원본 편집]

  • ASIC 대비 낮은 최대 성능
  • GPU보다 일반적으로 낮은 throughput
  • 복잡한 DNN 전체를 구현하기엔 난이도가 높음
  • 최적 회로 설계에 전문성이 필요

함께 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Xilinx Alveo 공식 문서
  • Intel FPGA 기술 자료
  • AWS EC2 F1 문서
  • FPGA 기반 AI 가속 관련 연구 논문