DA3월 10일과 11일 양일에 걸쳐, 엔비디아의 수석 과학자(Chief Scientist)인 데이비드 커크 박사가 방한해 국내 과학도들에게 엔비디아가 미래 핵심 사업으로 선택한 GPU 컴퓨팅을 널리 알렸다. 직접 강연에 나선 데이비드 커크 박사는 20여년간 그래픽 컴퓨팅 분야에 종사해온 세계적인 과학자로 1997년에 엔비디아에 합류한 이래, RIVA 128, RIVA TNT를 비롯한 모든 지포스 및 쿼드로 시리즈의 개발을 진두 지휘했다.
엔비디아는 최근 CPU가 처리하는 것처럼 일반적인 프로세싱에 GPU를 활용하는 방법을 개발해 보급하고 있다. GPGPU를 비롯해 CUDA와 전문 장비인 테슬라에 이르기까지, 엔비디아는 GPU 컴퓨팅에 아낌없는 투자를 거듭하고 있다. 특히 GPU 컴퓨팅에 최적화된 하드웨어인 테슬라의 발표는 엔비디아가 이 분야에 얼마나 신경을 쓰고 있는지를 보여주는 사건이다.
엔비디아의 그래픽 기술을 발전을 현장에서 이끈 최고급 임원이기도 한 데이비드 커크 박사의 이번 방한은,국내 유수의 컴퓨팅 전문가들과 함께 이와 같은 새로운 컴퓨팅 패러다임을 소개하기 위해서다. 데이비드 커크 박사는 "2010년에는 세계에서 가장 빠른 수퍼컴퓨터 5대 중 3대는 GPU 칩을 이용하게 될 것이라고 자신합니다"라고 미디어에 주장했을 만큼, 이 부분에 대한 기대와 자부심이 남다른 인물이다.
11일 연세대학교 백주년기념관에서 열린 행사에서도 데이비드 커크 박사의 그러한 자부심을 느끼기에 손색이 없었다. 이제는 전사적 역량을 집중하는 사업이 된 GPU 컴퓨팅인 관계로 이 분야를 선도하는 커크 박사와 엔비디아 스탭들이 한데 나와 사업 의지를 강조했다. 엔비디아코리아 이용덕 지사장 역시, 환영사에서 엔비디아 코리아를 비롯해 6000여명의 전 직원들이 발 벗고 나서고 있음을 재차 강조했다.
커크 박사의 강연에 앞서, 엔비디아 월터문트 블룸 부사장의 엔비디아 소개가 먼저 진행되었다. 그는 엔비디아가 우리 삶과 밀접한 기술을 공급하는 업계 선두 기업이라고 언급하고, 끊임없는 연구개발과 혁신을 추구하는 엔비디아 특유의 기업 문화가 우리가 현재 만나고 있는 최첨단 제품들을 만들어냈다고 소개했다.
프레젠테이션의 서두는 엔비디아의 사업분야에 대한 정보였다. 얼마전까지만 해도 GPU, MCP, PESG, CE 등 네 가지였으나, 최근 모바일 애플리케이션 프로세서인 APX2500을 발표하면서 GoForce 이래 한 동안 수면 밑에 가라 앉아 있던 핸드헬드 GPU 비즈니스가 새롭게 생겼다. 오늘 발표될 GPU 컴퓨팅은 GPU 사업으로 보이나, 엄밀히 이야기하자면 HPC(High Performance Computing)으로 따로 봐야 한다.
엔비디아의 주력 사업은 누가 뭐래도 GPU다. 10여년 전에 3D 게임 가속기로 업계에 발을 들인 이래, 수 없이 많던 쟁쟁한 경쟁자들을 물리치고 업계 정점에 올라서게 한 동력원은 그래픽카드용 칩이다. 그래픽카드 시장은 업계 성장에 따라 여러 갈래로 분화되어 왔는데, 엔비디아는 시장의 요구에 따라 자사 GPU 사업을 운영해 스탠드 얼론 타입 그래픽카드 시장에 가장 풍부한 포트폴리오를 자랑한다.
특히 연인원 15000여명이 투입되는 쿼드로 GPU의 보급은 눈여겨 볼 부분이 많다. 칩을 설계하는 인원, 애플리케이션을 다듬는 인원, 테스트 인원, 판촉 인원 등 다방면에서 광범위한 협력을 이룬 끝에 엔비디아는 GPU 업계의 선두가 된 것이다. 엔비디아의 업계 리더쉽을 공고히 해주는 것으로 정평이 난 쿼드로는 '엔드(생산자) 투 엔드(소비자)' 형태로 그래픽카드 시장을 재편했다.
엔비디아 주장에 따르면, 쿼드로의 보급율을 80% 이하 수준이라고 한다. 경쟁 모델이 AMD, SGI 정도에서나 나오는 형편을 고려한다고 해도 무시무시한 점유율이다. 이런 스코어가 나온 이유는 무엇보다 엔비디아의 설립자들 모두가 엔지니어였다는 점이 큰 역할을 했다. 모두 개발자 정신을 가진 탓에 개발자 지원에 그 누구보다 눈을 먼저 떴다.
엔비디아 코리아 설립 때 가장 열성을 보인 것이 CG 라이브러리 보급이었다. 지포스 그래픽카드 사용자 입장에서는 뜬금없이 들렸던 그 때 그 이야기가 지금의 엔비디아를 만들었다고 해도 과언이 아니다. 그 당시, ATI도 SGI도 3D LABS도 생각하지 못했던 아마추어, 학생 개발자들에게 대한 지원을 통해 뿌린 씨앗이 지금의 쿼드로를 만들었다.
쿼드로 그래픽카드 시리즈는 NVS290부터 FX5600까지 다양한 영역에서 독자적인 기능들을 앞세우고 시장에서 판매되고 있다. 최근들어 오토캐드 등 주류 애플리케이션들이 쿼드로와 같은 워크스테이션 클래스 그래픽카드의 사용을 권장하고 나섬에 따라, 다방면에 라인업을 전개해 둔 엔비디아 입장에서는 신바람이 나는 요즘이다.
이런 분위기를 이어가기 위해 현재 시중에서 유통되는 데스크탑, 노트북, 모바일, 파워데스크, 블레이드, 랙 샤시 등 다양한 플랫폼에 칩을 공급해 엔비디아 GPU가 들어간 물건이 급증하는 추세다. 특히 랙 타입에 그래픽카드만 4장 넣은 쿼드로 플렉스 모델 S4 그래픽스 서버까지 모습을 드러내, GPU를 기반으로 한 프로세싱 풀 환경 구축이 급속도로 진행되고 있다.
쿼드로가 쓰이는 영역이 전문적인 3D 설계 정도가 다인줄 알면 오산이다. 워싱턴대학 재학생들이 시그라프 06에서 발표한 드래프트 트랙 애플리케이션을 보면, 실시간 영상에 공기흐름 등 유체데이터를 바탕으로 한 실루엣을 실시간으로 덧붙이는 것을 볼 수 있다. 과거에는 고도의 편집작업이 필요했던 일이, 이제는 당연하게도 '실시간'으로 다 되는 시대가 온 것이다.
월터문트 블룸 부사장은 대항해시대와 산업혁명시기 등 인류 문명과 관련된 이야기를 하면서 어떠한 계기를 시작으로 발전이 급속도로 이루어지는 현상을 지적했다. 범선과 증기선, 증기선과 비행기가 서로 교차되면서 혁명적인 변화를 이끌었다는 부연설명을 곁들이기도 했다. 이런 이야기는 과거와 현재의 극단적인 비교를 위한 미끼였다.
기존에 CPU만 활용한 연산 성능으로는 '시간'이 아니라 '일'이 기준인 프로젝트들이 많았다. 아직도 연산 걸어놓고 제주도 여행갔다와도 될 그런 일들이 우리 주변에 존재한다. 엔비디아는 이런 시간 낭비를 자사의 솔루션으로 해결할 수 있다고 주장하고 있다. 특히 엔비디아는 자사가 현재 보급하고 있는 GPU 컴퓨팅을 도입하면 장거리 여행 갈 시간이 차 마실 시간으로 줄어든다고 주장했다.
GPU 컴퓨팅의 매력적인 요소는 과거에는 불가능했던 부드러운 비주얼 연산을 가능하게 한다는 점이다. 현재 특화된 모델인 테슬라는 물론 양판되고 있는 쿼드로, 지포스 등에서 모두 가능한 GPU 컴퓨팅은 하나의 워크스테이션에서 실시간으로 레이 트레이싱으로 실시간 랜더링 체크를 한다던지, CPU에만 맡기면 하세월인 유체역학을 실시간으로 볼 수 있다던지 하는 장점이 있다.
꼭 과학이 아니더라도, GPU 컴퓨팅이 빛나는 분야는 많이 있다. 월터문트 블룸 부사장의 세션에서 매우 흥미로운 것을 볼 수 있었다. 다른 게 아니라 여성들이 관심 있을 옷 맵시를 3D로 확인해보는 것과, 자동차 휠을 가상으로 꾸며보는 데모가 바로 그 것. 걷거나 뛰거나 했을 때 옷이 팔락이는 것, 바퀴 고무만 들고도 오만가지 휠의 자태를 미리 볼 수 있는 것. 이 모든 것이 현재 엔비디아 GPU로 가능한 일이다.
GPU 컴퓨팅에 대한 개괄적인 내용이 끝나고, 데이비드 커크 박사가 연단에 올랐다. 그의 연세대학교 강연은 엔비디아 코리아가 설립되었을 때 방한해 강연한 이래 두 번째다. 처음 연단에 올랐을 때에는 엔비디아가 그 당시 개발자들에게 막 보급을 시작한 C 언어 기반 그래픽 라이브러리인 'NVIDIA CG'에 대한 강연을 해 지포스 경품을 보고 온 수 많은 엔비디아 매니아들을 놀라게 만들었다.
컨슈머 영역에서 게임만 빠르게 잘 돌아가면 좋았던 일반 소비자들이 보기에는 너무나 어려웠던 내용이 화면에 펼쳐졌던 것이다. 여담으로 이미 이 때부터 현재의 테슬라와 CUDA가 개발되고 있었다고 한다. NVIDIA CG는 일종의 시간 벌이었고, 2006년에 소개된 GPGPU는 CUDA를 만들다가 실험삼아 지포스 그래픽카드에 CUDA를 실험한 것이 발단이 되어서 나온 것이다. 캐보면 '우연'같은 일들이 너무 많다.
처음에 CUDA가 소개되었을 때에는 그 영역이 산술이나 통계, 생명공학 등 지금보다 적었다. 그러나 2년이 지난 지금에 와서 본 내용들을 보면 분야가 파생되어 늘어났음을 알 수 있다. 천체물리나 고차원화된 모델링 등 전에는 없던 것들이 몇 눈에 띈다. 이는 커크 박사가 강연중에 언급했던대로, '만들어지는 기술'인 탓이 크다. 계속 새로운 가능성이 발견되고 있어, 앞으로도 이런 아이콘들은 더 늘어날 것이다.
커크 박사는 GPU의 발전 속도를 언급하면서 'Faster'가 'Just Faster'가 아니라고 못 박았다. 그는 2~3배 빨라지는데 쓰는 표현으로는 현재 GPU의 발전상을 설명할 수 없다고 했다. 5~10배 빠른 수준인 'Significant'도 엔비디아가 이룬 업적을 설명하는데 모자르다고 했다. 통상적인 애플리케이션이 버전 업데이트로 보여주는 성능 향상에나 맞는 표현이라고.
GPU 컴퓨팅이 보여주는 혁신을 표현할 단어로 선택된 것은 'Fundamentally Different'다. 커크 박사는 100배 이상 빨라져 이전에 나온 것들과는 아예 차원을 달리할 때 쓰는 표현이야말로 자사의 GPU 컴퓨팅에 적합한 표현이라고 언급했다. 특히 현재 주류 GPU인 'G80'은 이전 세대 GPU와는 달리 GPU 컴퓨팅을 위해 설계된 것이어서 지포스나 쿼드로 같은 브랜드에 연연하지 않고 동급이면 같은 성능을 낸다.
위에서 볼 수 있는 슬라이드는 CPU와 GPU의 분담 체계에 대한 것이다. 엔비디아의 상징색인 녹색이 GPU, 칩자이언트 인텔의 상징색인 파란색이 CPU다. 커크박사는 GPU 컴퓨팅이라고 해서, CPU 없이 스탠드 얼론으로 돌아가는 것이 아님을 우선 정의했다. CUDA와 같은 GPU 컴퓨팅은 CPU 코어 하나에 GPU 코어 하나가 연동되는 형태다.
주요 연산을 GPU를 통해 처리하긴 하나, 관제 부문은 CPU가 역할분담을 한 형태다. 칩 자체가 할 일이 너무 많은데다 수 많은 I/O와 엮여있는 CPU의 단점을 해결하기 위해 온보드 메모리를 L2 캐시 메모리 처럼 쓰는 그래픽카드가 보조 연산장치로 덧 붙은 것이다. 단, GPU의 성능이 월등하므로, 제대로 프로그래밍만 할 수 있다면 형 보다 나은 아우 노릇을 톡톡히 해낸다.
앞서 살짝 언급했듯, G80 계열 이후에 나온 GPU들은 모두 GPU 컴퓨팅을 쓸 수 있다. 내부적으로 설계 레벨부터 GPU 컴퓨팅을 염두에 둔 장치를 여럿 해 둬, 8800 시리즈 이후에 나온 GPU 들은 지포스든 쿼드로든 테슬라든 이론적으로 같은 성능을 낼 수 있다. 다만, 플랫폼 별로 특화된 부분이 있어 기술지원 부분을 생각한다면 분야에 맞춰 쓰는 것이 권장된다.
왜 브랜드를 맞춰 쓰는가가 중요하냐면, 기술지원의 여부가 실제 결과에 상당히 영향을 미치기 때문이다. 미국에서는 GPU 컴퓨팅으로 재미를 톡톡히 본 사례가 여럿 되는데, 여기에서 보면 3개의 GPU로 705기가플롭스를 낸다는 등의 설명을 볼 수 있다. 그런데 이 수치는 엄연히 업적을 이룬 연구원들의 노고가 깃든 것이다.
현장에서 테슬라를 만져본 사람들의 말을 들어보면, 기본 제공되는 SDK로 대충 돌려보면 2기가플롭스가 나온다고 한다. 이 수치도 CPU와 비교해 보자면 무척 높은 것이지만, 엔비디아가 자랑하는 이론적인 최대치에는 10%에도 못 미친다. 나머지 차이는 프로그래머가 '하기 나름'인데, 그만큼 난이도가 높은 작업이다. 프로그래머 자신의 실력이 숫자로 들어나는 확연히 드러난다.
포기하거나 도망가지 않고 정면에서 맞서 싸웠다면 환상적인 성과물이 기다리는 것이 CUDA요, GPU 컴퓨팅이다. 커크 박사는 CPU 기반으로 하자면 하는데, 인프라 구축에 돈이 너무 많이 나갈 신경세포 시뮬레이션이나 엄청나게 많은 변수를 다루는 뉴욕 옵션거래장 프로그램 등은 상대적으로 저렴하게 무제한 클라스터링이 되는 엔비디아 솔루션으로 해결책을 찾을 수 있다고 사례를 들어 설명했다.
GPU 컴퓨팅의 핵심인 CUDA는 기본적으로 G80 이상의 GPU를 기반으로 한다. 우리가 '스트림 프로세서'라고 알고 있는 연산 유니트가 쓰레드를 블록 단위로 묶은 명령어들을 처리하는 형태로 가동된다. G80에는 총 128개의 스트림 프로세서가 들어 있는데, GPU 컴퓨팅에서 쓴다면 총 12288개의 쓰레드를 생성시킬 수 있다.
참고로 GPU 컴퓨팅에서 말하는 쓰레드는 CPU에서 말하는 쓰레드와 개념이 사뭇 다르다. CPU에서는 수 많은 사이클의 묶음이 하나의 쓰레드인데, 이와 달리 GPU 컴퓨팅에서는 하나의 사이클이 하나의 쓰레드가 된다. 커크 박사 표현에 따르면 매우 가볍고 다루기 쉬운 구조로 쓰레드가 구성된다고.
G80 GPU를 기반으로 GPU 컴퓨팅을 꾸민다면, 호스트는 CPU가 맡고 디바이스는 GPU가 해당되는 구조다. 커널은 디바이스에서 동작하는 펑션으로 구조 자체는 CPU 보다 단순하다. 대신 주의할 점이 있는데, 이런 쓰레드가 개별적으로 서로 간섭하지 못하고 한데 묶여 블록 단위로 연산된다는 점이다. 프로그래밍이 매우 어려워지고, 변수가 많아지는 것을 방지하기 위한 조치라고 한다.
커크 박사는 CUDA Zone(http://nvidia.com/cuda)에서 윈도우/리눅스/맥OS 용으로 제작된 툴 키트와 SDK를 다운로드 받고 라이브러리와 플러그인 등을 활용해 직접 GPU 컴퓨팅에 도전해 볼 것을 권유했다. 또 자신이 2007년에 두 학기 동안 직접 일리노이 주립대학에서 강연했던 내용을 슬라이드와 MP3 형태로 올려둔 홈페이지(http://courses.ece.uiuc.edu/ece498/al)을 알려주기도 했다.
시도할 수 있는 것과 배울 수 있는 것을 알려주고 한 일은 당연하게도 숙제를 내주는 일이었다. 커크 박사는 다음 미션들을 제시했다.
1. We're going to dive right into progrmming CUDA.
2. In exercise 1 you will learn to use cudamalloc and cudamemcpy
3. In this exercise you will write and execute a simple CUDA kernel
4. Given an input array, reverse it
5. In this part, you will reverse a small array(the size of a single thread block)
6. Given a large input array, reverse it
7. This requires launching many thread blocks
커크 박사가 미션을 제시한 것은 단순히 개발자의 여흥을 위한 것이라기 보다는 '취업 정보'와 관련이 있다. 커크 박사가 미션을 내면서 CUDA 에 능숙한 인재를 인턴채용하려고 한다는 말을 했다. 대학교에서 대학생을 대상으로 한 행사여서 여느 때보다 의미가 남 다른 폭탄선언을 한 셈. 엔비디아가 엔지니어 친화적이라는 것은 전세계적으로 소문난 사실. 개발자의 꿈을 키우는 대학생이라면 눈여겨 보자.
|