인공지능(AI)은 어느덧 일반적인 기술이 되어 이미지 인식과 음성인식 이외에도 다양한 영역으로 확산 중입니다. 인공지능 확산에 크게 기여한 요인으로는 딥러닝 알고리즘의 진화와 더불어 GPU의 활용을 들 수 있는데요.
GPU는 슈퍼컴퓨터 대신에 수천 개의 코어를 한 장의 GPU 카드만으로 구동시킬 수 있도록 하여 많게는 매번 수억 번의 연산을 해야 하는 딥러닝 알고리즘의 대중화를 가능하게 했습니다. 그러나 GPU는 전력 소모가 크고 발열이 심해 디바이스에 탑재하기 어려우며 또한 CPU처럼 분산 환경을 구성하여 클라우드를 구현하기도 어렵습니다.
인공지능 하드웨어의 진화
대규모의 인식 서비스를 위해서 수백 대의 GPU 서버를 활용해야 하고, 서버 기반이기 때문에 실시간 성능에 제약이 발생하는 상황에서 이를 극복하기 위한 다양한 하드웨어가 등장하고 있습니다.
Intel 등 반도체 업계에서는 GPU, FPGA, 주문형 반도체(ASIC)를 중심으로 인공지능에 최적화된 하드웨어를 개발하기 위한 움직임이 일어나면서 변화의 시기에 놓여 있습니다.
구글, MS, 애플 등 인공지능에 막대한 투자를 하는 인공지능 기업들 역시 NPU, TPU, FPGA 등으로 차세대 애플리케이션의 성능을 대폭 개선할 기회로 활용하기 위해 하드웨어 설계를 두고 치열한 경쟁을 벌이고 있습니다.
이렇게 GPU 이후 NPU, TPU, FPGA 등 다양한 칩들이 새롭게 등장하고 있는 현재, 이번 글에서는 인공지능 서비스 구현을 위한 데이터 센터 측면에서 에너지 절감과 추가적인 컴퓨팅 파워를 제공하는 FPGA(Field-Programmable Gate Array)에 대해 상세히 알아보겠습니다.
FPGA는 사용자가 용도에 맞춰 프로그램의 설계를 변경할 수 있는 프로그래밍 가능한 반도체입니다. 기존 칩들은 한번 생산되면 수정할 수 없지만, FPGA는 하드웨어를 다시 설계하지 않고 프로그래밍으로 변경이 가능한 장점이 있습니다.
가트너(Gartner)는 최근 보고서에서 2020년이 되면, 거의 모든 소프트웨어에 인공지능 기술이 채택될 것으로 예상하고 있습니다. 대부분 소프트웨어와 컴퓨터 운영환경에 기본으로 인공지능이 탑재되면 앞으로는 일반적인 인공지능 기능, 이미 많이 증명된 알고리즘만으로는 인공지능 구현의 차별성을 확보하기 어려울 수 있습니다.
이를 위해 스마트 기기 등의 디바이스 내에 특화된 칩을 삽입해 더욱 빠르고 전력 소모가 적은 인공지능 기술을 제공하거나, 클라우드 상에서 제공하는 인공지능 서비스에서 차별적인 성능 우월성을 제공하여 경쟁력을 확보하는 방안도 고려되고 있습니다.
위와 같은 상황에 FPGA는 CPU와 병렬로 작동해 전체 시스템의 혼란이나 병목현상 없이 추가적인 컴퓨팅 파워로 사용할 수 있어 새로운 기술로 주목받고 있습니다. 또한 높은 유연성 때문에 대용량 데이터 처리에 적합하고, 특히 데이터 센터 프로세서에 FPGA를 같이 쓰면 전력 감소 효과까지 기대할 수 있습니다.
한편, 인지와 딥러닝, 인공지능 및 이와 유사한 종류의 애플리케이션 등에서 요구하는 비정형 데이터를 처리하고 활용하기 위해 가속화 컴퓨팅을 도입하는 기업들이 증가하면서 FPGA도 활용도가 높아지고 있습니다.
가속화 컴퓨팅은 프로세스 일부분을 GPU나 FPGA에 할당해 보조 프로세서(CO-Processor)로 활용해, 애플리케이션과 처리량을 가속화하는 기능을 말하는데요. 데이터 처리에 있어 가속화가 요구되는 작업에 있어 CPU의 한계를 극복할 수 있는 기술로 주목받고 있어, 업계에서는 FPGA 등 인공지능에 최적화된 하드웨어를 앞다퉈 도입하고 있습니다.
인공지능 서비스 품질에 있어서 가장 중요한 것은 많은 데이터를 효율적으로 처리할 수 있는 연산 처리 성능이라 할 수 있습니다. 서버에서의 연산은 CPU가 담당하고 있지만, 인공지능에서 요구하는 대규모 연산 처리 성능을 감당하기에는 한계가 있습니다. 최근 데이터 센터에서는 GPU, FPGA, ASIC 형태의 가속기를 서버에 장착해 활용하는 추세입니다.
아래의 표에서 보듯이 FPGA는 GPU의 높은 전력 소모와 발열 문제, ASIC의 추후 수정 불가에 대한 대안이 될 수 있으며, GPU의 가속화와 ASIC의 맞춤화라는 장점을 모두 포함하고 있습니다.
FPGA의 주요 특징 및 단점
재프로그래밍의 예를 들면, 번역 작업에 최적화해 사용하는 칩을 회로 구성을 다시 설정해 가상 비서 서비스에 맞춰 쓸 수 있는 것입니다. 마치 특정 작업 전용 칩처럼 상황에 맞게 프로그래밍하여 최적의 동작 속도, 합리적인 전력 소비를 가능하게 합니다.
FPGA는 인텔이 만드는 범용 프로세서와 특정 장비 전용으로 개발하는 주문형 반도체(ASIC)의 특성을 합쳤다는 평가를 받는데요. 전자는 다양한 소프트웨어를 사용할 수 있지만, 가격이 비싸다는 단점이 있습니다. 후자는 특정 기기 전용으로 만들어지므로 속도와 전력 소비 측면에서 우수하지만, 초기 개발비가 막대하고 일단 기능이 정해지면 이를 수정해 재사용할 수 없는 단점이 있습니다.
FPGA는 ASIC보다 초기 개발 비용이 저렴하고, 원하는 작업을 더 빠르게 처리할 수 있습니다. 회로 디자인을 변경, 적용하는 과정을 몇 시간 안에 끝낼 수도 있어서 짧은 기간에 가장 좋은 성능을 내는 설정을 찾아 적용할 수 있습니다. 이런 칩이 들어간 장비를 개발한다면 출시 시기도 앞당길 수 있습니다. 또한, 시스템이 노후화되고 용도가 바뀌면 하드웨어를 다시 설계하지 않고도 칩 설정을 바꿔 재사용할 수 있습니다.
고 전력을 소비하는 GPU에 비해 FPGA는 프로그래밍으로 가장 효율적인 프로세싱 자원이 처리하도록 해 불필요한 소비 전력을 없애 전력 성능에서 GPU나 CPU의 약 10배입니다. FPGA 기술은 시장 출시 시간에 대한 부담이 증대되고 있는 현시점에서 유연성 및 신속한 프로토타입을 가능하게 합니다.
맞춤형 ASIC의 긴 제조 과정을 거치지 않고도 아이디어나 개념을 테스트하고 하드웨어에서 검증한 다음 계속해서 변경사항을 실행하고 FPGA 디자인을 반복하는 일이 몇 달이 아닌 단 몇 시간 만에 가능합니다.
또한 High Level의 설계 툴과 Low Level의 설계 툴(HDL)을 상호 보완적으로 사용한다면 특화된 기능의 세밀한 설계도 구현하면서 빠른 설계가 가능한데요. 이를 통해서 재사용성이 높고 설계 시간을 단축합니다.
이러한 장점에 비해 FPGA는 프로그래밍하기가 어려워, FPGA 프로그래밍과 애플리케이션 커널 분야의 전문성을 모두 갖추고 있는 고도로 숙련된 개발자가 필요합니다. 프로그래밍의 어려움뿐만 아니라 생태계 지원이 아직은 부족해 작은 면적(Footprint) 대비 고성능을 낼 수 있지만, HPC에 잘 적용되지는 않습니다.
한편 FPGA가 초기 생산 비용이 ASIC 대비 저렴하지만, 대량 생산 시에는 높은 비용이 소요됩니다. ASIC의 경우 한번 만들고 나면 매우 낮은 가격으로 생산할 수 있다는 점을 봤을 때, 추후 적용 시 비용 측면에서 반드시 고려해봐야 하는 사항입니다.
인공지능 하드웨어 동향
인공지능의 발전 속도와 파급 정도에 따라 이종의 프로세서 시장 진출 기회가 많아질 것으로 전망됩니다. 2017년에는 HPC 시장 주도로 2016년 대비 약 3.8%가 성장했고, 2017년 4월 기준 약 $4.5B 규모의 시장을 형성하고 있습니다. 2022년까지는 연평균 7.41% 성장해 약 $7.2B의 규모가 예상됩니다.
하드웨어 제조업체 사이에서는 주도권 선점을 위해 M&A가 활발히 추진되고 있습니다. M&A 사례는 다음과 같습니다.
- Intel: Altera 인수(2015년)
- Microchip Technology: Atmel 인수(2016년)
- Canyon Bridge: Lattice Semiconductor 인수(2017년)
- 현재 Xilinx 만이 Pure-play 기업
앞서 설명한 대로 FPGA 외 인공지능에 최적화된 다양한 칩들도 시장에서 주목받고 있습니다.
- NPU(Neural Processing Unit): Deep Neural Network 수행에만 최적화된 프로세서 칩으로 빅데이터 시대에 엄청난 양의 연산이 필요한 데이터 처리와 분석에 최적화된 chip이다.
- 뉴로모픽 칩: 사람의 뇌 신경을 모방한 차세대 반도체로 딥러닝 등 인공지능 기능에 구현할 수 있다. 기존 반도체와 비교해 성능이 뛰어나면서 전력 소모량이 기존 반도체 대비 1억 분의 1에 불과해 미래 반도체 시장을 좌우할 핵심 기술로 꼽힌다.
제조 업체의 동향은 다음과 같습니다.
● Xilinx(시장 점유율 1위)
Xilinx는 FPGA 전문 반도체 기업으로, 경쟁사 대비 최대 6배 빠른 컴퓨팅 효율을 제공하는 FPGA 제품으로 시장 점유율 1위를 차지하고 있습니다. 현재 중국의 바이두가 2016년에 머신러닝 애플리케이션 가속을 위해 자일링스 FPGA 사용을 선언했고, 아마존도 F1 인스턴스 서비스 출시하면서 자일링스 제품을 활용하겠다고 발표했습니다. 퀄컴과 IBM도 데이터 센터 가속을 위해 자일링스와 전략적으로 협력을 진행 중입니다.
● Intel(시장 점유율 2위)
인텔은 최근 인공지능 특화 기술을 확보하기 위한 전략으로 FPGA를 제조하는 알테라 (Altera)를 167억 달러에 인수했습니다. CPU에 알테라 FPGA 기술 접목하기 시작한 것인데요. 인텔이 알테라를 인수한 데는 여러 가지 의미가 있습니다.
- CPU 외 분야로 시야 확대: CPU 칩에 대한 부담을 덜고, GPU나 타 액셀러레이터로 관심을 확대하고, 아울러 FPGA를 생산함으로써 인텔 생산 공장의 가동률을 증대할 수 있다. FPGA로 인해 향후 IoT 설비의 중추가 될 수 있고, 더 많은 제품을 판매할 기회를 확보할 수 있다.
- 고유의 FPGA 기술 보유를 통한 서버 제공 능력 강화: PC 시장의 성장이 둔화하고, 태블릿과 스마트폰으로 인한 칩 시장에서의 고전을 만회할 수 있다.
인텔은 FPGA를 CPU와 함께 패키지로 묶어 대용량 처리에 적극적으로 활용할 계획입니다. 인텔 데이터 센터와 사물인터넷 부분의 특정 니즈에 맞춰진 파생 제품도 개발하고 있고, 광범위한 시장과 애플리케이션을 겨냥한 고급 FPGA 제품도 현재 개발(Two-track) 중입니다.
제품은 독립형 FPGA, SiP(FPGA와 CPU 결합), 모놀리식 SpC FPGA(ARM과 인텔 아키텍처를 통합한 일체형 모델)를 제공하고 있습니다.
그렇다면 인공지능 기업의 동향은 어떨까요?
● Microsoft
MS는 Azure 클라우드의 강점과 차별화 요소 중 하나로 FPGA를 활용하고 있습니다. FPGA 칩을 서버에 넣어 GPU 가속기처럼 활용함으로써 인공지능 관련 서비스의 성능과 효율성을 높이려는 목적인데요. 현재 인텔 알테라 FPGA 칩을 Azure 데이터 센터의 모든 서버(5대륙, 15개 국가)에 탑재해 사용하고 있습니다.
사례로 데이터 서버에 FPGA를 탑재시킨 ‘Catapult’ 프로젝트가 있습니다. 이 프로젝트에서는 온라인 검색 서비스 ‘빙(Bing)’의 기반이 되는 여러 서버에 FPGA를 사용해 이미지 인식, 자연어 처리, 머신러닝 등 인공지능 관련 서비스를 강화하고 있습니다. FPGA를 사용함으로써, 일반 CPU 이용 시보다 30% 비용을 절감하고, 전력 효율성 또한 10% 향상할 수 있었습니다.
● IBM
IBM은 2013년에 ‘파워(Power)’라 불리는 자사 프로세서 구조를 개방형 소프트웨어 방식으로 개발했고, 이를 통해 특수 칩 제조업체들은 IBM의 파워 CPU와 자사 칩을 쉽게 연동할 수 있게 되었습니다.
IBM은 자일링스와 함께 PCI 익스프레스(PCI Express, 이하 PCIe) 4세대(Gen4) 프로토콜을 이용해 FPGA 가속기와 CPU 간 인터커넥트(Interconnect) 성능을 3세대 대비 2배로 높였습니다.
한편 IBM은 FPGA 이외 2014년 ‘트루노스칩’ 개발을 통해 뉴로모픽 칩 개발에도 가장 앞서가고 있습니다. 뉴로모픽 칩은 인간의 뇌를 모방한 것으로 큰 성과라 볼 수 있지만, 아직 칩을 활용할 수 있는 응용 기술이 없고 전력 소모가 매우 커서 실사례를 만들어내기까지는 기술적인 향상이 필요합니다.
구글은 ‘알파고’에 FPGA 대신 NPU인 고유의 TPU(Tensor Processing Unit)를 사용했습니다. 프로그래밍이 가능한 것을 제외하면 TPU도 FPGA와 유사한 기능을 제공합니다. TPU는 2017년 5월 딥마인드의 알파고와 바둑기사 커제의 바둑 대결에서 성능이 이미 입증됐습니다. 알파고는 TPU 인프라를 활용해 이전보다 더 무서운 위력을 과시할 수 있었습니다.
또한 TPU는 머신러닝이 아닌 초정밀 연산을 할 때마다 소모되는 트랜지스터 수를 줄여 학습에 집중하는 더욱 강력한 머신러닝 구현에 적합합니다.
FPGA 기술 소개
FPGA 칩은 AND, OR 등과 같은 논리게이트로 이루어져 있습니다. 여기서 논리게이트란 디지털 회로의 기본적인 요소 부분으로 대부분 2개의 입력과 하나의 출력으로 되어 있습니다.
FPGA는 안에 수많은 논리 게이트(AND, NOR 등)가 연결되지 않은 채로 들어가 있는데요. 자신이 만들고자 하는 회로를 설계해 프로그래밍하고 해당 FPGA의 툴을 통하면 게이트들의 결선 정보로 변환됩니다. 이러한 과정은 한번이 아니고 반영구적으로 무한히 가능하므로 여러 회로를 얼마든지 만들어 볼 수 있습니다.
아래 그림은 FPGA 프로그래밍 과정으로 원하는 논리 회로를 하드웨어 언어로 코딩하고, FPGA 업체 툴로 합성을 하면 FPGA에 원하는 논리 회로가 구현됨을 볼 수 있습니다.
FPGA에 프로그래밍하기 위해서는 HDL(Hardware Description Language), 즉 논리 회로 프로그래밍 언어를 사용해야 하는데요. HDL에는 VHDL, Verilog HDL 2가지가 존재합니다.
● VHDL
Very high speed integrated circuit Hardware Description Language의 약자로서 상위의 동작 레벨에서부터 하위의 게이트 레벨까지 하드웨어를 기술하고 설계하도록 하는 CAD 업계 및 IEEE 표준 언어이며, 미국 정부가 지원을 공인한 하드웨어 설계 언어입니다.
VHDL의 장점
- 매우 넓은 범위의 Design을 가능하게 해 준다.
- 미국 정부나 IEEE 지지를 받고 있으므로 많은 다른 회사들 간의 호환성이 보장된다.
VHDL의 단점
- 언어 자체가 복잡하다.
- VHDL을 공학자(특히 미국 대학교수)들이 개발함으로 인해 이 언어 자체가 문학성, 학문성 및 진보성을 지니는 까닭에 실제 언어를 이해하고 원활히 사용하는데 많은 시간과 노력이 필요하다. 사실 현재 미국의 경우에 VHDL Training 자체가 매우 큰 시장이다.
● Verilog HDL
IEEE 1364로 표준화된 HDL입니다. C 언어와 유사한 문법 구조로 되어 있어 이해가 쉬우며, 주로 회사에서는 Verilog HDL을 사용하고, 학교나 연구실에서는 VHDL을 사용합니다.
적용 사례
● 통신
국내에서 초고화질(UHD) 방송 활성화와 폭넓은 서비스를 위해 700㎒ 대역 40폭을 포함한 주파수 대역폭을 재분배하는 데 FPGA를 사용했습니다. LG전자 UHD TV 안에 새로운 주파수에 대한 장비 신규 설치 시 FPGA 적용하고 있습니다.
● AR과 VR
아이폰7 시리즈에 미국 기업 래티스 반도체가 만든 ‘ICE5LP4KF(연두색 네모)’라는 FPGA 칩이 탑재됐습니다. 이로 인해 추후 iOS 업데이트를 통해 가상현실이나 증강현실 등의 기능이 추가 가능합니다.
고성능 게이밍 하드웨어, 소프트웨어 및 시스템 선두 업체인 레이저(Razer)와 자일링스가 공동으로 구축한 OSVR, 가상현실 헤드셋에 자일링스 FPGA를 채택했습니다.
● 자동차
ADAS는 연산속도가 매우 중요해 FPGA가 적용되기 적합한 분야입니다. 자동차 업체들은 ADAS를 고도화시켜 점진적으로 차량의 인지, 판단, 제어 기술을 향상하는 방식으로 자율주행차를 진화시키고 있습니다. 이외 서라운드 뷰, 리어뷰, 헤드업 디스플레이 등 자동차의 다양한 분야에 자일링스 FPGA를 사용하고 있습니다.
‘AI Everywhere’라는 표현을 쓸 정도로 인공지능은 확산 중이고, 상상하지 못했던 표정의 감성 인식이나 고장 예측분석 분야에서도 많이 활용되고 있습니다. 이와 더불어 인공지능 핵심인 딥러닝 알고리즘을 구동시키기 위한 전용 프로세서들이 출현하고 있음을 살펴보았습니다.
디바이스뿐만 아니라 클라우드나 기간 시스템에서 인공지능 서비스를 제공하는 관점에서 전용 하드웨어의 활용은 인공지능 서비스의 가격을 낮추고 성능을 높일 수 있습니다.
앞으로 FPGA 시장의 성숙도를 주시하면서 전문 기업과의 협업이 필요한 시점으로 보입니다.
글 l LG CNS 정보기술연구소