현재 GPU는 여러 주요 OEM과 슈퍼마이크로(Supermicro) 등의 오프 브랜드 업체에서 제조하지만, 그 역할은 그래픽 가속이 아니다. 기본적으로 대규모 계산을 위한 코프로세서인 GPU는 3D 시뮬레이션부터 의료 영상, 금융 모델링에 이르기까지 많은 계산이 필요한 작업을 수행하는 데 사용된다.
GPU vs. CPU
GPU 코어는 단일 목적으로 설계되므로 CPU 코어에 비해 훨씬 더 작고, 따라서 최대 32개인 CPU 코어와 달리 수천 개의 코어를 포함한다. 하나의 작업에 최대 5,000개의 코어를 사용할 수 있으므로 대규모 병렬 처리에 잘 맞는다.
그래픽 시장을 전문적으로 다루는 존 페디 리서치(Jon Peddie Research)의 사장 존 페디는 애플리케이션에 병렬 처리가 필요한 모든 영역에서 GPU 컴퓨팅이 부상했다고 말했다.
페디는 “과거 병렬 처리는 x86과 같은 프로세서를 대량으로 사용해서 수행했기 때문에 매우 값비싸고 프로그램하기도 어려웠다. 반면 전용 단일 목적 프로세서인 GPU는 훨씬 더 높은 계산 밀도를 제공하므로 계산을 가속하는 많은 작업에 사용되고 있다”고 말했다.
GPU를 지원하는 애플리케이션
데이터센터에서 GPU가 처음 사용되기 시작한 분야는 자체 제작 애플리케이션이다. 엔비디아가 개발한 언어인 CUDA 덕분이다. CUDA는 C와 비슷한 구문을 사용해 CPU가 아닌 GPU를 호출한다. 호출을 한 번만 하는 것이 아니라 수천 개의 호출을 병렬로 수행할 수 있다.
GPU 성능이 높아지고 게임 이외의 작업에서도 출중하다는 사실이 입증되자 패키지형 애플리케이션에서도 GPU를 지원하기 시작했다. 어도비 프리미어와 같은 데스크톱 앱을 필두로 SQL 데이터베이스와 같은 서버 측 앱도 GPU 지원 대열에 합류했다. SQL은 쿼리 집합의 모든 행에서 동일한 작업(일반적으로 검색)을 수행하므로 이론적으로 GPU는 SQL 쿼리 처리를 가속화하는 데 잘 맞는다. GPU는 단일 코어에 데이터 행을 할당함으로써 이 프로세스를 병렬화할 수 있다.
브라이트라이트(Brytlyt), 스크림 테크놀로지(SQream Technologies), 맵D(MapD), 키네티카(Kinetica), PG-스톰(PG-Storm) 및 블레이스그래프(Blazegraph)는 모두 데이터베이스에서 GPU 가속 분석을 제공한다. 오라클은 엔비디아와 협력 중이라고 밝혔지만 아직 확실한 소식은 없다. 마이크로소프트는 SQL 서버에서 GPU 가속을 지원하지 않는다.
GPU와 HPC
GPU는 병렬 환경에 적합한 시뮬레이션, 금융 모델링 및 3D 렌더링과 같은 작업이 실행되는 HPC에도 진출했다. HPC 시장 조사 업체 인터섹트 360(Intesect 360)에 따르면 가장 많이 사용되는 HPC 애플리케이션 패키지 50개 중 최상위 15개를 포함한 34개가 GPU를 지원한다.
이러한 애플리케이션에는 화학용 GROMACS, 가우시안(Gaussian), VASP, ANSYS, 그리고 유체 역학용 오픈폼(OpenFOAM), 구조 분석을 위한 시뮬리아 아바쿠스(Simulia Abaqus), 가상/환경 모델링용 WRF 등이 포함된다.
인터섹트 360은 보고서에서 “GPU 컴퓨팅이 HPC 시장에서 변곡점에 이르렀으며 향후 애플리케이션 최적화의 지속적인 증대를 이끌 것”이라고 전망했다.
GPU 컴퓨팅의 예
현재 빠른 속도로 성장하는 GPU 시장은 방대한 규모의 병렬 문제를 처리하는 AI와 머신러닝 시장이다. 하드웨어 벤더 슈퍼마이크로의 GPU 서버 그룹 제품 관리를 총괄하는 사로시 이라니는 “많은 기업과 CIO가 딥러닝을 활용한 문제 해결에 나서고 있다. 도입의 수준은 기업마다 다르지만 이제는 모두가 딥러닝의 혜택을 알고 GPU 서버가 필요하다는 점을 인식하고 있다”고 말했다.
AI가 작동하려면 대상에 대한 샘플이 충분해야 한다. AI 시스템은 학습을 통해 예를 들어 암세포 모양을 인식할 수 있지만, 이러한 학습을 위해서는 많은 데이터가 필요하며, 이 데이터를 처리해서 양질의 데이터와 불량 데이터를 가려내야 한다. 상관관계가 발견되면 분석으로 이어지는 알고리즘을 만들 수 있다.
한 예로 이탈리아 에너지 기업 에니(Eni)와 미국의 스톤 리지 테크놀로지(Sone Ridge Technology)는 원래 10일이 걸리는 석유 매장량 모델을 하루 만에 처리했다. 3,200개의 엔비디아 테슬라(Tesla) GPU, 그리고 GPU 기반 석유 매장량 시뮬레이션 소프트웨어인 스톤 리지의 에셜론(ECHELON) 소프트웨어를 사용해서 10만 개 이상의 저장 모델을 약 15시간 30분 만에 처리했다. 기존 하드웨어 및 소프트웨어를 사용할 경우 10일 정도가 소요되는 작업이다. 각 개별 모델은 평균 28분 만에 이 유층에서 15년의 생산을 시뮬레이션했다.
석유 매장량 모델링은 간단한 작업이 아니다. 우선 매장지를 발견하기 위해 지표면에 음파를 반사시켜 석유 매장지를 나타내는 반향을 찾는다. 이후 반사된 파형 데이터를 이미지로 변환하면 지구과학자가 이 이미지를 사용해 매장지에 탄화수소가 포함되는지, 이미지 내에서 탄화수소의 위치가 어디인지를 파악한다. 그 결과에 따라 해당 매장지에서 석유 시추를 할 가치가 있는지 여부가 결정된다. 이러한 모든 작업에는 GPU가 특화된 분야인 방대한 계산이 필요하다
GPU 제조사 : 엔비디아와 AMD
CPU와 마찬가지로 GPU 시장도 두 업체가 양분하고 있다. 엔비디아와 AMD다. 존 페디 리서치에 따르면 소비자용 게임 시장에서는 약 60/40 비율로 엔비디아가 약간 앞서 있지만 경쟁이 꽤 치열한 상황이다.
그러나 데이터센터 시장은 양상이 다르다. 페디 보고서에 따르면 엔비디아의 점유율이 90%, AMD는 10%다. 이는 엔비디아가 지난 20년 동안 데이터센터를 비롯한 게임 외 분야의 GPU 사용을 지원하는 데 꾸준히 공을 들인 결과다.
GPU와 CUDA 프로그래밍
2000년대 초반 몇몇 스탠포드 대학 연구원들이 GPU의 프로그래밍 가능성과 병렬 특성을 깊이 연구하기 시작했다. 엔비디아는 이들을 영입해 개발자가 가속을 위해 GPU를 사용하는 C++ 애플리케이션을 만들 수 있게 해주는 CUDA 프로그래밍 언어를 만들었다.
페디는 “엔비디아가 전 세계 수백 개 대학에서 CUDA 교육 기회를 마련한 것이 주효했다. 따라서 학생은 사전 교육을 거친 CUDA 개발자로 학교를 졸업했고, 이들이 산업계에 CUDA를 정착시킨 기틀 역할을 했다”고 말했다.
CUDA 팀에 소속된 스탠포드 교수 중 한 명인 이안 벅은 현재 엔비디아의 가속 컴퓨팅(Accelerated Computing) 사업부 부사장이다. 벅은 CUDA가 배우고 사용하기 쉽도록 개발된 언어라며 “C 또는 포트란을 아는 사람이라면 하루면 CUDA를 익힐 수 있다. CUDA 개발 초기부터 새로 배워야 하는 완전히 새로운 프로그래밍 언어를 만드는 것은 바람직하지 않다고 판단했다”고 말했다.
따라서, 현재 CPU에서 실행되는 애플리케이션을 비교적 신속하게 병렬화할 수 있다. CUDA에서 크게 바뀌는 점은 정렬 류틴과 같이 함수를 한 번 호출하는 대신 수천 번 호출하고 각 코어가 이를 실행한다는 것이다. 그러나 CUDA는 엔비디아 GPU 전용이다. AMD GPU를 프로그램하려면 오픈CL(OpenCL)이라는 라이브러리를 사용해야 하는데 오픈CL에 대한 지원은 CUDA에 비해 훨씬 빈약하다.
전력 소비량이 많은 GPU
순수 성능 측면에서 보면 GPU는 CPU의 강력한 대안이지만 성능과 직결되는 것이 바로 전력 소비량이다. 엔비디아의 노력에도 불구하고 이 두 가지는 여전히 연결되어 있다. GPU는 300와트 이상의 전기를 소비한다. CPU의 평균 전력 소비량은 85와트다.
이와 같은 이유로 슈퍼마이크로는 GPU를 사용하는 제품을 처음부터 새로 설계해야 한다. 이라니는 “시스템에 300W GPU를 장착하려면 전력 용량이나 열 용량이 충분하지 않을 수 있다. GPU를 8개 장착한다면 말할 필요도 없다. 따라서 GPU에 맞춘 전용 박스가 필요하다”고 말했다.
전력이 제한된 데이터센터에서는 이 점이 문제가 될 수 있다. 강 옆에 축구장 크기의 데이터센터를 지어 수력 발전과 냉각을 사용할 만한 자금을 가진 기업은 많지 않다. 블룸버그의 CTO 사무소 소속 데이터 과학자인 데이티비드 로젠버그는 CPU로 1년이 걸릴 작업을 GPU를 사용하면 주말 동안 계산할 수 있다는 점을 반긴다.
그러나 로젠버그는 캐비닛 전체에 GPU 랙은 1~2개뿐인 경우를 흔히 접한다. 그 정도로도 캐비닛이 제공할 수 있는 모든 전력이 소비되기 때문이다.
로젠버그는 “전력을 지속적으로 주시한다”면서 “데이터센터에서 500개의 GPU를 사용한다면 그 대신 많은 컴퓨터를 사용하지 못하게 된다. GPU는 계산 성능 측면에서 보면 CPU보다 오히려 전력 효율성이 높다. 단지 CPU보다 계산량이 압도적으로 많기 때문에 그만큼 많은 전력을 소비하는 것”이라고 설명했다. editor@itworld.co.kr