모델/시스템 최적화: 가속기 종류 – FPGA
ㅁ 가속기 종류
1. FPGA
ㅇ 정의:
– FPGA(Field Programmable Gate Array)는 사용자가 하드웨어 회로 구성을 직접 프로그래밍하여 특정 연산을 가속할 수 있는 반도체 장치임.
– 제조 후에도 하드웨어 로직을 재구성할 수 있어 다양한 알고리즘에 맞게 최적화 가능.
ㅇ 특징:
– 병렬 처리에 강하며, 특정 연산을 하드웨어 수준에서 최적화 가능.
– CPU, GPU 대비 전력 효율이 높으나, 설계 및 개발 난이도가 높음.
– 하드웨어 기술 지식과 HDL(VHDL/Verilog) 또는 HLS(High-Level Synthesis) 언어 사용 필요.
ㅇ 적합한 경우:
– 대량의 반복적이고 병렬적인 연산이 필요한 경우(예: 신호 처리, 암호화, 네트워크 패킷 처리).
– 전력 소모를 최소화하면서 지연 시간을 줄여야 하는 경우.
ㅇ 시험 함정:
– FPGA는 GPU처럼 범용 병렬 프로세서가 아니라는 점 혼동.
– 재프로그래밍 가능하다고 해서 소프트웨어 개발과 동일한 난이도라고 착각.
– ASIC처럼 완전히 고정된 회로가 아니라는 점 주의.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: FPGA는 하드웨어 로직을 재구성할 수 있어 다양한 응용에 맞게 최적화 가능하다.
– O: FPGA는 병렬 연산에 강점이 있어 실시간 신호 처리에 적합하다.
– X: FPGA는 제조 시 회로가 고정되어 변경할 수 없다.
– X: FPGA는 GPU와 동일하게 범용 병렬 연산에 특화된 소프트웨어 프로세서이다.
ㅁ 추가 학습 내용
FPGA 시험 대비 핵심 정리
1. FPGA와 ASIC 비교
– FPGA: 재구성이 가능하여 유연성이 높음, 개발 기간이 짧음, 초기 비용이 낮음. 하지만 동작 속도와 전력 효율이 ASIC보다 낮음.
– ASIC: 특정 목적에 최적화되어 속도와 전력 효율이 높음, 대량 생산 시 단가가 낮음. 그러나 초기 개발 비용이 높고 설계 변경이 어려움.
2. FPGA와 GPU 차이
– FPGA: 하드웨어 수준 병렬 처리, 특정 연산에 최적화 가능, 낮은 지연(latency) 제공.
– GPU: 대규모 데이터 병렬 처리에 강점, 범용성 높음, 높은 처리량(throughput) 제공.
3. HLS(High-Level Synthesis) 도구 사용 여부
– HLS: C/C++/OpenCL 등 고수준 언어로 FPGA 설계 가능, 개발 생산성 향상.
– 전통 방식: HDL(VHDL, Verilog) 사용, 하드웨어 제어 세밀도 높음.
4. 레이턴시와 전력 효율성 장단점
– FPGA: 낮은 레이턴시, 전력 효율성 우수.
– GPU: 높은 처리량, 하지만 레이턴시와 전력 효율 측면에서 불리할 수 있음.
5. FPGA 내부 구조 및 동작 원리
– Logic Block: 논리 연산 수행.
– LUT(Look-Up Table): 논리 함수를 저장해 빠른 연산 수행.
– Routing: Logic Block 간 신호 연결 경로 제공.
– I/O Block: 외부 장치와의 입출력 인터페이스 담당.
6. FPGA 개발 과정
설계 → 합성 → 배치 및 배선 → 비트스트림 생성 → 프로그래밍
7. 클라우드 기반 FPGA 가속 서비스
– 예: AWS F1, Azure NP
– 장점: 초기 투자 비용 절감, 확장성, 유지보수 용이.
– 단점: 네트워크 지연 발생 가능, 지속 사용 시 비용 증가, 보안 이슈 가능.