[App 개발] Cell 아키텍쳐 (3)
본문
셀은 그래픽 전용 칩이 아닙니다. 셀은 범용으로 개발된 칩입니다. 만약 플스 3 의 그래픽 칩으로 활용된다면 nVidia 에서 제공될 것입니다. APU 는 일반 마이크로프로세서처럼 범용은 아니지만 셀 프로세서는 일반 파워피씨 마이크로프로세서인 PU 에 포함되어 효력을 발휘하게 됩니다.
셀 어플리케이션
1장에서 소개한 대로 셀은 단지 플스 3 에서만 사용되는 것은 아닙니다. 셀이 그 외에 어떤 용도로 활용될까요?
셀이 모든 경우에 다 효력이 있는 것은 아닙니다, 어떤 어플리케이션은 전혀 벡터화할 수 없는 것들이 있고, 그 외에 메모리 블럭을 읽어들이는 작업 등에서는 위력을 발휘할 수 없을 것입니다. 이런 경우 PU 에서 모두 처리할 수 있겠지만 특허 출원서에서는 PU 를 단지 OS 만 이용할 수 있다고 가정하고 있으므로 확실한 것은 아닙니다.
게임
게임은 셀의 가장 확실한 목표입니다. 셀은 게임을 위해서 설계되었으므로 만약 게임이 잘 안 된다면 뭔가 문제가 있는 것입니다. 셀 제작자들은 순수 컴퓨팅 성능에 집중했지 그래픽 문제는 아니었습니다. (해석이 맞는건가? ㅡㅡ;;;) 많은 하드웨어 기능이 소프트웨어로 옮겨짐으로써 개발자들의 자유도를 높였습니다. 플스 3 가 레이 트레이싱이 구현된 게임을 선보이는 첫 번째 게임 컨솔이 될 수 있을까요?
3D 그래픽스
이 분야가 셀이 가장 집중한 것으로써 가장 높은 성능을 얻을 것입니다. 그래픽스는 “완전 병렬”, 벡터화, 스트림화된 문제이므로 모든 APU 들이 총 활용될 것이며, 셀을 많이 동원할 수록 더 빠른 그래픽이 가능할 것입니다. 최근 다양한 그래픽 기법에 대한 많은 연구가 이루어지고 있고 셀은 이 분야에 적용되어 기법들을 직접 구현할 수 있도록 길을 열 것입니다. 지금 그래픽도 충분하다고 생각하시는 분들에게는 상당히 놀라운 일이 될 것입니다.
비디오
영상 조작도 벡터화가 가능하며 이미 포토샵 등에서 볼 수 있습니다. 비디오 프로세싱도 비슷한 원리로 가속될 수 있으며 애플은 탑재되어 있는 GPU 의 성능을 활용하여 비디오 프로세싱 속도를 높이는 “코어 이미지” 기술을 갖고 있으며, 셀은 GPU 가 할 수 있는 가속 기능을 거의 구현할 수 있을 것입니다.
비디오 인코딩과 디코딩도 역시 벡터화가 가능하며 포맷 변환과 마스터링 작업은 셀 프로세서의 혜택을 입을 수 있을 것입니다. 셀 칩을 탑재한 비디오 전용 하드웨어가 탄생될 것으로 생각합니다.
오디오
오디오 분야는 지금까지 충분한 성능을 얻지 못한 분야 중의 하나입니다. 오늘날 전자 음악가들은 다중 보이스를 가진 다중 가상 신서사이저를 가지고 있습니다. 기존에 합성된, 샘플링된, 혹은 진짜 악기를 모두 다루어야 하며 모두 높은 프로세싱 성능을 요구합니다. 그리고 이것은 각 채널에 다른 이펙트를 집어넣기 이전의 작업입니다. 그 다음 전체 이펙트를 넣고 채널당 압축을 수행한 다음 최종 믹싱에 들어갑니다. 많은 작업들이 병렬화가 가능합니다. 셀은 음악가들에게 꿈의 기계가 될 것이며 이미 피씨에서 신서사이저를 개발하여 판매하는 업자들에게는 자기 영역을 침범당하는 골칫거리가 될 것입니다.
DSP
DSP 의 첫 번째 목적은 FFT 로서 신호 처리를 위하여 시그널을 주파수별로 분리하는 작업입니다. FFT 는 극도로 벡터화된 알고리듬이며 이미 많은 벡터 유닛과 마이크로프로세서가 이 알고리듬을 가속하기 위한 특수한 명령어를 지원하고 있습니다.
DSP 의 응용 분야는 다양하며 대부분 스트림화가 가능하므로 셀은 많은 분야에서 응용될 수 있습니다. 가격이 저렴해지고 전력 소모가 줄어들게 되면 셀은 다양한 소비자용 혹은 산업용 장비로 활용될 것입니다.
SETI
FFT 로 구성된 DSP 프로그램의 전형적인 예제로서, 셀은 엄청난 SETI@home 스코어를 기록할 것입니다. 앞에서 기술한 대로 네 개의 셀 칩은 한 유닛을 5분 이내에 처리할 것입니다. 그 외에 다양한 분산 응용프로그램들이 셀의 혜택을 입을 것입니다.
과학계산
범용 (벡터화되지 않은) 응용프로그램은 적어도 네 개의 PowerPC 970 에 고속 메모리 인터페이스를 장착한 만큼의 성능을 낼 것입니다. 벡터화 알고리듬의 성능은 매우 뛰어날 것입니다. 문제는 상대적으로 적은 메모리 용량입니다. (이것은 플스 3에서의 문제이며 셀은 더 넓은 메모리를 어드레싱할 수 있을 것입니다.) 그러나 메모리 용량이 적은 셀이라도 I/O 유닛을 이용하여 스트리밍 데이터를 완벽하게 입출력할 수 있을 것입니다.
GPU 는 이미 과학 계산에 사용되고 있고 셀도 동일한 분야에 응용될 수 있을 것입니다. “sparse linear system 문제 풀기, 물리 실험, 선형 대수 명령, 편미분 문제, 고속 푸리에 변환, 레벨-셋 계산, 계산형 기하학 문제, 볼륨 랜더링, 레이 트레이싱, 플로우 비쥬얼라이제이션 같은 비 정통적인 그래픽스 등에서 GPU 를 가속기로 활용할 수 있습니다.”
슈퍼 컴퓨팅
많은 현대 슈퍼컴퓨터들은 저렴하고 강력한 일반 피씨들을 클러스터로 묶어서 구현합니다. 250대 정도의 피씨만 있으면 세계 500대 슈퍼컴퓨터 순위 안에 진입할 수 있습니다. 그러나 8 개의 셀 칩만 있으면 동일한 순위에 들어갈 수 있으며, 560개만 있으면 선두를 기록할 수 있습니다. 이 분야는 하위 호환성이 전혀 필요없는 분야이며 셀이 첫 번째로 함락할 수 있는 분야일 것입니다. 셀 기반 기계들이 피씨 기반 클러스터들이 차지하고 있는 상위 500대 순위를 급속도로 잠식하게 될 것으로 기대됩니다.
프로세서간 통신이 상당히 많이 요구되는 슈퍼컴퓨팅 응용분야에서는 클러스터가 성능을 발휘하지 못합니다. 상위 500대 순위에서는 이것을 측정하지 않지만 이 분야야말로 크레이 같은 거대 슈퍼 컴퓨터가 독점하는 분야이며, 피씨 클러스터는 명함도 못 내미는 분야입니다. 셀은 고속 통신 링크를 갖추고 있으므로 대량의 셀을 연결하기 위한 약간의 연구만 더해지면 이러한 시스템에도 유용할 것입니다. 셀은 피씨 클러스터의 자리를 차지할 뿐만 아니라 크레이 같은 슈퍼컴퓨터 분야에서도 선전할 것입니다.
만약 셀이 64비트 곱셈-덧셈 명령을 가진다면 (아직까지 이 기능이 없다는 것에 놀랐습니다) 셀을 8,000개 동원하여 페타플롭**을 달성할 수 있을 것입니다. 이 기록을 깨는 것은 매우 어려울 것입니다.
** 이론값을 바탕으로 한 것으로서, 효율을 따진다면 더 많은 셀이 필요할 것입니다.
서버
서버는 벡터화되기 매우 어려운 분야로서, XML 같은 종류의 작업은 APU 의 도움을 전혀 받지 못할 것이지만 고속 메모리는 도움이 될 것입니다. (이는 XML 의 비효율성에 기인한 예외적인 일입니다.) 그러나 서버는 일반적으로 데이터베이스의 지원을 많이 요구합니다.
실제 데이터를 취급하는 상업용 데이터베이스는 GPU 를 활용하는 방법이 연구 개발되었습니다. 이런 작업들은 셀에서도 동일한 가속 성능을 기대할 수 있을 것입니다. 따라서 서버도 셀의 혜택을 누릴 수 있을 것입니다.
스트림 프로세싱 응용프로그램
일반 CPU 와의 가장 큰 차이점은 APU 를 서로 연결하여 스트림 프로세서로 활용할 수 있는 능력입니다. 스트림 프로세서는 데이터의 흐름을 받아서 여러 단계로 처리합니다. 각 단계는 서로 다른 APU 나 심지어 다른 셀에 있는 APU 에서 처리될 수도 있습니다.
예: 디지털 TV 수신기
스트림 프로세싱의 예로서 디지털 TV 를 수신하는 셋톱박스를 들어보겠습니다. 이것은 단지 MPEG 영화 재생보다 훨씬 복잡하여 추가로 완전히 다른 프로세스가 동원됩니다. 스타 트랙 한 편을 재생하기 위해서는 아래와 같은 과정이 요구됩니다.
COFDM demodulation
Error correction
Demultiplexing
De-scrambling
MPEG video decode
MPEG audio decode
Video scaling
Display construction
Contrast & Brightness processing
커스텀 하드웨어와 전용 DSP 들이 위의 작업을 수행하는 데 동원됩니다. 소프트웨어로 구현할 수도 있지만 위의 과정을 일부가 아닌 전체를 구현하기 위해선 아주 엄청난 CPU 성능이 필요할 것입니다. 게다가 이것은 단지 일반해상도 MPEG2 입니다. H.264 의 고해상도의 겨우 심각하게 높은 프로세싱 성능이 필요합니다. 범용 CPU 가 이것을 처리하기에는 비효율적이므로 일반적으로 커스텀 칩을 이용하는 것이 쉽고 저렴하지만, 개발이 어렵고 대량생산과 저전력을 실행해야만 가격을 낮출 수 있습니다.
이 작업은 벡터화가 가능하며 작업 순서들은 모두 스트림화할 수 있습니다. 셀 프로세서로 이 작업을 각 단계별로 한 개 혹은 여러 개의 APU 들이 순차적으로 수행할 수 있도록 만들 수 있으며, 따라서 커스텀 칩을 쓸 필요가 없고 새로운 표준을 소프트웨어로 업데이트할 수 있습니다. 셀의 성능은 칩 하나로 모든 작업을 수행할 수 있을 정도이며, 도시바는 셀을 HDTV 에 채용할 계획입니다.
가속되지 않는 응용프로그램
셀 프로세서로 가속이 불가능한 소프트웨어들도 많으며 쉽게 가속기를 구현할 수 없는 프로그램도 있습니다. 예를 들어 셀을 서버 시장에서 구경하기는 어려울 것입니다.
그러나 많은 성능이 요구되지 않거나 셀의 가속기를 활용할 필요가 없는 피씨 시장에서도 인텔과 AMD 등은 다중 코어 x86 을 선보일 것입니다. 그렇다면 만약 셀이 대체적으로 높은 성능과 더불어 저렴한 가격을 가지게 된다면 어떻게 될까요?
피씨는 지금껏 유례가 없는 치열한 경쟁 시장입니다. 당장은 셀이 쉽게 이길 수 있지만, 쉽게 자리를 뺏길 수 있습니다. 4장에서는 앞으로 펼쳐질 배틀 로얄을 살펴보겠습니다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 0