Tag Archives: GPU

Intel의 새로운 GPU

제가 자주 그렇게 하고 있습니다만, 이 글은 MPR의 기사와 몇몇 논문을 기반으로 하고 있습니다. 읽고 제 맘대로 쓰는 글이라 항상 그렇듯 모두 맞는 내용을 쓰고 있다는 보장은 없어요.



Intel이 새로운 UFO를 주워서 새로운 장난감을 만들었습니다 ^^; 사실 인텔에게 GPU는 생소한 분야가 아닙니다. 이미 GPU 분야에서 상당한 – 실제적으로는 모든 마켓을 고려했을 때는 가장 큰- 마켓 쉐어를 가지고 있으니까요.. (근데, 아직도 이런가요? 몇년전엔 맞는 이야기인데, 아직도 이런지는 확신이 없네요. )



돌아가는 상황


Intel이 x86 기반으로 데스크 탑과 서버 시장을 장악하고 있다는 것이야 다들 아는 사실이고, 예전에 예상했듯이 strongARM과 XScale 사업을 버린 이유가, x86기반으로 embedded 시장에 도전하려는 것이라는 것도 실제로 나타났지요. 오히려 예상보다 느린 행보라 약간 의아할 뿐입니다. 실제적으로 ARM과 불꽃 튀게 붙게 될 시점은 2010년 정도로 보고 있습니다. ARM에서 저전력을 가지고 이러니 저러니 해도 Intel은 아직 SoC를 만든 것이 아니라, mobile processor를 embedded 시장에 맞도록 한번 바꾼 정도라고 보시는 것이 맞을 것입니다. 즉, ARM에서 내세우는 저전력의 우세는 ARM에서 그러하듯이 intel이 대부분의 peripheral을 on-chip화 시켜 SoC를 만들어내는 2010년 정도에 따져볼 일입니다. 게다가 이전에 썼듯이 ARM의 Cortex-A9의 경우 기존의 A8과 비교하여 여전히 energy-efficient할 것인지 의문입니다. (물론, 2-way까지는 Instruction Level Parallelism 가 충분하므로 어느 정도 까지는 문제가 없겠지요 ^^;)




Intel의 새로운 GPU; Larrabee


이러한 상황에서 Intel이 새로 내놓은 GPU는 기존의 3D accelerator와 차이가 많습니다. 각core당 16-lane SIMD 와 4개의 thread를 지원하고, NoC를 기반으로 하여 필요에 따라 다수의 코어를 연결할 수 있는 형태의 범용성 높은 프로세서를 만든거죠. Larabee는 일종의 NoC 기반의 array/vector processor 형태를 취하고 있는 것으로 보시면 되겠습니다. GPU가 GPGPU를 내세우니, 그동안 잘 알려진 general processor형태로 GPU를 공략했다고 할까요 ^^;


이런 형태나 시도가 없었던 건 아니죠. 약간 모양이나 형태가 다르긴 합니다만, media processor도 이런 형태의 접근이죠. dedicated engine을 사용하지 않고, 범용성 높은 vector processing unit으로 시장을 공략했었던 것이지요. 단지, 그 당시에는 여러가지 이유로 이러한 시도가 실패했는데, 뭐 다들 짐작하시듯 전용 엔진이 범용 엔진보다 전력 소모, 효율 면에서 앞서기 때문이죠(게다가, 당시 3D accelerator는 rasterizer 부분에 포커싱 되어 있어서 범용성이 매우 떨어졌습니다). 그런데, 이번에 이런 시도는 어찌보면, GPU 가 이런 저런 기능을 GPU에 넣다보니, 파이프라인과 연산의 형태가 GPGPU를 시도할 만큼 범용성을 갖춘 시점이기 때문에 가능한 한번 싸워 볼만한 시점이 된 것이기 때문이라 보입니다. GPGPU를 하느니 첨부터 vector-array processing을 해서 programmability를 높이는 접근이 좋지 않냐..라는 거겠죠.


게다가, 명령어 셋을 x86 기반으로 가져가니, 어렵게 GPGPU를 위한 언어를 따로 쓸 필요도 없지요. (병렬 프로그래밍이나 컴파일 문제는 따로 이야기하더라도..). 이 부분은 기존에 이미 multiprocessor를 위하여 작성된 대부분의 x86 기반의 프로그램이 아주 잘 동작할 것이라는 것이고, multiprocessor를 위한 것이 아니라도 recompile이 필요하진 않을 거라는 거죠. 즉, 이미 잘 구성되어 있는 x86의 컴파일러들과 multicore를 위한 지원등을 그대로 이용할 수 있다는 아주 큰 장점을 지닙니다. (GPGPU의 가장 큰 진입 장벽이 새로운 renderer 명령을 배워서 써야 한다는 점을 생각하면 이해하기 쉽습니다.)



상황에 대한 이야기는 대충 된 것 같고, 전체 구조는 아래와 같습니다. (인터넷 찾으니 그림이 많군요 ^^; 원본 그림은 watermarking 된것 처럼 TECHARP.com에서 온 것 같습니다. google image검색에서 따 온거라 ^^;)




각 코어의 scalar/vector processing datapath의 그림은 위와 같구요. 위의 두 그림을 보고 알 수 있는 것은 dedicated L1의 형태를 지닌 vector 프로세서를 NoC(interprocessor ring network) 기반으로 array 형태로 배치한 것을 알 수 있습니다. 첫 그림을 보면 shared 형태의 L2처럼 보이는데, 실은 coherent L2 cache입니다. 코어의 수가 늘어나면 다수의 NoC를 배치한다고 하네요. 그래픽(visual computing)을 타켓으로 하다보니 dedicated accelerator와 몇몇 블록들이 존재 하구요.


형태상으로는 전반적으로 thread level parallelism과 data parallelism을 극대화시키기 위한 형태라고 생각됩니다. 흠.. 근데, snooping에 의한 traffic문제는 어떻게 할지 좀 궁금하긴 해요. NoC 에서 snooping에 의한 traffic이 만만치 않을 것 같은데, 주된 application이 vector processing이라 생각하면 그다지 많지 않을 것 같기도 하구요.



자세한 정보를 얻으실 분은 이 논문 을 읽어 보시는 것이 도움이 되실 것입니다.



요즘 흘러가는 것을 보면, 예전에 한번 실패했던 재미있는 테마들이 새로운 응용 분야, 기술의 발전에 힘입어 재미있게 융합되어 부활하는 것 같아서 흥미진진합니다.

국내 모바일 3D 그래픽 회사들의 위기 혹은 기회?

JPR과 같은 그래픽 마켓을 추정하는 회사의 추정에 의하여 mobile 3D 시장은 폭발적으로 늘어날 것이라고 예상되었는데, 현재 상황을 보면 그다지 녹녹하지 않은 상황입니다. GXG나 GPang이 나왔을 때만 해도 mobile 3D에 상당한 비중을 두던 회사들이 있었지요. 중견기업으로 성장한 C사, M사뿐 아니고, 일본 T사의 기술을 도입한 V사나, 자체 기술력을 지닌 N사나 M사등.. 많은 국내 기업들이 시장 형성에 기대를 걸고 있었습니다.
하지만, 생각보다 이쪽 시장이 잘 열리지 않는 형국이었는데요.. 쓸만한 소프트웨어의 부재라던지 핸드폰이 3D 게임을 위한 콘솔로서 어느 정도 가능성이 있을 것인가 등의 문제가 있었다고 봐야겠지요.
핸드폰을 위한 3D 이외의 시장은 독립적인 게임 콘솔의 개발인데, 이를 추진했던 K사와 N사, I사의 연합이 실패로 돌아가면서(실제적으로는 I사의 유동성 위기가 개발 초기의 가장 큰 문제가 아니었을까 싶지만..) 이런 시도는 없어진 듯 합니다. 사실 이 시장은 PSP나 NDSL과 붙어야 하는 시장이기 때문에 하드웨어적인 문제보다는 소프트웨어의 문제로, 접근이 불가능할 것이라고 보입니다.
핸드폰의 3D 처리에 대해서도 여러가지 불안 요소가 많았는데, PC 마켓의 강자들이 언제든지 mobile향으로 컨버전 할 수 있는 능력을 지니고 있었고, 실제적으로도 실험적인 제품은 몇 가지 출시해 놓고 있었지요. (범용 마이크로 프로세서와는 약간 다르게, GPU같은 경우는 연산기의 집합과 관련 제어 모듈이고, 명령어 셋에 큰 영향을 받지 않아서 mobile향으로 컨버전이 상당이 쉬운것으로 알려져 있습니다) 역시, 시장을 기다리고 있었다고 보는 것이 맞겠습니다.
그런데, EETimes의 기사를 보니 아주 우려하던 상황이 벌어졌군요. 퀄컴칩에 3D가 AMD의 3D 그래픽(실질적으로근 구 ATi의 그래픽 기술이라고 봐야겠지요.)코어가 들어간다고 합니다. 물론, 기존에 퀄컴칩에 카메라 인터페이스나 멀티미디어 기능이 추가되었다고 하여서, 핸드폰을 위한 멀티미디어 칩셋 시장이 죽은 건 아니지요(원가 압박을 받기는 했겠습니다만). 오히려 고성능 분야를 공략해서 성공한 업체들이 많으니까요. 그래도, 상황이 좋지 않은건 사실이겠습니다. 진짜 SoC라는 분야는 점점 tough해지는 듯 합니다.

Google의 PeakStream사 인수!

예전에 소개해 드렸던 PeakStream이 Google에 인수되었습니다 (EETimes 뉴스). Multicore/GPU를 이용한 programming 방법론과 라이브러리, Toolkit을 갖추고 있는 peakStream이 강력한 배경인 Google에 인수됨으로써 Multiprocessor와 GPU를 위한 프로그래밍 API가 좀더 원활하게 개발 되고, 사용 될 가능성이 높아졌다고 봅니다.

 

PeakStream에 투자한 Nvidia에게는 많은 이익이 되는 일이겠고, 아이러니할 수 있지만 AMD/ATi는 뜻밖에 강력한 원군을 만난 느낌일 수 있겠습니다. PeakStream이 지원하는 GPU가 ATi 위주이며, 제대로 된 Single-Chip Multiprocessor/GPU의 조합을 가장 먼저 선 보일 가능성이 높은 것이 AMD이니까 말입니다. 아무래도 중소 벤처의 지원보다는 Google의 여러 software와 opensource project에 PeakStream의 multicore library가 적용되는 경우 많은 소프트웨어에서 Multiprocessor-GPU를 좀 더 효과적으로 이용하여 성능을 높일 수 있을테니까요.

 

하드웨어의 발전에 따라 소프트웨어의 분발도 놀랍습니다. 🙂