얼마전 한 대학의 연구결과를 통해 Geforce FX 5900 Ultra가 Pentium4 10Ghz에 맞먹는 성능을 가지고 있다는 결과가
알려졌었는데 그 용도를 따져보면 당연한 결과라는 의견이 있지만 Impress PcWatch에 5년후에는 GPU 슈퍼컴퓨터가 온다라는 제목의
칼럼이 올라왔다.
이글은 지금의 GPU(그래픽 프로세서 유닛)가 일반 T&L기반에서 Shader기반으로 넘어오면서 가지는 특징으로 현재 일어나고 있는
트랜드를 소개하고 있는데 이 글에서 소개하고 있는 각부분을 요약하면 아래와 같다.
- Microsoft, GPU를 범용 프로세서로 이용 할수도 있다.
Microsoft의 Dr. Richard Rashid(리처드·라싯드) 박사(Senior Vice President, Microsoft
Research)는 지난 10월 Professional Developers Conference (PDC)를 통해 최근 흥미로운 점이 있다면
GPU의 용도가 크게 바뀌고 있다고 하였으며 SIGGRAPH(CG컨퍼런스)로 발표한 논문의 상당수가 GPU를 전통적인 용도에서
사용하는것이 아닌 좀 더 범용적인 연산, 시뮬레이션, 해석 등에 사용한다는 것이었다고 한다.
Microsoft Research도 이에 대해서 같은 생각을 가지고 있으며 비그래픽스의 분야의 범용 용도 연산에 GPU를
사용하는 연구를 진행시키고 있다고 하며 이러한 자세는 Microsoft의 멀티미디어 API 「DirectX」팀에도 나타나고 있어 게임
개발 컨퍼런스 「CEDEC」에서 Shader 4.0을 언급하면서 방향성을 제시하였다고 한다.
예를 들면, 미디어 압축이나 미디어 오쏘링, 비리얼타임 렌더링과 보다 일반적인 어플리케이션에의 적용이 그예인데 이미 사용자들로부터
이러한 부분에 대한 요구가 있다고 한다.
- 그래픽 업계에서도 GPU의 범용화를 예측
GPU가 범용 프로세서로 향한다고 하는 인식은 Microsoft뿐만 아니라 그래픽스 업계의 일부로부터도 들려오고 있는데 7월에
개최된 CG컨퍼런스 「SIGGRAPH 2003」에서는 GPU상에서의 컴퓨팅에 대한 논문 발표의 코너 「Computation on GPUs」가
설치되었었다고 한다.
여기에서는 GPU를 사용해 시뮬레이션이나 이미지 베이스 모델링등에 적용하는 논문이 발표되었으며 작년의 SIGGRAPH
2002에서는 레이 트래싱을 GPU상에서 행하는 논문도 발표되었어 기존에
CPU에서 처리되던것을 GPU상에서 고속으로 처리하려고 한다고 한다.
이러한 트랜드의 배경에는 GPU 하드웨어 자체의 프로그래머블화가 있다. GPU는 프로그래머블인 연산 유니트군 「Programmable
Shader」를 탑재한 것으로 부터 이미 범용 프로세서화가 진행되기 시작했으며 이로인해 범용적인 처리가 눈앞에 다가온것이라고 한다.
향후, DirectX 10(Shader 4.0?)이나 DirectX 11에서 이러한 경향이 더욱 더 강해진다고 보여지고
있는데 현재 범용화의 걸림돌문제로 나타나 있는 Pixel Shader의 내부 연산 정밀도의 문제도 2004년에는 32
bit로 이행될것으로 보이기에 간단히 해결될것이라고 한다.
범용화가 진행되면 CPU상의 처리를 GPU에 가져오는 것이 가능하게 되며 프로세스에 따라서는 GPU가
CPU보다 효율이 높아지기도 하며 그것은 GPU가 CPU보다 병렬도가 훨씬 높기 때문이다라고 한다.
GPU의 Shader는 SIMD(Single Instruction, Multiple Data) 형의 연산 유니트로 CPU가 탑재하는
SSE/SSE2 유닛과 거의 비슷한데 Pentium 4는 SSE/SSE2 유니트를 1개 밖에 탑재하고 있지
않지만 GPU에 따라서는 최대 12개(RADEON 9700/9800계)의 Shader를 탑재하고 있다
즉 6배의 클럭차이가 있어도 12배의 연산 유니트 차이가 있어 저클럭에서도 고효율로 처리할 수 있다는 것이다.
- PC상의 처리를 CPU로부터 GPU로 이행
그럼, GPU에서는 향후 어떤 처리가 가능하게 되는 것인가.
이러한 트랜드로 인해 가장 두각을 나타내고 있는 부분은 디지털 비디오의 encode 처리다.예를 들면, NVIDIA
등은, MPEG-2 포맷의 encode 처리를 GPU 측에 가지고 오고 있다.
「Pixel Shader의 프로그램이 비디오의 encode와 디코드의 양쪽 모두를 지원한다.누구나 GPU상에서, 디지털 비디오
레코딩이나 타임 시프 팅, 오쏘링등을 하게 된다」라고 NVIDIA의 Kirk씨는 이전 말했다고 한다.
Pixel Shader는 프로그래머블이므로, 하드웨어 엔코더와 달리, MPEG-2뿐만이 아니라, MPEG-4 등 다른 포맷에도 이론적으로는
대응할 수 있다.「Shader는 고도로 프로그래머블화 된 엔진이니까, 누군가가 Pixel Shader로 MPEG-4 encode를 실현하는
방법을 찾아냈다고 해도 놀라지 않는다」라고 NVIDIA의 Bill Henry씨(Director, Mobile Products
Management)는 말했으며 상당한 처리를 요하는 MPEG-4나 DivX의 encode를 장래는 GPU를 사용해 고속 처리할 수
있게 될지도 모른다는것이 일반적인 의견이라고 한다.
이 외 , photo retouch와 같은 이미징 처리도 GPU로 고속 처리할 수 있을 가능성이 높으며 오디오나 스피치의 프로세싱도
GPU로 행하게 하는 것이 가능하다고 말해지고 있다. 또 시뮬레이션이나 물리 연산도 Shader를 응용할 수 있는 영역이다.
무엇보다 Shader를 엔진을 많이 사용하는 3D게임중에서 이러한 처리를 GPU 측에 가져오는 것은 어려울지도 모르지만 결국 GPU가
범용적인 SIMD 연산 프로세서가 되면 SIMD 연산이 향하고 있는 처리는 뭐든지 가지고 올 수가 있으며 옛날전에 유행한 미디어
프로세서를 PC에 장착한 상태에 가깝게 된다고 한다.
- GPU의 신영역, 렌더링 서버
GPU가 노리는 영역은 클라이언트 PC측에만 머물지 않고 서버 영역에서 새로울 기회를 엿보고 있다고 한다.
바로 렌더링 서버로의 용도로 오프 라인 CG는 영화전용의 고품질인 CG제작을 위해서 렌더팜 (Render farm)로 불리는 서버군을 사용해 서버
CPU를 다수 사용해 고도로 프로그램성이 필요한 렌더링을 처리하고 있다고 한다.
GPU 벤더는 이 시장을 GPU에 이행 시키려고 하고 있으며 프로그래머블인 GPU라면 오프 라인 CG제작의 최종 렌더링 용도에 사용할 수 있기에 GPU를 다수
탑재한 서버로 렌더팜 (Render farm)를 구성할 수 있다고 한다.
「실제로 우리는 영화 스튜디오와 협력해 그들의 CG제작 프로세스를 GPU로 이행할 수 있도록 돕고 있다. 일단 그들의 데이터 플로우를
어레인지해 버리면 그들은 GPU를 사용해 영화를 만들 수 있게 된다. 그렇게되면 그들의 서버 룸에는 GeForce FX 머신이 줄서게
될 것이며 그 머신에는 복수의 GPU를 탑재하고 있을 것이다」라고 NVIDIA의 Kirk씨가 말했다고 한다.
또, ATI Technologies의 Andrew B. Thompson씨(Director, Advanced Technology
Marketing, ATI Research)도 다음과 같이 말했다고 한다.
「렌더팜 (Render farm)는, 현재 Intel이나 Sun Microsystems의 CPU를 사용하고 있다. 우리는 이러한 CPU를 GPU로 옮겨놓아 좀 더
효율적으로 렌더링 할 수가 있을 것이다. 물론 그것을 곧바로 할 수 있다고는 생각하지 않는다. 그러나, 2~3년 중에는, 반드시 GPU를 사용한
렌더링 펌을 볼 수가 있을 것이다.
단 그 때문에 중요한 것은 고정밀도(픽셀)와 매우 긴 Shader(프로그램)의 지원이다. 그것만 제공되면 사람들은 렌더팜(Render farm)을 GPU로
만들기 시작할 수가 있다.이것은, 업계의 명확한 방향성이다」
렌더팜 (Render farm)에 GPU의 투입은, 꽤 빠른 단계에서 시작된다고 추측된다. NVIDIA의 John Spitzer씨(Director of
Developer Technology)는, 동사가 PCI Express 세대에 그러한 전개를 생각하고 있다고 한다.즉, 2004년부터 시작되게
된다.
- GPU 슈퍼컴퓨터의 길
위의 글에서는 서버 분야에서의 GPU 벤더의 야심은 렌더팜 (Render farm)에 있다고 하였지만 실제로의 이야기는 그런 소규모의 것은
아니었다.GPU 벤더는, 좀 더 큰 영역을 시야에 넣고 있었으며 과학기술 연산의 영역까지 생각하고 있다고 한다.
바로 “GPU 슈퍼컴퓨터”를 목표로 하고 있는것으로 기존의 스팍컴퓨터나 클러스터 서버로 CPU군이 처리하고 있는 고도의
과학기술계의 연산도 장래에는 GPU를 통해 보다 효율적으로 처리할 수 있게 된다. 그것은, 과학기술 연산으로 필요하게 되는 요소와
GPU가 가지고 있는 프로그램성의 친화성이 높기 때문이다.
ATI Technologies의 David E. Orton(데이빗·E·오톤) 사장겸COO는 다음과 같이 말한다.
「기존의 소프트웨어는 분기나 조건분기명령등에 의해 규칙성의 적은 패턴을 많이 포함하기 때문에,병렬에 처리하는 것이
어렵다. 그에 비해 그래픽스의 소프트웨어는, 상당히 규칙성이 있으며 거의 직선적인 프로그램이다.
그러니까, 그래픽스 프로세서의 엔진을 병렬화하는 것은 매우 용이하다. 그런데 재미있는 것에 과학기술 연산의 프로그램도 직선적이며
규칙성이 있다. 그러니까, 벡터 컴퓨터가 현재 처리하는것을 그래픽스 프로세서, 즉 GPU에서도 할 수 있다고 생각한다」
과학기술 연산에서는 벡터형 슈퍼컴퓨터나 대규모로 클러스터 결합된 서버군이 사용된다.벡터형 슈퍼컴퓨터가 이 영역에서 사용되는 것은 연산의
대부분이 일정한 데이터군에 대해서 반복해 같은 처리를 행하는 타입이기 때문이다.그 때문에 벡터/SIMD형의 프로세서로, 데이터 레벨로 병렬화하는
것으로 처리를 고속화할 수 있다.
그리고, GPU도 동타입의 데이터를 취급하기 있고 같은 방향 진화하고 있다. 그러니까 GPU가, 벡터/SIMD 연산
유니트(Shader)를 높은 병렬도로 탑재한 범용 프로세서가 된다면 거기에 과학기술 연산을 처리하려는 시도가 있을것이며 이는 자연스러운
흐름일지도 모른다고 한다.
GPU를 복수 탑재한 서버를 클러스터 결합시켜 벡터 슈퍼컴퓨터 같은 수준의 처리를 목표로 하는 GPU 슈퍼컴퓨터의 프로젝트가 나올 가능성은
확실히 있다.
GPU 슈퍼컴퓨터는, 경제적으로도 상당히 매력적일 가능성이 있다. 현재, 과학기술 연산 유저의 상당수는 듀얼 프로셋서 클래스의 염가인
서버를 클러스터 구성으로 결합해 연산을 행하게 하고 있다. 이러한 구성에서는 슈퍼컴퓨터보다 아득하게 저비용에, 높은 CPU 연산 능력을 얻을 수
있기 때문이다.
그러나, CPU보다 벡터/SIMD 연산 유니트의 병렬도가 높은 GPU를 사용하면, 1개1개의 노드내의 연산의 병렬성은 한층 더 높아진다.
즉 보다 고퍼포먼스/코스트의 벡터/SIMD형 프로세서의 과학기술 연산 서버가 생긴다는 것이다.
여기까지 일한번역기를 통해 나타난 해당 칼럼의 내용을 간추려 드렸는데 마지막 한 부분.. 즉 GPU 슈퍼컴퓨터가 나타난다고 해도 CPU가
필요하다는 부분은 추가하지 않았습니다..
- GPU의 범용성이라.. 비디오 인코딩과 디코딩분야에 빠르게 적용되었으면 좋겠군요..