본문 바로가기

에세이

빠른 속도로 데이터를 처리하기 위한 두 종류 FPGA vs GPU

인공지능에 대해서 공부하면서 반도체와 관련된 지식을 보유하는 것은 꽤나 바람직히하다. 

빅데이터라는 대용량의 데이터를 다루기 위해서 뿐만아니라, 실시간으로 데이터를 처리하기 위해서는 CPU 이외에 고성능 처리기가 필요하다. 

 

* FPGA(Field-Programmable gate array)

꽤나 귀엽게 생긴 이 칩은 내부를 들여다 보면 다음과 같은 구조를 띄고 있다. 

 

이미지 출저

 

input과 output은 숫자들을 입력과 출력하는 부분이고 Logic Block은 계산을 하는 블럭이다. 

FPGA에서 특이한 점은 바로 Programmable interconnect 이다. 

CPU와 GPU의 경우, instruction을 수행하는 방식으로 처리가 된다. 따라서 논리회로는 고정되어 있으며, 

계산의 효율성은 instruction의 처리 순서 및 배치에 의해서 결정된다. 

 

FPGA는 interconnect를 직접 프로그래밍하면서 처리하는 알고리즘의 효율성을 높이는 장점이 있다. 

 

그러나 단점도 확실하다. 소프트웨어를 배우는 사람으로서 논리적으로 프로그램을 짜는 게 마냥 쉬운 일만은 아닌데, 회로를 직접 짜야 한다면 그 비용(시간, 노력, 건강)은 상당할 것이다. 

 

최근에는 MS가 데이터센터에서 FPGA를 적용했다고 한다.

처리방식이 고정되어 있다면, 회로를 짤 수 있음으로 얻는 효과가 있음을 반증하는 게 아닐까 싶다.