본문 바로가기

Papyrus/Dizzy Report

NVIDIA Fermi와 Larrabee, 그리고 AMD-ATI



NVIDIA의 Fermi가 컨퍼런스를 통해서 대충이나마 모습을 드러냈는데, 모두가 예상했던대로, 확실히 차세대 GPU 발전 방향을 지향하고 있다고 할 수 있다. 차세대 발전 방향은 두 말할 것도 없이 GPGPU 패러다임이며, 이것은 완전히 프로그래밍 가능한 3D 파이프라이닝 구축, 즉 이전 세대의 프로그래밍 가능한 쉐이더를 통해 엄청난 변화를 끌어낸 것 이상의 변화이다. 그러나 GPGPU 패러다임이 과거 FX 시리즈처럼 처참한 '상처뿐인 영광'으로 끝날지는 지켜봐야 할 일이다.

인텔의 라라비 프로젝트는 일반인들에게 단순히 인텔이 내장 VGA에서 하이엔드 GPU 시장으로 뛰어든다는 것으로 인식되고 있지만, 실상은 이런 프로그래밍 가능한 3D 파이프라이닝과 같은, 벡터 프로세서의 병렬화로 인한 병렬 컴퓨팅으로, 좀 더 범위가 큰 분야라고 할 수 있다. 라라비 프로젝트가 난항을 겪고 있는 것은 단순히 시장성이라든가, 성능만의 문제가 아닌, 효율적인 병렬 아키텍처 설계의 어려움 때문이다. 여기에, 최종적으로는 일반인들에게 GPU로서 인식되고 있으므로 시장에 존재하는 GPU들과 경쟁할 수 있는 수준이어야 하므로, 그 어려움은 말로 표현할 수 없을 것이다. 라라비 프로젝트는 장기적으로는 맞는 방향이라고 할 수 있지만, 적어도 한 세대 정도는 고전하리라 예상된다.

AMD-ATI 역시 합병을 통해, CPU - GPU 퓨전 프로세서를 꿈꾸고 있지만, 아직 인텔의 라라비나 NVIDIA의 이번 Fermi 만큼 체감할 수 있는 것은 존재하지 않는다. NVIDIA는 업계의 공룡 인텔로 인해 플랫폼 확산에 비상이 걸린 CUDA라도 있지만, ATI의 ATI Stream은 아직 개발자들이 체감할 수 있을만한 '꺼리'가 없는 형편이라 HD 4x 시리즈에서의 큰 성공이 마냥 좋지만은 않은 것이다.

노파심에서 하는 말인데, 이것은 A당, N당과 같은 관점에서 하는 이야기가 아니다. 분명히, 다음 아키텍처의 발전 방향은 클럭 경쟁보다는 다중 코어, 얼마나 더 효율적으로 병렬화를 달성하는지, 또 그런 하드웨어에 맞는 소프트웨어 발전은 어떻게해야 하는지(사실, 이게 가장 핵심적이다)이다.

Fermi 아키텍처는 당연하게도, 종래의 GPU 평가 방법만으로 성능을 이야기하기에는 곤란한 면이 있다. 그리고, 그런 GPU 본래의 면에 있어서는 ATI의 HD 5x 시리즈의 가격 대비 성능비에 크게 밀릴 것으로 추측한다. 그러나, Fermi는 보다 근본적으로는 현행 DirectX나 OpenGL의 고정된 파이프라이닝에 소프트웨어 처리가 들어가는 구조가 아닌, 전체 파이프라인을 프로그래밍할 수 있는 미래를 준비하는 포석이며, 네이티브 C++ 언어를 지원하는 것도 같은 맥락이다. 물론, 그렇다고 하더라도 라라비 최대 장점인 x86 벡터 프로세서의 병렬화로 인한, 동일한 메모리 접근으로 인한 디버깅의 수월함, 익숙함에 비한다면 현 아키텍처 구조에서 독립적인 GPU의 프로그래밍이 얼마나 수월해질지는 의문이다. 다만, NVIDIA가 현재 GPU 업계에서 가장 열심히 자사 플랫폼에 대해 개발자를 지원하고 있다는 것은 긍정적으로 작용할 것이다.

(2009. 10. 5, Fermi의 기술백서가 공개되었는데, GPU 프로그래밍의 난해한 부분이었던 메모리 어드레싱 문제가 복잡하다는 문제가 크게 개선되었다. 컴파일 타임에 메모리 어드레스를 파악할 수 있으므로 C++을 완벽하게 지원할 수 있다는 내용인데, 이대로 구현된다면 대단한 물건이 아닐 수 없다. GPU가 CPU 영역으로 들어오는 것이 더 빨라질 수 있다. 초기 라라비가 현존하는 GPU들과의 경쟁에서 불리할 것이므로, 오히려 인텔의 심경이 복잡해졌다)


정리하면, 차세대 CPU - GPU 시장(최소 5년 정도)에서의 현재 벤더들의 위치는 다음과 같다.

인텔 : 코어 - 네할렘 아키텍처로 현재 최대 CPU 시장을 장악하고 있지만, CPU - GPU 퓨전 및 GP 컴퓨팅에서 단단한 기반은 없다. 그러나 업계 최고의 기술력을 보유하고 있으며, 무엇보다 지구상에서 가장 많은 개발자를 가진 x86 플랫폼을 가지고 있다. 라라비의 강점도 바로 이 점에서 출발한다. 각각의 코어마다 동일하게 메모리를 바라볼 수 있으므로, 지금의 GPU 프로그래밍에 비한다면 거의 천국이다. 라라비는 아직 알려진 것도 그다지 많지는 않지만, 한 두 세대 정도의 고전을 버틸만한 체력이 있다면 아키텍처만으로도 이미 승리한 셈.

NVIDIA : 이전 G90 세대의 GPU 코어와 CUDA로 많은 재미를 봤지만, 인텔의 라라비로 이미 비상이 걸린 상황. CUDA가 아무리 좋다고 해도 일반화 된 x86 벡터 - 병렬 플랫폼(라라비)에서의 개발 방법에 비해 복잡할 것이며, 디버깅이 라라비에 비해 훨씬 성가시다. 더구나 NVIDIA는 인텔만큼 전체 아키텍처를 강요할 정도로 중력을 만들어 내는 회사가 아니다. Fermi는 단순히 GPU 성능 경쟁 때문이 아닌, 위태로운 위치에 서 있다. 라라비가 본격적으로 궤도에 오르기 전에 최대한 많은 개발자들을 자신의 틀 안으로 끌어들어야 하며(PhysX, OptiX, CUDA..), 엄청난 아키텍처의 변화에도 불구하고 기존 GPU들을 제압해야 하고, 특히 시장 변화가 빠른 GPU 시장에서, 그리고 성능을 끌어내기 위해서는 아직은 생소한 기술을 동원해야 하기 때문이다.

AMD-ATI : 단기적으로는 현 시장의 가장 큰 승리자이지만, 미래에 대한 보험이 아무 것도 없다. 전통적으로 소프트웨어 지원이 취약한 이들로서는, 개발자들에게 뭔가 만져볼 수 있는 '장난감'을 매우 조금 던져주고 있다는 점에서, 향후 아키텍처 전쟁에서 그 열쇠를 가진 개발자들을 유인할 수 있는 무기가 매우 적다. 가장 바랄 수 있는 시나리오는, GPGPU, DirectCompute와 같은 부분에서의 플랫폼 쉬프트가 천천히 일어나서 충분히 대비할 수 있는 시간을 버는 것. 두어 세대만 성공적으로 버틸 수 있다면 AMD 역시 퓨전 프로세서를 준비하고 있는만큼 향후 전쟁에 희망적이지만, 예상보다 빠르게 DX11, GP 컴퓨팅이 확산된다면 상당히 부담스러울 수 밖에 없다.




그리고, 여담으로 이런 GP 컴퓨팅에 대한 토발즈의 견해를 들어보면 다음과 같다. 물론, 이것은 순수하게 소프트웨어 관점에서의 이야기이며, CPU - GPU 퓨전과 같은 하드웨어 발전에 대한 이야기가 아니다.

http://celdee.tistory.com/270