연세대학교에서 연구하는 몬테카를로 시뮬레이션은 금융 분야를 '대변'하는 방식은 아니나 '대표'하는 방식이다. 그만큼 통계에 입각한 자료 축적에 곧잘 쓰이는 방식이고, 실제로 금융산업에서 다양한 상품 개발과 예측에 활용되고 있는 검증된 방식이다. 그런데 바로 이 몬테카를로 시뮬레이션이 엔비디아(NVIDIA)가 개발한 CUDA의 가장 우수한 활용사례라는 점은 시사하는 바가 크다.
특히 요즘과 같이 금융시장에서 '풋맨'과 '콜맨'이 한꺼번에 토벌당하는 와중에, CUDA에 기반을 둔 금융 시뮬레이션이 빼어난 성능을 자랑하는 걸 보면 머리 속이 복잡할 곳이나 사람이 많을 것으로 보인다. 지수지표가 롤러코스터를 타는 판국에 빠른 연산으로 결과 값을 도출해낸다는 것은 그만큼 프로그램을 다루는데 남보다 한 걸음 앞선다는 이점을 부여한다.

▲ 'CUDA'를 아는 자가 '옵션'을 지배하는 시대가 온다...!
연세대학교 금융퀀트연구센터에서는 엔비디아 테슬라 장비의 최신 버전인 C10 시리즈가 나오면 이를 병렬로 연결해 더욱 더 강력한 컴퓨팅 파워를 얻을 수 있다고 예상하고 있다. 현재 연세대학교에서 운용하고 있는 슈퍼컴퓨터가 테슬라 C870을 3개 묶어 쓰는 규모인데, 차세대 모델을 비슷한 규모로 투입하면 지금보다 두 배 가까이 성능이 향상될 것으로 보고 있다.
지금까지 투자를 좀 한다는 사람들은 그저 모니터 많이 달리는 시스템이나 사 쓰는 수준이었다. 그러나 앞으로는 집에다 손으로 만든 슈퍼컴퓨터를 두고 시뮬레이션을 하며 시황을 예측하려 들 것으로 보인다. 아직은 대학교에서 학술적인 목적으로 CUDA 관련 연구가 진행되고 있으나, 현재의 연구가 보다 진전된다면 투자 좀 한다는 사람이라면 집에다 테슬라로 슈퍼컴퓨터 한둘은 꾸며둘 것 같다.
CUDA, '금융 분야'에서 빛나다

▲ CUDA는 과학 분야에서 유용하게 쓰이고 있다. 특히 금융 분야는 149배까지 성능이 향상된다.
CUDA를 지원하는 GPU는 지포스 8, 9, GT200 시리즈 등이다. 지난 6월에 발표된 GT200 GPU 시리즈를 빼고도 전세계적으로 7천만개 이상의 CUDA 지원 GPU가 시장에 보급된 상황이다. 또 6만명 이상의 개발자가 관련 애플리케이션 개발에 매진하고 있다. 이런 수량 보급을 기반으로 엔비디아는 GPU가 CPU와 융합되어 궁극의 성능을 추구하는 '헤테로지니어스 컴퓨팅'의 선도자가 되고자 하고 있다.
'C for GPU'라는 정의로 CUDA의 정체성은 설명된다. 세가 '버추어 파이터 1' 가속으로 데뷔했던 NV1 GPU 시절부터 추진되었던 유서깊은 프로젝트인 'CUDA'는 중간에 지포스 7 시리즈에서 GPGPU를 파생시킨 기술 개념이다. 본래부터 C 언어 표준 기반으로 만들어져 개발자들이 습득하기 좋은 쪽으로 고안되었으며, SDK를 오픈소스로 공개해 학계와 산업계에서 활발히 연구 중이다.
GPU가 CPU와 융합하면서 구현되는 헤테로지니어스 컴퓨팅은 특정 분야에서 괄목할 만한 성능향상을 이끌어낸다. G80 GPU 시절 수치만 보더라도, 'CPU ONLY' 대비로 금융 시뮬레이션 분야에서는 최대 149배까지 성능 향상이 일어난다. 이러한 괄목할 만한 성능덕분에 미국과 유럽의 수많은 기업과 기관, 대학들이 개발에 참여할 의사를 표명하고 활동에 나서고 있다.


▲ 연세대학교에서는 '핸드 메이드' 슈퍼컴퓨터로 연구를 진행하고 있다.
예전에는 연세대학교 금융퀀트연구센터에서는 KISTI에 있는 슈퍼컴퓨터 '타키온'을 이용해 연구를 진행했었다. 연구자 입장에서 슈퍼컴퓨터를 쓴다는 것이 좋기는 좋은 일이었지만, 마음대로 쓰기위해 직접 구축한다는 것은 꿈과 같은 일이었다. 슈퍼컴퓨터는 도입 비용이 몇십억 몇백억원 수준인 물건이라서 개인이나 학교가 시도할 만한 일이라고는 할 수 없다.
문제는 슈퍼컴퓨터가 수가 적다보니, 연구를 위해서는 하염없이 기다리는 것에 익숙해져야 한다는 점이었다. '일각이 여삼추' 같은 금융 연구를 손 놓고 기다려야 한다는 것은 효율이 너무나 안 좋았다. 잡(Job)을 슈퍼컴퓨터에 입력하고 기다려야 하는 것도 문제였고, 오퍼레이션이 열개든 스무개든 10분이면 할 일을 두 시간 넘게 기다려서 처리할 때도 많았다.
이런 상황에서 유현곤 연구원은 엔비디아의 CUDA 기술을 돌파구로 파악하고 도입을 진행했다. 하드웨어 자체가 갓 나온 상태였기 때문에 프로모션도 있고 해서 도입 비용도 저렴했고, 기술이 발표된지 얼마되지 않은 시점에 미리 CUDA 도입에 나선 덕분에 엔비디아에서 벤치마크 장비를 빌려 먼저 다뤄보며 효율성을 미리 점검해보기도 했다. 그 결과, 연세대학교에는 '슈퍼컴퓨터'가 떡하니 있게 되었다.

▲ 연세대학교 금융퀀트연구센터 유현곤 연구원(박사과정)
해외 토픽을 통해 종종 기사가 나오는 것에서 알 수 있듯, CUDA를 이용한 시스템 개발과 기술 발전이 산업계에서는 큰 화제다. 이미 벨기에에서는 엔비디아 테슬라 카드를 이용한 '가정용 슈퍼컴퓨터'라는 화두를 전세계에 던져 학계와 업계가 비슷한 컨셉의 시스템을 구축하는데 큰 영향을 끼치기도 했다. '슈퍼컴퓨터'가 꼭 데이터센터에만 있어야 할 것이 아니라는 점, 그 자체만으로 '혁명'이 따로 없다.
이런 움직임은 비단 유럽에서만 일어나는 것이 아니다. 엔비디아가 본사를 둔 북미권은 물론 한국에서도 테슬라 카드로 슈퍼컴퓨터를 만들어 쓰는 일이 점차 많아지고 있다. 한국에서 CUDA를 이용해 연구를 수행하는 곳으로 대표적인 곳은 연세대학교 금융퀀트연구센터다. 이 곳에서는 테슬라 카드 3개를 묶어 만든 시스템으로 몬테카를로 시뮬레이션 등 금융 옵션상품 연구를 수행하고 있다.
연세대학교 금융퀀트연구센터에서 CUDA 연구를 앞장서 추진하고 있는 유현곤 연구원(박사과정)은 "전공인 수학과 내에서 금융 연구를 해야 되다보니, 계산량이 많다는 문제가 있었다. 금융 파생상품을 계산할 때, 또 복잡한 상품을 계산할 때에 시뮬레이션을 하면 CPU 기반 시스템에서는 속도의 한계가 큰 문제였다. 이런 부분을 걱정하며 여러 대안을 따져보다 CUDA를 선택했다"고 말했다.
'손맛의 시대' 아직은 핸드 메이드가 '대세'

▲ 장비 교체가 있으면 항상 설정을 바꿔 '커널 모듈 빌드'를 다시해야 한다.
CUDA는 그래픽카드에서 출발한 하드웨어, 즉 GPU를 기반으로 구동되는 기술이다. 때문에 CPU만 추가 장착하면 끝나는 기존 시스템과 달리 특성이 많은 편이다. 그동안 CPU에서 처리하던 작업을 카드로 넘기는 것이다보니, 하드웨어를 설정할 때 세심하게 설정해야 한다. 또 그래픽카드 출력을 똑같은 엔비디아 제품을 써야 한다거나, 외부 그래픽 출력용 카드를 따로 달아야 한다는 점도 있다.
아직은 시스템 사양을 자동으로 인식해 완전히 자동화되어 처리되는 설정 마법사가 있는 것은 아니어서, 수동으로 모든 것을 다뤄야 한다는 점이 CUDA의 진입장벽이다. 엔드유저 입장에서 가장 좋은 것이라면 아무래도 팔리는 상품을 그대로 사다 바로 쓰는 것인데, 아직 CUDA는 그 정도 수준까지 상품성이 가다듬어진 상황은 아니다. '손 맛'은 확실히 있는데, 연구자 입장에서는 반가울 일은 아니다.
CUDA의 버전이 업데이트되면서 차츰 설정 과정이 나아지고 있다고는 하나, 아직은 모듈 비즈니스까지 시장이 커진 것은 아닌 탓에 연구자가 직접 시간을 쪼개 시스템을 튜닝하고 최적화시켜야 하는 상황이다. 다행이라면, 엔비디아가 만든 CUDA 커뮤니티가 많이 활성화되었다는 점이다. 북미, 유럽에서 많은 연구와 사례 보고가 올라오고 있어, 영어가 된다면 해결책을 찾기가 과거보다 쉬워졌다.

▲ 열을 식히기 위해 '케이블타이'로 테슬라 카드 사이를 떨어뜨렸다.
테슬라 카드를 써 슈퍼컴퓨터를 만들다 보면, 흔히 아는 '슈퍼컴퓨터'를 직접 사들이는 것에 비해 돈 들어가는 것은 분명 혁명적으로 줄어들지만, 생긴 게 일반 데스크톱 PC와 같다보니 PC 조립하는 걸 기준으로 본다면 비싸게 느껴지는 게 인지상정이다. 외형만 놓고 본다면 하드코어 게이머들이 쓴다는 3way SLI 시스템과 크게 다를 바 없는 것이 테슬라 카드로 만든 슈퍼컴퓨터다.
테슬라 카드를 사 슈퍼컴퓨터 조립에 나선다면, 그 과정이 일반 ATX 폼팩터 규격 데스크톱 PC를 만드는 것과 다를 바 없다. CPU, RAM 등을 사다 메인보드에 꼽고, PCI Express 슬롯에 테슬라 카드 꼽아주면 끝이다. 단, 이 때 메인보드와 파워서플라이를 고급 부품으로 사야 된다. 아무래도 소비전력이 높은 카드들이다보니, 이를 감당하자면 품질이 좋은 걸 사 써야 된다.
유현곤 연구원은 PCI Express 슬롯을 4개 지원하는 엔비디아 엔포스 6 또는 7 시리즈 기반 AMD 플랫폼 메인보드를 추천했다. 최근 인텔 플랫폼으로 6개의 PCI Express 슬롯이 달린 메인보드도 나왔지만, 아직 국내에 출시된 것은 아니라서 AMD 플랫폼 중에서 슬롯 많은 걸 골라서 쓰면 된다. CUDA는 따로 SLI 커넥터를 꼽아 쓰지는 않아도 되기 때문에, 슬롯만 있으면 확장할 수 있다.
시스템 조립이나 운용 자체는 어려운 일이 아니나, 외형을 꾸미는 것은 나름 고민꺼리다. 해외에서는 테슬라 시스템에 쓸 만한 빅타워 케이스가 많이 유통되고 있으나, 한국에서는 슬림형이 대세라 제대로 된 케이스를 살 수 없는 형편이다. 게다가 만약 PCI Express 익스텐션에 손을 대 슬롯을 인위적으로 확장하고자 한다면 직접 금형을 짜서 케이스를 만들어야 된다.
현재 연세대학교에서는 과거 KISTI 슈퍼컴퓨터에 돈 내고 쓰던 시절보다 훨씬 강력한 성능의 슈퍼컴퓨터를 만들어 놓고도 마땅한 케이스가 없어 벤치마크 테스트 베드마냥 안이 다 보이는 누드 시스템으로 슈퍼컴퓨터를 가동하고 있다. 유현곤 연구원은 "일단은 지금처럼 누드 시스템으로 일단 잘 쓰다가 나중에 테슬라 C10 시리즈로 넘어갈 생각"이라고 말했다.


▲ 원격조정을 통해 본 CUDA 샘플 실행 모습
하드웨어를 장착하고 CUDA 연산을 하기까지의 과정은 완제품이 아닌 '조립'다운 난해함이 숨겨져 있다. 익숙해지거나 이와 같은 시스템 튜닝을 즐기는 사람이라면 '손 맛'을 볼 수 있겠지만, 바로바로 업무에 들어가 데이터를 산출하고자 하는 입장이라면 불만이 생길 만한 부분이다. 그런데 이런 부분에 대해 해법이 차츰 생기고 있다.
국내에서는 클루닉스에서 모듈 형태로 테슬라 시스템을 만들어 보급에 나서고 있다. 또 CUDA 기반 HPC 시스템을 대학교나 연구기관, 공공사업 등에 제안하는 업체들이 속속 생겨나고 있다. 이는 CUDA 기술을 접하고 연구하고 있는 기업들이 자체적인 역량을 확보하면서 점차 상품성에 역량을 모으기 때문으로 풀이된다. 왜냐하면 이런 움직임은 A/S, 즉 사후지원이 담보되지 않으면 못하는 것이기 때문이다.
CUDA는 하드웨어 설치와 트러블 슈팅이 어렵다. 이는 달리 이야기해 이 부분이 해결되면 보급에 걸림돌이 없다는 이야기다. 일단 CUDA 시스템이 설치된 이후에는 원격 조종으로 각종 오퍼레이션이 가능하다. 슈퍼컴퓨터 임대해 쓸 때 처럼 온라인으로 오퍼레이션이 가능한데, 다른 점이 있다면 테슬라로 만든 슈퍼컴퓨터는 '소유'한 것이라 기다릴 것 없이 쓰고 싶을 때 쓴다는 점이다.

▲ 유현곤 연구원은 FDM, FEM도 CUDA로 연구할 계획이다.
'소유의 기쁨'. CUDA로 만드는 슈퍼컴퓨터가 주는 이점은 간단하게 정의된다. 공용으로 쓰는 슈퍼컴퓨터 자원은 당장 임대해 쓸 때만 본다면 저렴하게 보인다. 학생은 기업에 비해 10분의 1 비용만 내면되기 때문에 경제적으로 연구에 큰 장애가 생기는 일은 딱히 없다. 문제는 슈퍼컴퓨터가 공공자산이다보니, 줄 서서 기다리다가 허비하는 시간이 만만찮다는 점이다.
다른 분야도 그렇다고는 하지만, 금융은 '시간이 돈'인 대표적인 산업이다. 허송세월해도 될 분야가 아니다. 때문에 당장 필요할 때 프로세스를 걸고, 바로 결과 값을 보는 것이 중요하다. 그런데 이는 '셋방살이'로는 이룰 수 없는 일이다. 연세대학교 금융퀀트연구센터가 부딪힌 문제가 바로 이 점이다. 연구할 것은 태산 같은데, 잡(Job) 넣어 놓고 멍하니 모니터만 보는 것처럼 한심할 일이 없었다.
엔비디아가 공개한 CUDA 기술은 이런 고민을 한꺼번에 벗어나게 해주었다. CUDA를 쓰기 위해 테슬라 시스템을 구축하면서 남의 눈치 보며 연구할 필요가 없어졌다. 어지간한 SMP 타입 HPC에서도 두 손 드는 몬테카를로 연산을 내부적으로 심플하게 처리해 버리고 마는 상황이다. 게다가 이렇게 '소유'한 컴퓨팅 자원으로 남는 시간에 다른 연구도 할 수 있게 되었다.
유현곤 연구원은 "FDM(Finite Difference Method, 유한차분법), FEM(Finite Element Method, 유한요소법)을 CUDA로 처리하는 것을 연구해 볼 생각이다. 이를 위해 매트릭스 솔버도 구축할 것이다. 이 영역은 해외에서는 이미 활발한 영역인데, 그동안 컴퓨팅 파워를 구할 길 없어 못하던 것이었다. CUDA를 통해 얻은 컴퓨팅 파워를 바탕으로 앞으로는 이 부분도 연구해 볼 생각"이라고 포부를 밝혔다.
과거, CUDA 도입기에 업계에서는 엔비디아가 HPC(High Performance Computing) 시장에 도전장을 던지는 것을 보고 의아하게 생각하는 사람들이 많았다. 그래픽카드가 3D 게임이나 잘 되면 되는 거 아니냐는 말이 많았다. 그런데 이제와 보면, 그런 인식이 잘못된 것이라고 말할 수 있게 되었다. 이제 GPU는 CUDA를 통해 'Graphics Processor Unit'가 아니라 'General Processor Unit'으로 거듭났다.
도대체 왜? 시장이 CUDA를 주목하는 이유는?

▲ CUDA의 아버지, 엔비디아 CTO 데이비드 커크(David Kirk) 박사
현재 엔비디아 CTO직을 맡고 있는 데이비드 커크(David Kirk) 박사가 지금의 CUDA를 만들었다. 그는 지금도 CUDA를 보급하기 위해 미국 대학을 순회하며 CUDA 전파에 열을 올리고 있다. 그는 엔비디아 자신이 등단하는 모든 행사에서 "GPU를 활용한 애플리케이션이 늘어나는 추세에 따라 물리연산이나 컴퓨터 그래픽 등 산업 분야에서의 활용도가 급증하고 있다"고 강조하고 있다.
데이비드 커크 박사는 "다른 GPU 제조사에서도 채택하고 있는 GPGPU는 물론, 엔비디아 고유의 CUDA 등 GPU 기반 개발언어와 도구가 도입되면서 그래픽이 그동안의 비주얼 표현에서 그치는 것이 아니라 C 언어 기반 애플리케이션 가속 도구로 진화되고 있다"고 주장했다. 그는 "이런 기술적인 진보를 통해 CPU에서 정체되어 있던 컴퓨팅이 새로운 변화의 기회를 잡았다"고 언제나 역설하고 있다.

▲ '몬테카를로' 시뮬레이션을 할 수 있는 장비는 많다. 그러나...
연세대학교에서 한창 연구하는 몬테카를로 시뮬레이션에 동원되는 장비들은 대개 기업 시장에서도 비싸기로 정평이 난 것들을 병렬로 하염없이 엮어 나간 경우다. 일례로 몬테카를로 시뮬레이션에 과거에 주로 쓰였던 KISTI 슈퍼컴퓨터 4호기 타키온(Tachyon)의 경우, 접속 대기부터 시작해서 결과를 기다리기 까지의 시간을 하릴없이 소요하는 것은 물론, 쓰는 시간에 따라 이용요금까지 지불해야 한다.
또한 클라스터링된 HPC 시스템이나 클리어 스피드, 셀 엑셀레이터 등의 장비들은 맨 처음 도입단가가 천문학적인 수준이라 금융 관련 시뮬레이션에 절실한 결과 값의 빠른 도출은 둘째 치고, 당장 도입비용 자체가 장벽이 되곤 했다. 때문에 울며 겨자먹기로 줄 서서 KISTI 슈퍼컴퓨터에 빈 자리 나기만 기다려야 했는데, 이제는 엔비디아가 내놓은 CUDA 덕분에 굳이 돈 내고 기다릴 이유가 없어졌다.
GPU의 능력을 최대한 발현시킬 목적으로 개발된 도구가 바로 'CUDA'다. 이런 유용한 도구가 제대로 능력을 꽃 피우기 위해서는 하드웨어나 애플리케이션 등 활용할 수 있는 여건이 갖춰져야 한다. 엔비디아는 그런 부분에 있어 집요하게 준비를 잘한 케이스다. 주위에서 흔히 볼 수 있는 지포스(GeForce) 그래픽카드가 바로 CUDA 가속장치다.
CUDA로 만들어진 애플리케이션은 지포스 8 시리즈 이상 그래픽카드면 모두 다 쓸 수 있다. CUDA가 지닌 가장 유효한 부분은 무엇보다 '가격'이라 할 수 있다. 런타임 용도로 쓸 수 있는 장비는 PC에 장착된 지포스 그래픽카드면 충분하다. 대신 애플리케이션 등을 제작하거나 연구하는 입장이라면 더욱 더 유연한 개발환경과 엔비디아의 기술지원을 받을 수 있는 테슬라(Tesla) 카드가 적합하다.

▲ 기계도 보통 좋은 기계가 아니면 감당하기 어려운 '몬테카를로'
앞서 여러 차례 언급된 '몬테카를로(Monte Carlo Method)'는 옵션 상품과 관련해서 많이 쓰이는 방법론이다. 개념적으로 정리해보면 '구하려는 숫자의 확률적인 분포도를 실험의 반복을 통해 오차를 줄이는 형태의 시뮬레이션'이다. 이름에서 눈치챌 수 있듯 도박의 도시인 '몬테카를로'의 이름을 딴 단순하면서도 복잡한 형태를 보이는 시뮬레이션 테크닉이다.
파이 값 계산과 같이 많은 수의 실험을 설정된 수만큼 반복해 통계자료를 얻어 그 자료를 바탕으로 역산에 특정한 수치나 확률분포를 구하게 되는데, 오차를 줄이기 위해서는 반복되는 숫자가 매우 중요하다. 입력값의 분포도가 고르게 보일 정도로 통계자료를 누적시켜야 정밀성이 보장되기 때문에 몬테카를로 시뮬레이션은 상당한, 아니 엄청난 컴퓨팅 파워를 요구한다.
앞서 '통계'라는 단어에서 엿볼 수 있듯, 몬테카를로는 금융 분야에서 중요하게 쓰인다. 실제로도 금융 분야에서 '갬블 성격'이 강한 상품을 연구할 때에 반드시 다뤄야 하는 방법론이 몬테카를로 시뮬레이션이다. 문제는 이 방법론이 정당성, 정밀성을 가지기 위해서는 엄청난 반복 연산을 거듭해야 한다는 점이다. 이는 CPU 기반 시스템으로는 감당하기 어렵다. 이제야 CUDA로 돌파구를 연 셈이다.

▲ CUDA를 위한 모듈러 타입 제품인 '테슬라 플렉스(Tesla Plex)'
|
만물박사 스크랩 카테고리의 다른 글

안녕하세요. ITViewpoint 스타터이자 공동 에디터 '서명덕 기자' 입니다. 닉네임은 떡이떡이 입니다.
이 곳은 블로그미디어이며, 개인 공간은 http://itviewpoint.thoth.kr/ 을 메인으로 옮겨 갈 생각입니다.
개인적인 목적이라면 콘텐츠 막펌을 전면 허용 http://itviewpoint.com/blog/54971 합니다. 다만 비상업적인 용도에 한하며, 상업적인 용도라면 별도로 문의하세요. RSS http://itviewpoint.com/blog/rss 는 전문 제공합니다.

떡이떡이
thoth







Recent Comments