미국 월스트리트저널(WSJ)의 3월 27일자 보도에 따르면, 인텔(Intel)알테라(Altera)의 인수를 추진 중이라고 합니다. 알테라는 자일링스(Xilinx)와 더불어 양대 FPGA 제조사 중 하나입니다.

FPGA(Field-Programmable Gate Array)는 다른 일반적인 반도체 칩과 달리 프로그래머가 직접 회로 구조를 바꿀 수 있는 것이 특징입니다. 우리가 사용하는 컴퓨터(정확히는 “폰 노이만 컴퓨터”)에 들어가 있는 범용 프로세서들(CPU, GPU 등)은 하드웨어 구조는 고정되어 있고 소프트웨어를 바꾸어 가며 필요한 계산을 수행합니다. 반면 FPGA를 사용하면 특정 계산 작업을 위한 전용 회로를 만들어 사용할 수 있습니다. 따라서 다른 범용 프로세서들과 비교해 매우 적은 소비 전력으로 뛰어난 성능을 얻을 수 있습니다.

Altera Stratix IV FPGA

알테라의 Stratix IV FPGA (출처: http://en.wikipedia.org/wiki/Field-programmable_gate_array)

FPGA는 등장한 지 벌써 30년 정도가 지났으며 예전부터 신호 처리 등 일부 분야에서는 널리 사용되어 왔습니다. 하지만 최근 들어 고성능 컴퓨팅(HPC), 빅 데이터 분석, 클라우드 컴퓨팅 등 다양한 분야에서 FPGA에 대한 관심이 부쩍 높아지기 시작했습니다. 그 이유로 크게 두 가지를 꼽을 수 있습니다.

첫째로, 데이터 센터의 전력 소모가 급증하면서 컴퓨터 시스템의 에너지 효율을 높이는 것이 중요한 문제로 떠올랐습니다. 시스템의 전력 소모가 많아지면 데이터 센터에 전기 시설이나 냉각 시설을 구축하기 위한 비용도 늘어나고, 시스템 운영 과정에서의 전기요금도 늘어나게 됩니다. 즉, 에너지 효율은 데이터 센터의 설비 및 운영 비용과 직결됩니다. 사회 전체적으로도 컴퓨터 시스템의 에너지 효율을 높이는 것은 지속 가능한 발전을 이루기 위한 중요한 과제입니다. 이러한 추세에 따라 에너지 효율이 높은 FPGA를 사용하여 많은 양의 계산을 처리하는 사례가 늘어나고 있습니다.

둘째로, 예전에는 FPGA의 회로 구조를 표현하기 위해 Verilog나 VHDL 등의 하드웨어 기술 언어(hardware description language)를 사용해야 했습니다. 이들 언어는 일반적인 소프트웨어 개발자들이 배우기에 매우 어려웠습니다. C 언어 등의 고수준 언어를 사용해 순차 프로그램을 작성하면 여기에 맞게 FPGA의 회로 구조를 바꿔 주는 high-level synthesis 기술도 있습니다. 하지만 하드웨어 기술 언어로 바로 회로 구조를 표현하는 것에 비해 성능이 떨어졌기 때문에 널리 사용되지는 않았습니다.

그런데 최근 OpenCL을 대상으로 하는 high-level synthesis 기술, 즉 OpenCL로 프로그램을 작성하면 여기에 맞게 FPGA의 회로 구조를 바꿔 주는 기술이 등장하면서 상황이 달라지기 시작했습니다. OpenCL 프로그램은 어떤 계산 작업들이 서로 독립적으로 실행될 수 있는지에 대한 정보를 담고 있습니다. 따라서 FPGA에서 효율적인 회로를 구성하고 고성능을 얻는 것이 상대적으로 쉽습니다. 게다가 OpenCL은 거의 대부분의 하드웨어 벤더가 지원하고 있는 국제 표준 프로그래밍 모델이며 이종 컴퓨팅에 널리 사용되고 있으므로, 기존의 소프트웨어(예를 들어 GPU를 대상으로 작성된 소프트웨어)를 FPGA 대상으로 이식하기도 용이합니다. 알테라는 자사 FPGA를 위한 OpenCL 솔루션을 이미 출시하였습니다. 자일링스도 OpenCL 솔루션을 조만간 출시할 예정입니다.

인텔은 이번 알테라 인수 보도가 나오기 전부터 꾸준히 FPGA에 관심을 보여 왔으며 알테라와 협력을 해 왔습니다. 2010년에는 저전력 아톰(Atom) 프로세서와 알테라 FPGA가 함께 들어 있는 Atom E600C 프로세서를 출시한 적이 있습니다. 최근에는 서버용 제온(Xeon) 프로세서와 알테라 FPGA를 함께 집적한 칩을 출시하겠다는 소식도 들려 왔습니다. 운영비용 대비 성능(TCO)을 높이기를 희망하는 데이터 센터가 주 대상이라고 합니다. GPU는 오늘날 우리가 사용하는 거의 모든 컴퓨터에 장착되어 그래픽 처리 뿐만 아니라 범용 연산에도 활발히 이용되고 있습니다. 이처럼 미래에는 모든 컴퓨터에 FPGA가 장착되는 날이 올까요?