본문 바로가기
국내 새소식

제 2회 코코링크 CUDA 튜토리얼

by 테리™ 2008. 8. 19.
반응형

서울대학교 연구공원 본관 컨벤션홀에서는 슈퍼컴퓨팅 분야에 한 획을 긋는 'CUDA'에 대한 궁금증을 풀 수 있는 좋은 자리가 마련되었다. 코코링크가 주최한 이번 'CUDA Tutorial #2: CUDA 환경의 이해와 CUDA 프로그래밍 입문' 시간에서는 엔비디아가 전세계적으로 보급에 나선 수퍼컴퓨팅 환경인 CUDA에 대한 이해와 관심을 촉진시키는 유용한 순서가 진행되었다.

특히 최근 발표된 테슬라 C10 시리즈에서 64비트 부동소수점 연산이 가능해지면서, 이를 활용하는 방법과 향후 비전 등에 대해 첫 번째 시간보다 심화된 내용이 다뤄졌다. 또 클러스터 컴퓨팅 기술과의 비교를 통해, 학술 목적의 애플리케이션 개발에 도움이 되는 팁을 참관한 사람들에게 알려줬다. 행사 이름 그대로의 진행이 이루어진 셈이다.



▲ 행사장에는 쿼드로FX를 장착한 레제로 워크스테이션이 데모장비로 전시되었다.

한국에서 CUDA 보급에 앞장서고 있는 코코링크는 이미 지난 7월 23일에 CUDA에 대한 첫 번째 교육과정을 진행한 바 있다. 코코링크에서 주관하는 행사는 여느 행사 보다 실제 '트레이닝' 성격이 강하다. 이는 현장에서 직접 CUDA를 다룰 수 있는 인재를 양성할 목적이 강하기 때문인데, 이로 인해 행사 명칭이 '세미나'가 아닌 '튜토리얼'로 정해졌다.

첫 번째 튜토리얼 이후에 있었던 엔비디아의 젠슨 황 CEO 서울대 특별강연을 통해 CUDA에 대한 관심이 증가하면서, 두 번째 튜토리얼은 좀 더 넓은 장소에서 많은 사람을 대상으로 진행될 수 있었다. 또 인텔 스컬트레일 플랫폼으로 제작된 레제로 워크스테이션에 쿼드로FX 그래픽카드를 넣은 데모장비를 전시하기도 해, 하드웨어 성능에 관심이 많은 청중들의 이목을 끌었다.

데모장비에서는 CPU와 GPU를 비교하는 벤치마크가 작동되고 있었다. 3GHz 클럭으로 동작하는 시스템에서 GCC 4.2.1 C컴파일러를 기반으로 작성된 C언어 프로그램으로 싱글코어만 사용하여 1,200x1,200 매트릭스 곱셈 연산을 실시하면 17초 가량이 소요된다.

반면, CUDA 2.0의 nvcc 컴파일러를 사용하고 최적화되지 않은 기본 코드 형태로 코딩된 프로그램으로 실시되었는데 GTX 280 카드에서는 연산하는 경우 1초 미만(0.00 sec, 0.9sec로 확인)의 결과가 나왔다.

주목할 부분은 데모프로그램이 최적화가 되지 않은 상태인데도 CPU 연산보다 월등히 빠른 결과를 낳았다는 사실이다. 속도가 빠른 셰어드 메모리를 쓰지 않고 느린 글로벌 메모리(註: 그래픽카드 온보드 메모리)로만 연산하여 성능개선의 여지가 많았는데 셰어드 메모리를 활용하는 방법으로 최적화를 했다면 훨씬 빠른 50~200배의 고성능 연산이 가능하다.

현재 기상해양 시뮬레이션 모델을 CUDA로 변환하는 작업을 하고 있는 기업에서 만든 결과라서 CUDA를 공급하는 엔비디아에서 주장하는 것 보다 훨씬 신빙성이 있게 보였다.


▲ 엔비디아코리아 이주석 이사(우측)

엔비디아코리아의 이주석 이사는 환영사에서 "데이비드 커크 박사의 강연과 연세대 강연 등 세미나를 진행한 바 있다. CUDA는 기존 연구 분야는 물론, 컨슈머 영역까지 영향 미칠 것으로 보고 사명감 갖고 전파 위해 노력하고 있다. 아직 기술적인 부분에 대해 지원 약한 편이었는데, 코코링크에서 자발적으로 CUDA 보급을 추진해 줘 고맙게 생각하고 있다"고 말했다.

이어 "엔비디아코리아 차원에서 CUDA 전파에 집중할 계획이다. 연구성과, 작업 단축 등 메시브한 데이터 처리에 좀 더 도움주기 위해 개발된 CUDA에 대해 장차 조금이라도 더 도움을 주고자 지속적으로 노력할 계획이다. 코코링크에서 계속 튜토리얼을 해주고 있는데, 엔비디아코리아 차원에서 적극 지원해서 개발자들의 문의 등을 바로 해결할 수 있도록 할 계획"이라고 덧붙였다.


▲ 코코링크 이동학 대표이사

CUDA는 엔비디아에서 개발한 GPU 기반의 수퍼컴퓨팅 기술로 지포스 8 시리즈 이상, G80 GPU 이상 쿼드로FX, 테슬라 시리즈 등에서 구현할 수 있다.

코코링크 이동학 대표이사는 CUDA를 쓸 수 있는 여러 솔루션 중에서 최근 발표된 '테슬라 10 시리즈'를 하이라이트로 손꼽았다. 배정도 부동소수점 실수 연산인 64비트 부동소수점 연산이 가능해졌고, 여기에 메모리 용량과 대역폭까지 늘어나 하드웨어 성능이 비약적으로 향상되었다.

코코링크 이동학 대표이사는 "불과 두 달전만 하더라도, CUDA 스터디를 하면서 힘겨웠다. 원인은 싱글 프리시전 플로팅 포인트(단정도 부동소수점 실수 연산, 32bit)만 가능했다는 한계 때문이었다. 그런데 GTX 200 시리즈와 테슬라 10 시리즈가 나오면서 배정도 연산인 64비트 연산이 가능해져 한시름 덜었다. 이번에 새 제품들이 나오면서 제대로 된 슈퍼컴퓨팅이 가능해졌다"고 평가했다.

CUDA는 'General Purpose Programming Model'을 핵심적인 가치로 지니고 있다. 누구나 할 수 있는, 사용이 쉬운 개발언어를 지향하고 있어, 기존 컴퓨팅 언어와는 사뭇 다른 경향이 있다. 이는 벡터 컴퓨팅 머신으로 진화된 고성능의 그래픽 프로세서를 범용의 컴퓨팅 환경의 기반으로 확립하는 CUDA개발의 근본 취지가 제대로 구현되었다고 볼수 있다.

벡터 머신과 구조적으로 유사하고, 차이를 못 느낄 구조이긴 한데, 여기에 스칼라 프로세싱도 부분적으로 가능하다. 이에 대해 코코링크 이동학 대표이사는 “CUDA는 '슈퍼 벡터 프로세서'다”라고 정의를 내리기도 했다. 이상적인 SIMD 구조에 MIMD 형태로도 운용이 가능해 슈퍼컴퓨팅으로 활용하기에 가능성이 매우 크다고 덧붙이기도 했다.


▲ CUDA는 현존하는 가장 저렴한 슈퍼컴퓨팅 솔루션이다.

CUDA와 유사한 케이스로 IBM의 'Cell BE'프로세서가 있다. 이는 세계최고의 수퍼컴퓨터에 사용된 것으로 유명한데 그 구조는 매킨토시나 IBM의 서버에 사용되는 파워계열 프로세서가 하나 들어가 있고, 부동소수점 연산을 전담하는 SPE 유니트 8개가 내장되어 있다.

내부적으로 서클타입 버스가 중심에 존재하는데, MIMD 형태로 구성된 점이 특징이다. 4GHz 클럭에서 단정도 부동소수점 실수(32bit) 연산 250GFlops 성능을 낸다.

개발환경 자체가 CUDA보다 번잡해 개발하기 어려운데, 이 부분이 CUDA와 가장 비교된다고 한다. 소니의 플레이스테이션 3에도 채택되어 게임기에 수퍼컴퓨팅을 위하여 리눅스 설치하는 열풍을 일으키기도 했던 CellBE는 결국은 조용해진 상황이다.

최근 발표된 테슬라 C1060 제품은 32bit 실수 연산에서 933GFlops 이상, 64bit 실수 연산에서 100GFlops 이상의 성능을 낸다. 이런 성능을 바탕으로 경제성 측면에서 x86 프로세서는 물론, Cell BE 프로세서를 크게 압도하는 지상(至上)의 역량을 과시한다. 1GFlops 당 5달러 정도의 경제성을 과시하는데, 이는 다섯 배 이상의 차이를 보이는 업계 최고수준이다.

이런 경제성 때문에라도 예산이 박(薄)한 학계와 중소기업들이 CUDA에 특히 관심을 보일 수밖에 없다. 2008년 상반기 기준으로 수퍼컴퓨터 세계 랭킹 500위 안에 드는데 1억원 미만의 비용이 소요될 뿐이다.



▲ CUDA 코드 작성에 대한 테크닉이 다뤄지기도 했다.

1부 세션 후반에서는 실제 CUDA를 설치하고, 코딩하는 순서에 대한 설명이 이어졌다. 이동학 대표이사 스스로 현업에서 CUDA 코드를 직접 다루고 있는 입장이었던 관계로 자신이 겪은 어려움이나 팁들을 아낌없이 공개했다.

C 언어 기반으로 CUDA가 만들어지긴 했으나, 코딩 테크닉 자체는 상당한 경험을 요구하는 수퍼컴퓨팅을 기반으로 하고 있어 현업에 종사하고 있어야 아는 측면이 있어, 이 부분에 대한 설명에 참관객들이 특히 주목하는 모습을 보였다.

코코링크 이동학 대표이사는 두 번째로 열린 CUDA 튜토리얼에 이어 세 번째 행사는 물론 정례적으로 계획되고 있음을 밝히기도 했다. 그는 또 "국내는 물론 해외에서도 CUDA가 가장 저렴한 슈퍼컴퓨팅 구축 방식으로 인정받으면서 관련 연구가 해외에서 급속도로 진행되고 있다"고 말하고, "세계는 이미 메인프레임 컴퓨터에서 PC 로 전환되었던 80년대와 마찬가지로 컴퓨터 산업 전반의 패러다임이 전환되는 시점이어서 국내 개발자들이 CUDA환경을 기반으로 하는 소프트웨어 개발에 뛰어들어 IT 부흥과 개인적인 성공을 모두 이뤘으면 좋겠다"는 바램을 나타냈다.


▲ 2부 순서에서는 보다 수준 높은 CUDA 코딩이 다뤄졌다.


▲ 책상위의 슈퍼컴퓨팅을 구현하는 'CUDA'에 대한 관심이 뜨거웠다.

  Copyright ⓒ Acrofan All Right Reserved
반응형

댓글