화요일쯤에 RSS를 돌다가 재미있는 글을 찍어놨는데, 오늘에야 겨우 읽어봤습니다.Cell Processor를 제대로 활용하기 위해서 프로그래밍을 어떻게 해야하는가에 대한 내용을 간략하게 설명해 놓은 글인데, 원문은 http://www.ddj.com/hpc-high-performance-computing/197801624 에서 볼 수 있습니다.
사용자 삽입 이미지

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.

 좀 복잡한 구조를 가지고 있는 듯 한데, 아래의 블럭 다이어그램을 보시면 이해하는데 도움이 되실겁니다.
사용자 삽입 이미지

 원문에서는 BFS(Breath First Search)를 예로 들어 Cell Processor Programming에 대해서 설명하고 있습니다. 각 Processor에 Branch를 어떻게 할당하며, 공유된 Memory에 접근은 어떻게 하는가 등등에 대한 내용이더군요. 간단히 아래와 같이 요약하면 아래와 같습니다.

1. SPELocal Storage를 잘 이용하고
2. DMADouble 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는 좋은 대안이 될 수 있을 것 같습니다. 무시무시한 성능을 낸다고 하니 나중에 시간나면 보드라도 하나 구매해야겠습니다. ^^;;;

 그럼 다들 좋은밤 되시길~ ;)


+ Recent posts