화요일쯤에 RSS를 돌다가 재미있는 글을 찍어놨는데, 오늘에야 겨우 읽어봤습니다.Cell Processor를 제대로 활용하기 위해서 프로그래밍을 어떻게 해야하는가에 대한 내용을 간략하게 설명해 놓은 글인데, 원문은 http://www.ddj.com/hpc-high-performance-computing/197801624 에서 볼 수 있습니다.
PS3에 사용된 Processor가 Cell Processor인 관계로 한번쯤은 다들 들어보셨을 것이라 생각합니다. 저도 "엄청난 성능을 내는 괴물" 정도로 생각하고 있었는데, 찾아보니 자세한 Spec이 나오더군요(Spec은 http://www.mc.com/uploadedfiles/Cell_accelerator_board.pdf 에서 볼 수 있습니다). 문서를 보면 총 9개의 Processor와 그것들을 연결해 주는 Bus로 구성된다는 것을 알 수 있습니다.
좀 복잡한 구조를 가지고 있는 듯 한데, 아래의 블럭 다이어그램을 보시면 이해하는데 도움이 되실겁니다.
원문에서는 BFS(Breath First Search)를 예로 들어 Cell Processor Programming에 대해서 설명하고 있습니다. 각 Processor에 Branch를 어떻게 할당하며, 공유된 Memory에 접근은 어떻게 하는가 등등에 대한 내용이더군요. 간단히 아래와 같이 요약하면 아래와 같습니다.
원문을 잘 찾아보면 IBM에서 제공하는 Cell Processor SDK의 링크도 찾아볼 수 있는데, Simulator도 포함하고 있다니 관심있으신 분은 환경을 구성해 보는 것도 좋을 듯 합니다(http://www-128.ibm.com/developerworks/power/cell/downloads.html?S_TACT=105AGX16&S_CMP=LP).
Cell Processor가 좋긴 하지만, 병렬 처리(Parallel Processing)를 위한 Overhead가 있어서 좀 꺼려집니다. 하지만 Performance가 무엇보다 중요하다면 Cell Processor는 좋은 대안이 될 수 있을 것 같습니다. 무시무시한 성능을 낸다고 하니 나중에 시간나면 보드라도 하나 구매해야겠습니다. ^^;;;
그럼 다들 좋은밤 되시길~ ;)
Mercury사에서 팔고있는 PCI Cell Accelerator Board
PS3에 사용된 Processor가 Cell Processor인 관계로 한번쯤은 다들 들어보셨을 것이라 생각합니다. 저도 "엄청난 성능을 내는 괴물" 정도로 생각하고 있었는데, 찾아보니 자세한 Spec이 나오더군요(Spec은 http://www.mc.com/uploadedfiles/Cell_accelerator_board.pdf 에서 볼 수 있습니다). 문서를 보면 총 9개의 Processor와 그것들을 연결해 주는 Bus로 구성된다는 것을 알 수 있습니다.
* The Power™ processing element (PPE) has dual hardware multithreading and a standard VMX vector processing engine. It has separate 32 KB L1 data and instruction caches and 512 KB of L2
cache. The processing power of the PPE is in addition to the 180 GFLOPS from the SPE array.
* In the array of eight synergistic processing elements (SPEs), each has a dual-issue pipeline, a 128-bit-wide vector processing engine, a very large register set (128 registers, each 128 bits wide), and 256 KB of local store (LS). Each SPE accesses system memory via its memory flow controller (MFC), which is a high-performance
DMA engine.
* A high-speed data ring called the element interconnect bus (EIB) consists of two pairs of counter-rotating rings with a sustained aggregate bandwidth of 180 GB/s.
cache. The processing power of the PPE is in addition to the 180 GFLOPS from the SPE array.
* In the array of eight synergistic processing elements (SPEs), each has a dual-issue pipeline, a 128-bit-wide vector processing engine, a very large register set (128 registers, each 128 bits wide), and 256 KB of local store (LS). Each SPE accesses system memory via its memory flow controller (MFC), which is a high-performance
DMA engine.
* A high-speed data ring called the element interconnect bus (EIB) consists of two pairs of counter-rotating rings with a sustained aggregate bandwidth of 180 GB/s.
좀 복잡한 구조를 가지고 있는 듯 한데, 아래의 블럭 다이어그램을 보시면 이해하는데 도움이 되실겁니다.
원문에서는 BFS(Breath First Search)를 예로 들어 Cell Processor Programming에 대해서 설명하고 있습니다. 각 Processor에 Branch를 어떻게 할당하며, 공유된 Memory에 접근은 어떻게 하는가 등등에 대한 내용이더군요. 간단히 아래와 같이 요약하면 아래와 같습니다.
1. SPE의 Local Storage를 잘 이용하고
2. DMA와 Double Buffering을 이용해서 Data Transfer Time을 줄이며
3. Data Structure를 효율적으로 구성하라
2. DMA와 Double Buffering을 이용해서 Data Transfer Time을 줄이며
3. Data Structure를 효율적으로 구성하라
원문을 잘 찾아보면 IBM에서 제공하는 Cell Processor SDK의 링크도 찾아볼 수 있는데, Simulator도 포함하고 있다니 관심있으신 분은 환경을 구성해 보는 것도 좋을 듯 합니다(http://www-128.ibm.com/developerworks/power/cell/downloads.html?S_TACT=105AGX16&S_CMP=LP).
Cell Processor가 좋긴 하지만, 병렬 처리(Parallel Processing)를 위한 Overhead가 있어서 좀 꺼려집니다. 하지만 Performance가 무엇보다 중요하다면 Cell Processor는 좋은 대안이 될 수 있을 것 같습니다. 무시무시한 성능을 낸다고 하니 나중에 시간나면 보드라도 하나 구매해야겠습니다. ^^;;;
그럼 다들 좋은밤 되시길~ ;)
'프로그래밍(Programming)' 카테고리의 다른 글
VS2005와 DevitPro의 충돌문제~!!! (7) | 2008.04.13 |
---|---|
PSP 홈브루(Homebrew)를 만들기 위한 일보 전진~!!!! (6) | 2008.04.11 |
윈도우용 도쿠 위키(doku wiki) Standalone 버전 설치 방법 (2) | 2008.03.24 |
설치가 필요없는 윈도우용 도쿠위키(DokuWiki) - Stand Alone 버전 (3) | 2008.03.23 |
언패킹(Unpacking)을 쉽게 하는 팁 (3) | 2008.03.21 |