본문 바로가기

Papyrus/Dizzy Report

Drive!

구 소련의 경제 정책에 대한 우스개 소리는 다음과 같이 시작한다 :


동무들, 앞으로 5년 뒤에는..


AMD의 애슬론/듀론 시절의 짧은 영광 후의 행보는 구 소련의 이 우스개 소리를 떠올리게 한다. 그러나, 오늘 터키에서 날아온 불도저의 벤치마크(http://www.parkoz.com/zboard/view.php?id=int_news&page=1&sn1=&divpage=6&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=22783) 결과는 약간 의외다. 애초부터 불도저 코어가 기존 벤치마크 프로그램에서 인텔을 이길 수 있다고 생각한 사람은 없을 것이다. 그러나, 이 결과로부터 다음을 예측할 수 있다.

첫째, 이전의 포스팅에서 썼던 것처럼, 초기 불도저는 플래그쉽 제품 이외에는 가치가 없다. 또, 가격 대비 성능은 오히려 처참할 것이다. 초기 수율 문제 때문에 쓸만한 가격으로 내려오는 일은 없을 것이며, 현재 불도저 라인업은 거의 모든 부분에서 인텔 라인업에 비해 경쟁력에서 떨어진다.

둘째, 이게 중요한데, 메인스트림 데스크탑 시장에서 AMD의 주력을 장악하는 것은 Vishera가 아니라 불도저 후속 아키텍처인 파일드라이버(piledriver)가 적용된 APU 후속 제품일 가능성이 매우 높다.

이것은 현재 프로그래밍 패러다임이 어떻게 변하는지 크게 와닿지 않는 파워유저들로서는 이해하기 어려운 부분이다. 마이크로 프로세서는 전통적으로 프로그램의 직렬화 성능을 끌어올리는 방향으로 발전해왔다. 그러나, 암달의 법칙이 말하는 것처럼, 직렬화 성능을 끌어올려서 전체 병렬 성능을 끌어올리는 것은 엄청난 노력이 필요하며, 때로는 불가능할 수도 있다. 대부분의 소프트웨어는 진정한 의미에서 병렬 처리를 염두에 두고 작성된 것이 아니며, 제한된 수준에서 병렬 처리를 적용하고 있을 뿐이다. 이것은 기존의 소프트웨어 스레딩 패키지들이 매우 원초적이기 때문에 추상화된 병렬 처리 알고리즘을 적용하기 힘들기 때문이다. 자신들의 컴파일러가 없는 AMD로서는 억울할 법도 한데, 인텔이 가장 뛰어난 C/C++ 컴파일러로 빠른 시간 안에 대부분의 프로그램에서 여유롭게 최상의 성능을 뽑아내는 것과 비교되기 때문이다.

그러나, 이제 게임의 룰이 바뀌었다. 물론, 아직도 병렬화가 거의 불가능한 직렬 성능에 의존하는 소프트웨어는 인텔이 압도적으로 유리하겠지만, 병렬 소프트웨어계의 STL이라 할 수 있는 TBB, ArBB(인텔), PPL, AMP(MS)의 등장으로, 일반 프로그래머들도 상당한 수준으로 병렬 작업 추상화된 소프트웨어를 작성할 수 있게 되었으며, 이것은 새 시대의 서막이다. TBB와 PPL, ArBB와 AMP는 서로가 매우 비슷한 컨셉이지만, TBB와 ArBB의 가장 큰 문제는 나이츠 코너(라라비)와 같은, MIC 기반의 다수의 x86 병렬 코어 기반이며, 일반 사용자들은 HPC 시장을 겨냥한 이들 제품을 만져볼 일이 없다.

차세대 하드웨어가 진정한 CPU - GPU 메모리 어드레스 통합을 이루기에는 현실과 괴리가 있어보이며, 현실적인 대안은 현재 두루두루 쓰이고 있는 GPGPU 프로그래밍 모델을 네이티브 언어 안쪽으로 감추는 것이다. 컴퓨터 역사를 살펴보면 혁신적인 신기술보다는 많이 쓰이는 기술을 누덕누덕 기우며 발전한 경우가 많았는데, 이번에도 동일하게 적용될 것 같다. 다음 시대의 '윤회의 수레바퀴'는 라라비와 같은 궁극의 컨셉보다는 소프트웨어 추상층에 의한 GPGPU 통합이다. 여기에 가장 적합한 짝은 MS의 AMP와 AMD의 APU다.

즉, AMD가 노리는 것은 Radeon 4850이 했던 것처럼, 플래그쉽 제품에서 인텔을 두들기는 것이 아니라, 메인스트림 부분에서 최대한 쉐어를 장악하고자 하는 것이다. 인텔이 아무리 최상급 플래그쉽 제품을 만든다고 해도, 실제 시장에서 막대한 쉐어를 차지하는 것은 보급형 ~ 메인스트림 제품들이며, 이것은 GPU라고 하더라도 다르지 않다. 또, 애초부터 인텔과 절대 성능으로 승부하려는 것은 계란으로 바위 치기다(R&D 투자 금액부터 어마어마하게 차이가 난다). 써먹지도 못할 따로 국밥식 성능보다 CPU, GPU의 최종적인 통합 플롭스(flops)가 더 중요하다. 이것은 엔진 개발사들이 차세대 하드웨어에서는 더 강력한 쉐이더 모델 스펙보다 GPGPU와 호스트 메모리 - 디바이스 메모리의 대역폭이 더 중요하다라고 말하는 것과 일맥상통한다.

불도저 아키텍처는 애초부터 하이퍼스레딩과는 다른 방식으로 멀티스레딩에 대응한다. 더구나 부동소수점 유닛은 궁극적으로 GPU 유닛으로 대체하려는 의도를 가지고 있다. 초기에는 상대적으로 쉬운 모듈 확장으로 인텔과 맞설거라 예상되었지만, 초기 모듈의 성능이 생각보다 시원치 않아서 그동안 흘러나온 성능은 매우 좌절스러웠다. 그러나, 오늘 터키에서 날아온 벤치가 실제 리테일 제품과 큰 차이가 없다면, 파일드라이버 아키텍처에 라데온 7000 코어가 융합된 트리니티는 그야말로 메인스트림 시장에서 원하는 CPU + GPU 성능, 전력, 가격 3 박자를 맞출 가능성이 매우 높다.

인텔과 NVIDIA에게 남은 시간은, 그야말로 대다수의 C/C++ 프로그래머들이 TBB, ArBB, PPL, AMP에 적응하는 만큼이다. 이 시간 동안 인텔은 ArBB에 대응하는 나이츠 코너의 일반 사용자 버전을 만들지 못한다면 GMA나 뜯어고치면서 ArBB를 GPU에 대응하도록 포팅하고(이렇게 된다면 결국 AMP에 밀릴 가능성이 높다), NVIDIA, AMD와 경쟁해야 할 것이다. 또, NVIDIA는  아직도 이종 컴파일러 모델의 CUDA나 붙잡고 있다면(Sony의 Cell Broadband Engine처럼), 오래지 않아 막대한 돈을 들인 GPGPU 파트가 소리 없이 공중분해되는 것을 목격하게 될 것이다.

그렇다면, AMD는? 구 소련의 경제 정책 구호을 멀리하라. 즉, 이미 뛴 방향이 틀리지 않았다. 속도를 붙여 실제 제품을 약속한 시간에 내놓는 것이 가장 중요하다.