"GPU는 더 이상 단순히 특화된 그래픽스 프로세서가 아니다. 그것들은 고성능 계산 엔진이다. 그리고 소위 이종 플랫폼이라고 일컬어지는 CPU와 GPU를 조합한 플랫폼은 표준적인 컴퓨팅 구성 요소를 진정 다시 정의하고 있다." - 서문 中에서


최근 컴퓨터에 근본적인 변화가 찾아왔는데 기존에는 단순한 성능 자체가 혁신의 주요 요소였다. 하지만 이제는 성능 만큼이나 전력 효율성이 중요한 요소가 되고 있다. 1의 성능을 내는 싱글코어보다 1/2의 성능을 내는 두 개의 코어로 이뤄진 듀얼코어가 전력효율성이 더 높다고 한다. 이런 이유로 멀티코어는 거스를 수 없는 추세인 것이다. 그런데 이 코어들이 같은 종류인 것보다 각각의 기능에 특화된 코어들로 이루어진 이종일 때 전력효율이 더 좋다고 한다. 그 이유는 책에서 직접 확인해 보기 바란다.


이렇게 특화된 칩으로 이루어진 다수의 코어를 매니코어라고 한다. 저자는 앞으로 하드웨어의 추세는 이종 매니코어 플랫폼의 세상이 될 것이라고 말한다. 나도 100% 동의하는 바이다.


OpenCL은 산업계 표준으로 CPU와 GPU등 여러 프로세서들이 조합된 시스템을 프로그래밍하기 위한 표준 프레임워크다. OpenGL로 유명한 크로노스 그룹이 OpenCL 표준화를 주도하고 있으며 소프트웨어 제조사, 컴퓨터 시스템 설계 회사, 마이크로프로세서 제조사들이 참여하고 있다고 한다.


OpenCL은 그 명세만 거의 400페이지에 이른다고 하는데 이 책은 그 중 중요한 것들을 추려내서 잘 정리해 놓은 느낌이다. 책 내용은 크게 두 파트로 나뉘어 있는데 첫번째 파트는 OpenCL 명세를 기술한다. 첫번째 파트의 첫 장은 OpenCL의 개념에 대해 설명하고 있다. 다음 장부터는 일명 HelloWorld를 찍는 것부터 시작해서 실제 코드를 통해 OpenCL을 배우게 된다.  


두번째 파트에서는 OpenCL을 적용할 수 있는 사례들을 제시하고 있다. 이미지 히스토그램, Sobel 경계선 검출 필터, Dijkstra의 단일소스 최단경로 그래프 알고리즘, Bullet 물리 SDK의 옷 시뮬레이션, 고속 푸리에 변환(FFT)으로 Ocean 시뮬레이션하기, Optical Flow, PyOpenCL로 OpenCL 사용하기, OpenCL로 행렬곱셉하기, 희소 행렬-벡터 곱셈 등의 사례를 다루고 있다. 


솔직히 평소 OpenCL이라는 용어를 얼핏 들어보기는 했지만 개념조차도 정확히 모르고 있었다. 이 책을 통해 이종 플랫폼, 매니코어, 그리고 OpenCL의 개념이 어느 정도 정리됐고, 활용 방안에 대해서도 고민해 볼 수 있었다.

저작자 표시
신고
Posted by 가리봉맨