제3의 최종병기 FPGA
[김국현의 만평줌] 제62화
아이폰7 안에서 흥미로운 칩이 발견되었다. 바로 FPGA(Field Programmable Gate Array)라는 것인데, 말 그대로 ‘현장에서 프로그래밍할 수 있는 집적회로 반도체’를 말한다. 신기술은 아니고 첫 제품이 나온 지 이미 30년도 넘어서 지금은 다양한 민생 가전에 들어 있지만, 아이폰에는 처음이다.
CPU와 GPU가 익숙하다면, FPGA도 이 시점에서 함께 알아두면 좋을 키워드다.
원래 전자제품에서는 특정 목적을 달성하기 위한 기능을 반도체로 찍어 낸 ASIC(특정 용도용 집적 회로, 주문형 반도체)이 주된 일을 처리한다. 예를 들어 보자면 TV나 각종 셋탑에서 비디오 영상의 압축을 풀어 주는 전용 칩이 대표적이다. 하지만 제품이 팔려 나간 뒤에 압축 방식의 새로운 버전이 개발되었다고 하자. FPGA를 탑재했다면 소프트웨어로 칩의 핵심 로직을 재구성할 수 있으므로, 고객 손에 제품이 넘어간 뒤에도 프로그램으로 기능을 바꿀 수 있다.
FPGA도 그 자체로 하드웨어 칩이니만큼 무엇보다도 속도가 빠르다. 영상물 디코딩이 하드웨어로 될 때와 소프트웨어로 될 때의 체감 성능을 떠올리면 그 격차를 알 수 있다.
아무래도 소프트웨어는 CPU 위에 운영체제, 그 위에 다시 가상머신, 그 위에 다시 코드가 도는 옥상옥인 경우가 많다. 하지만 FPGA는 새로 프로그래밍되면 그 자체를 전용 칩처럼 쓸 수 있으므로 성능상 압도적 차이를 낸다.
따라서 무어의 법칙이 말을 안 듣고 CPU 발전 속도가 예전 같지 않은 지금 한창 각광받고 있다. 최근 인공지능 및 클라우드 등 계산 성능의 수요는 기하급수적으로 늘어나고 있다. 그 처리 부하를 CPU로는 어찌 안되니까 GPU가 받아주는 유행이 생겼지만 그래도 역부족이었다. 게다가 소비 전력과 열도 문제였다.
이 수요와 고충을 FPGA로 아예 하드웨어적으로 처리하자는 발상은 이미 구체화를 넘어 상용화되고 있다. 마이크로소프트는 2010년부터 프로젝트 카타펄트라는 이름 아래 검색엔진과 클라우드 서비스에 쓰이는 서버에 이를 적용했고 2016년 현재 대다수의 클라우드 서버에 적용 중이다. 인텔은 서버용 CPU인 Xeon에 아예 FPGA까지 내장시킨 모델을 출시했을 정도다.
하지만 FPGA가 정답은 아니다. 아무래도 양산으로 찍어내는 전용 칩, ASIC에 비해 복잡해지고 단가나 효율 면에서 경쟁력이 떨어진다.
구글은 인공지능 라이브러리 텐서플로우용 전용 ASIC을 TPU라는 이름으로 만들어 이미 쓰고 있다. 범용 CPU·GPU·FPGA로 충분히 돌려 보고 아예 기계학습 전용 ASIC를 만들어 버린 것. 전용 반도체를 만들어 버릴 준비성과 배짱과 자금력이 있다니 GPU와 FPGA로 인공지능을 어찌 좀 해보려는 이들의 기를 꺾는 뉴스이긴 했다. (알파고도 이 TPU로 돌리고 있었다.)
그건 그렇고, 아이폰7의 FPGA가 어떤 기능을 할 예정인지, 혹은 이미 하고 있는지는 밝혀지고 있지 않다. 생각해 보면 2014년 당시 갤럭시 S5에도 잠시나마 FPGA가 들어 있었다가 다음 모델에서 사라진 적이 있다. 역시 그 정체는 수수께끼였다.
그 가능성만큼이나 궁금해지는 이 칩, 이제 모바일에도 들락날락하고 있다.