FPGA
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 가속 관련 연구 논문