본문 바로가기

일상 이야기/추천도서

OpenCL 프로그래밍

OpenCL 프로그래밍


Open CL이 무엇인가?

OpenCL(Open Computing Language)은 개방형 범용 병렬 컴퓨팅 프레임워크입니다. 이기종 간의 효율적인 프로그래밍을 위해 만들어진 프레임워크라고 할수 있겠죠. 


Open CL은 애플이 최초로 개발했으며 상표권도 애플이 가지고 있습니다. 그후에 AMD, Intel, nVidia 등과 함께 애플은 문서를 다듬어서 최초로 크로노스 그룹에 제출하게 되었지요. 그 후 2008년에 공식적인 발표를 하게 되었습니다.


책의 구성

이책은 크게 두파트로 나뉘어져 있습니다.

1장부터 5장은 병렬처리 프로그래밍과 OpenCL에 대한 소개를 6장부터 8장은 실제로 OpenCL을 사용할 때 유용하게 사용할 수 있는 비결에 대해 소개해 주고 있습니다.


상세 목차 

CHAPTER 1 병렬 프로그래밍 

CHAPTER 2 OPENCL 

CHAPTER 3 OPENCL 개발 환경 

CHAPTER 4 호스트와 디바이스 

CHAPTER 5 OPENCL C 언어 

CHAPTER 6 고속 푸리에 변환과 난수 생성 프로그램 만들기 

CHAPTER 7 OPENCL의 변화 

CHAPTER 8 OPENCL 함수 레퍼런스 


이 책의 장점


1. 이해도 높은 설명

책의 초반부에서 Open CL에 대한 기본 개념과 Intel, AMD, nVidia등의 경쟁회사들의 제품을 예로 들면서 Open CL이 왜 필요한지에 대해서 충분히 설명하고 있습니다. 본격적으로 본문에 들어가게 되면 함수, 벡터, 메모리 할당 방법등에 대해 아주 잘 설명된 책입니다. 특히나 주요 부분마다 부가 설명을 달아 놓아 저자의 섬세함까지 엿볼수 있는 책이 아닌가 생각됩니다.


2. 낯선 내용을 위해 충분한 예제코드

개인적으로 개발자라면 글자보다 코드가 좀더 이해가 쉬울거라 생각합니다. (다분히 저만의 생각입니다.^^) 책을 읽어가며 난해한 내용들은 책에서 그에 대한 알뜰한 예제코드를 통해 한번더 이해를 높여주고 있습니다. 예제코드는 각 구문마다 주석처리가 되어 있어 읽는사람이 전체적인 흐름을 쉽게 파악할 수 있도록 해놓았습니다.


3. 기본 내용전달을 위한 상세한 그림들

저는 새로운 언어나 기술들을 배울때 기본 설치 방법, 사용법등이 가장 어려웠습니다. 하지만 이책은 그부분에 대해 글뿐만이 아니라 상세한 그림들을 통해 설명을 하고 있어 초보자가 따라하기에 충분히 가능하리라는 생각이 들 정도로 잘 설명해 놓았습니다. Open Cl의 개발환경 뿐만아니라 하나의 OS가 아닌 많이 사용되는 OS별로 설치하는 방법까지 잘 설명되어 있습니다.


4. 부담서럽지 않은 번역

많은 개발자 분들이 생각하시듯 번역본의 가장 큰 단점이 우리나라 정서나 어법에 잘 맞지 않는다는 단점이 있습니다. 하지만 이책은 그러한 불편함이 거의 없을 정도로 잘 번역된 책입니다.


5. 나에게 있어서 또하나의 레퍼런스 서적

개인적으로 OpenCL에 대한 Object Api 함수들을 하나하나 상세히 설명해 주고 있고 Document마냥 기능, 리턴값등을 상세히 작성해 놓아 필요할 때마다 참고할 만한 아주 좋은 책이라 생각됩니다.


아쉬운점

1. 마냥 초보자는 어려운 책!

책의 서두에 "OpenCL 프로그래밍은 C언어를 이해한다는 전제 아래에 쓰였습니다." 라는 문구가 있습니다. 저도 나름 C언어에 대해 이해한다고 생각하고 있었지만 그렇다고 쉽게 이해되는 책은 아니었습니다. 어느정도의 난이도 있는 이해도가 필요한것 같습니다.


2. 칼라 그림이 아쉽다.

언제나 책을 읽을때마다 아쉬운 부분입니다. 그림만이라도 칼라가 되었으면 하는 생각은 아직도 변함이 없네요. ㅎㅎ


마무리

OpenCL에 대해 비록 잘알지 못하지만 책을 읽어나가면서 아!, 이런거구나! 라는 감탄사를 내뱉으면서 책을 읽어 나갔습니다. 쉬운 내용이 아니기에 다소 어려운 내용들이지만 저자의 꼼꼼함과 상세한 설명으로 그나마 이해는 쉽게쉽게 해나갈수 있는 좋은 책이었습니다.

CPU, GPU에 대한 병렬프로그래밍이 궁금하신 분들은 "OpenCL 프로그래밍" 이책을 강력히 추천합니다.