|
GPGPU 위한 ATI Stream 지원하는 카탈리스트 8.12!
최근 GPU 제조사들 사이에서 GPGPU (General-Purpose Graphics Processing Units) 지원에 많은 노력을 기울이고 있고 사용자들은 어렵지 않게 GPGPU라는 말을 들을 수 있다. GPGPU를 그래픽 시장에 본격적으로 홍보하기 시작한 곳은 NVIDIA이고 이를 위한 CUDA 기술 소개와 이를 지원하는 프로그램들이 시장에 본격적으로 등장하고 있다.
반면, AMD는 GPGPU 개발이 이루어지지 않은 것은 아니지만, 일반 사용자들에게 실질적으로 보여지는 부분에서는 이제서야 등장하는 것으로 볼 수 있다. AMD의 경우 CPU와 GPU 간의 협력에 관한 부분 등을 고려하여 시장에 늦게 내놓았다고 언급하고 있으나 어쨌든 늦게 등장한 다는 사실은 변함이 없다.
하지만, 그래픽 카드 시장을 주도하고 있는 AMD ATI나 NVIDIA 모두 GPU의 병렬 컴퓨팅, CPU가 하던 일 중 GPU가 잘할 수 있는 일에 투입함으로써 처리성능 향상 등의 효율을 높일 수 있게 된다는 점에서 고무적이고 AMD의 ATI Stream의 등장으로 이제 본격적인 GPGPU 경쟁이 시작되었다는 것을 말해주고 있다.
특히, 이번 카탈리스트 8.12 드라이버의 업데이트를 통해 ATI Stream을 본격적으로 지원하기 시작하여 NVIDIA CUDA의 한판 승부가 예상된다.
GPU 병렬 데이터 컴퓨팅 환경은 고성능을 요구하는 서버나 워크스테이션 시장 뿐만 아니라 일반 데스크탑 환경과 게이밍 환경에서 증대되는 처리 성능을 보완하기 위해 등장한 기술로 AMD는 ATI Stream을 통해 GPU의 강점을 CPU가 처리할 수 있는 일을 도와 효율성을 높여줄 것으로 기대되고 있다.
경쟁사인 NVIDIA CUDA가 기존의 GeForce 8 시리즈 이상의 GPU를 사용하는 사용자들이 모두 사용할 수 있었던 것처럼 AMD의 ATI Stream도 HD 4000 시리즈 이상을 사용하면 이를 사용할 수 있다. 하지만, 아직까지 HD 2000/ 3000 시리즈들의 지원이 현재까지 제외되고 있어 지원 GPU 비율로 보면 경쟁사보다 부족하다. 하지만, ATI 어비보 컨버터와 같은 ATI Stream 지원 무료 트랜스코딩 지원을 비롯하여 개발자가 쉽게 사용할 수 있는 개발 툴 등을 제공함으로써 앞으로 많은 어플리케이션의 등장이 예상되고 있다.
ATI Stream이 어떤 기술일지 궁금할 것인데 ATI Stream은 경쟁사인 NVIDIA가 GPU 병렬 데이터 컴퓨팅을 위해 지원하고 있는 CUDA와 같은 GPGPU 소트프웨어 기술이라고 설명할 수 있다. AMD ATI Stream은 CPU가 처리해야할 로드와 GPU의 로드를 분산하여 균형있게 처리함으로써 처리성능 향상과 효율을 높일 수 있도록 해준다. 참고로 AMD의 경우 경쟁사인 NVIDIA CUDA보다 CPU와 GPU 간의 처리 효율을 높였다고 발표했다.
ATI Stream은 업계 표준을 중시 (공개 표준인 OpenCL 지원)
AMD의 ATI Stream은 공개 표준을 중시하는 정책을 펴나가고 있는데 이러한 이유는 과거 특정 API의 경우 일부 인기를 누리기도 하였으나 사장되었던 기술들은 대부분 독자 개발한 비공개 기술들이었다는 점을 들었다.
AMD도 NVIDIA CUDA가 GPU 컴퓨팅 분야를 활성화시켜 놓은 좋은 기술임을 인정하고 있으나 결국 많은 기업들에 열린 공개 표준만이 궁극적인 발전 방향으로 보고 있는 점이 NVIDIA와 AMD의 차이이기도 하다. 하지만, 그래픽 카드가 중심인 NVIDIA는 CPU와 GPU를 모두 만드는 AMD와 인텔과는 다른 입장이기 때문에 NVIDIA는 CUDA와 같은 자사의 GPU에 최적화된 기술을 적용할 수밖에 없는 이유도 있다.
그러나, NVIDIA CUDA 역시 공개 표준인 OpenCL을 도입하여 다양한 플랫폼 개발 환경을 비롯하여 다양한 언어 등을 추가함으로써 개발자들의 편의성을 높이고 있는 점은 공개 표준으로 제시된 OpenCL을 무조건 배척하기에는 장점들이 있으므로 CUDA에 이런 장점들을 적용하게 되는 것이다.
참고로 OpenCL은 애플을 주축으로 하는 OpenCL 워킹그룹에 포함된 AMD, 인텔, IBM, NVIDIA, 삼성 등 다양한 기업들이 참여하는 공개 표준으로 1.0 버전이 승인된 상태이다. OpenCL은 AMD ATI Stream이나 NVIDIA CUDA가 GPU 병렬 컴퓨팅에 중점을 둔 것과 달리 다양한 CPU (x86 CPU, Cell, DSP 등)나 플랫폼 등에도 적용할 수 있어 범용적이고 개방된 소프트웨어 기술이다.
마이크로소프트의 DirectX 11부터는 GPGPU 지원을 위해 Compute Shader를 도입하여 GPU 병렬 컴퓨팅을 위한 기술들이 포함되는데 마이크로소프트 역시 많은 기업들에 의해 지지되어 공개 표준으로 제시된 OpenCL을 벗어난 독자적인 기술을 만들기보다는 이를 활용하는 방향이 될 것으로 예상되므로 연장선에 있는 ATI Stream은 마이크로소프트이 이런 방향을 제대로 적용할 수 있고 서로 협력할 수 있게 된다.
AMD의 ATI Stream은 자유롭고 공개된 고레벨 언어인 Brook+, 개발 툴과 Havok 등과 같은 미들웨어를 비롯한 ATI Stream SDK (소프트웨어 개발 킷)를 제공하고 CAL (Compute Abstraction Layer)을 통해 ATI GPU와의 효율적인 사용을 가능하게 해준다. 또, AMD는 공개 표준인 OpenCL과 DirectX, OpenGL 등을 활용한 다른 CPU나 GPU를 활용 가능한 크로스플랫폼 개발 환경을 크게 확대시키기 위한 노력을 하고 있어 GPU 병렬 컴퓨팅의 미래를 밝게 보고 있다.
AMD에서 공개한 ATI Stream SDK 1.3에서는 Brook+의 성능 향상을 비롯하여 FireStream 9270, Radeon HD 4600/ 4550/ 4350 등의 GPU들에서도 ATI Stream을 활용할 수 있도록 만들어주고 있다. 이후 2009년 1분기 공개될 1.4버전에서는 멀티 GPU 지원을 비롯하여 데이터 공유 및 처리에 향상 등을 제공하며, Radeon HD 4870 X2, FirePro 3D V3750/ V5700/ V7750/ V7770, V8700/ V8750의 GPU들을 추가로 지원할 것으로 알려지고 있다.
AMD는 2006년부터 본격적인 개발에 들어간 GPGPU 활용이 현재 처리 성능이 크게 향상된 GPU들을 활용함으로써 이전보다 처리성능이나 효율이 크게 증대되고 있고 ATI Stream 기술을 통해 서버나 워크스테이션 시장의 HPC (High Performance Computing) 요구를 충족해주며, 데스크탑 시장에서도 GPGPU 기술을 활용함으로써 사용자들의 성능 향상에 대한 요구를 충족시켜줄 수 있을 것으로 기대되고 있다.
다양한 어플리케이션에 적용될 수 있는 ATI Stream!
GPU의 병렬처리 성능이 CPU의 처리 성능보다 우수하여 이를 CPU가 할 수 있는 일들에 적용한다고 할지라도 이를 지원하고 있는 프로그램들이 없다면 의미가 없다. NVIDIA CUDA처럼 ATI Stream도 물리연산이나 어도비 CS4 프로그램들, 파워디렉터 7, Arcsoft의 DVD 업스케일링 프로그램, 마이크로소프트의 윈도우 비스타나 인코더, 파워포인트 2007 등 다양한 ATI Stream 지원 프로그램들이 등장하고 있다.
|