본문 바로가기

도서 소개

OpenCL을 이용한 이종 컴퓨팅(제2판)

 

그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.

 

병렬 프로그래밍의 표준, OpenCL 교과서!

OpenCL 프레임워크를 이용하여 흥미롭고 유용한 애플리케이션을 개발하자!

 

출판사 제이펍

원출판사 Morgan Kaufmann

원서명 Heterogeneous Computing with OpenCL, Second Edition: Revised OpenCL 1.2 Edition(원서 ISBN: 9780124058941)

저자명 베네딕트 R. 개스터, 리 호위, 데이비드 R. 캐리, 퍼하드 미스트리, 다나 샤

역자명 김성민

시리즈 없음

출판일 2014년 5월 16일

페이지 388쪽

판  형 4X6배판 변형(188*245)

제  본 무선(soft cover)

정  가 28,000원

ISBN 978-89-94506-91-3 (93000)

키워드 병렬 프로그래밍 / CPU / GPU / OpenCL

분야 하드웨어 / 병렬 프로그래밍

 

관련 사이트

아마존 도서소개 페이지

원출판사 도서소개 페이지

 

관련 포스트

■ 2014/05/01 - [출간전 책소식] - 고성능의 CPU/GPU 시대엔 이종 컴퓨팅!

 

관련 시리즈

■ (없음)

 

소스 코드 다운로드

■ http://www.heterogeneouscompute.org/?page_id=7

 

강의 자료

1판 그림 파일 및 예제 다운로드(영문)

■ 교재로 채택하신 분들에게는 강의교안 제작에 도움이 되도록 본문 이미지 자료(번역서)를 보내드리도록 하겠습니다(출판사로 메일이나 전화로 연락주세요). 

 

샘플 PDF(차례와 역자 머리말, 추천사 등의 앞부속물, 1장 병렬 프로그래밍 소개)

OpenCL을이용한이종컴퓨팅(제2판)_본문샘플.pdf
다운로드

 

정오표 페이지

http://jpub.tistory.com/594

 

 

도서구매 사이트(가나다순)

[강컴]   [교보문고]   [도서11번가]   [반디앤루니스]   [알라딘]   [예스이십사]   [인터파크]

 

도서 소개
병렬 프로그래밍의 표준, OpenCL 교과서!
OpenCL 프레임워크를 이용하여 흥미롭고 유용한 애플리케이션을 개발하자!
 
《OpenCL을 이용한 이종 컴퓨팅(제2판)》은 OpenCL과 함께 다양한 디바이스 아키텍처를 포함하고 있는 복잡한 시스템을 위한 병렬 프로그래밍에 관해서 설명하고 있다. 다양한 디바이스 아키텍처란 멀티 코어 CPU, GPU, 그리고 AMD의 퓨전 기술처럼 완전히 통합된 가속 프로세싱 유닛(APU) 등이다. OpenCL은 여러 플랫폼에서 동작하고 다양한 제조사의 지원을 받도록 설계되었기 때문에 이종 환경의 미래를 위해 더욱 효율적인 프로그래밍이 가능하다.
 
병렬 컴퓨팅과 OpenCL 커뮤니티 리더들에 의해 쓰인 이 책은 기본적인 병렬 알고리즘의 영역을 다루기 위해 직접 실행해볼 수 있는 OpenCL 경험들을 제공한다. 저자는 메모리 공간, 최적화 기술, 그래픽 상호작용, 확장, 그리고 디버깅과 프로파일링까지 다룬다. 개정판에 추가된 다양한 케이스 스터디와 예제는 고성능 알고리즘, 이종 시스템에서의 작업 분배, 임베디드된 도메인 특정 언어 등에 대해 설명하고 있다.
 
이 책의 특징은 다음과 같다.
  • 이 개정판은 새로운 아키텍처와 기능을 포함하여 OpenCL 1.2의 최신 내용 대부분을 다루고 있다.
  • 새로운 장은 이미지 처리, 데이터 관리, 그리고 C/C++뿐만 아니라 다른 언어를 사용하여 OpenCL을 활용하는 내용도 다룬다.
  • OpenCL을 사용하여 병렬 프로그래밍을 배우기 위한 원리와 전략에 대해서 설명한다. 네 개의 추상 모델을 이해하는 것부터 완벽한 애플리케이션을 테스트하고 디버깅하는 것까지 포함된다.
  • 이미지 프로세싱, 웹 플러그인, 파티클 시뮬레이션, 비디오 에디팅, 성능 최적화 등을 다룬다.
  • 자세한 예제와 함께 추가적인 온라인 연습문제, 그리고 강의 지원을 위해 강사용 자료들도 제공한다.
  • 기본적인 프로그래밍 테크닉을 다루고 있으며, 다양한 하드웨어 플랫폼을 위한 OpenCL 확장의 예를 보여주는 예제와 케이스 스터디를 포함하고 있다.
 
저자 소개
베네딕트 R. 개스터(Benedict R. Gaster)
차세대 이종 프로세서를 위한 프로그래밍 모델을 다루는 소프트웨어 아키텍트다. 특별히 GPU와 GPU 같은 엑셀러레이터를 포함한 프로세서에 대한 병렬 프로그래밍의 상위 레벨 추상화에 대해 관심이 많다.
 
리 호위(Lee Howes)
지난 3년 반을 AMD에서 일해 왔으며, 주로 GPU 컴퓨팅과 그래픽스 프로그래밍과 관련된 토픽에서 일했다. 리는 현재 미래의 이종 컴퓨팅에 대한 프로그래밍 모델에 관심이 많다.
 
데이비드 R. 캐리(David R. Kaeli)
현재 노스이스턴 대학의 ECE 교수이자 공과대학의 학장을 맡고 있다. 또한, NUCAR(the Northeastern University Computer Architecture Research Laboratory)를 이끌고 있기도 하다.
 
퍼하드 미스트리(Perhaad Mistry)
노스이스턴 대학의 박사과정에 있다. NUCAR(the Northeastern University Computer Architecture Research Laboratory)의 멤버이며, 데이비드 캐리 박사가 그의 지도교수다.
 
다나 샤(Dana Schaa)
캘리포니아 폴리텍 스테이트 대학의 컴퓨터 엔지니어링 분야에서 학사 학위를 받았으며, 석사는 노스이스턴 대학에서 전자 및 컴퓨터 공학으로 받았다. 현재 박사과정 중이다. 병렬 프로그래밍 모델과 추상화, 특히 GPU 아키텍처 분야에 관심이 많다.
 
역자 소개
김성민 
한국에서 컴퓨터 공학을 전공하고 벤처에서 약 8년 동안 일하다가 좀 더 심오한 공부를 하고자 유학길에 올랐다. 미국에서 컴퓨터 공학으로 박사학위를 받았고, 현재 실리콘밸리에 있는 한 벤처에서 시스템 아키텍트로 근무 중이다. 최근에는 이종 컴퓨팅 관련 연구에 매진하고 있으며, 샌프란시스코에서 아내와 두 딸과 함께 살고 있다.
 
차례
1장 병렬 프로그래밍 소개 _ 1
소개 _ 1
OpenCL _ 2
이 책의 목적 _ 3
병렬화란? _ 3
동시성과 병렬 프로그래밍 모델 _ 9
책의 구성 _ 14
 
2장 OpenCL 소개 _ 19
소개 _ 19
플랫폼과 디바이스 _ 25
실행 환경 _ 28
메모리 모델 _ 38
벡터 덧셈의 전체 소스 코드 예제 _ 42
C++ 래퍼를 사용한 벡터 덧셈 _ 45
요약 _ 47
 
더보기
 3장 OpenCL 디바이스 아키텍처 _ 49
소개 _ 49
하드웨어 트레이드 오프 _ 50
아키텍처 디자인 공간 _ 68
요약 _ 80
 
4장 OpenCL 기본 예제 _ 83
소개 _ 83
예제 프로그램 _ 84
OpenCL 호스트 애플리케이션 컴파일하기 _ 104
요약 _ 104
 
5장 OpenCL의 동시 실행과 실행 모델에 대한 이해 _ 107
소개 _ 107
커널, 워크아이템, 워크그룹과 실행 도메인 _ 107
OpenCL 동기화: 커널, 펜스, 그리고 베리어 _ 111
큐잉과 글로벌 동기화 _ 115
호스트 측 메모리 모델 _ 133
디바이스 측면의 메모리 모델 _ 141
요약 _ 151
 
6장 CPU/GPU에서의 OpenCL 구현에 대한 해부 _ 153
소개 _ 153
AMD 불도저 CPU에서의 OpenCL _ 153
AMD의 RADEON HD7970 GPU에서의 OpenCL _ 160
OpenCL에서 메모리 성능 고려 _ 173
요약 _ 185
 
7장 데이터 관리 _ 187
메모리 관리 _ 187
분리된 환경에서 데이터 전송 _ 190
공유 메모리 환경에서 데이터 저장 _ 193
예제 애플리케이션 – 워크그룹 감소 _ 197
 
8장 OpenCL 케이스 스터디: 콘볼루션 _ 205
소개 _ 205
콘볼루션 커널 _ 206
결론 _ 217
코드 리스팅 _ 218
 
9장 OpenCL 케이스 스터디: 히스토그램 _ 229
소개 _ 229
워크그룹의 수 선택 _ 230
최적의 워크그룹 크기 선택 _ 231
글로벌 메모리 데이터 액세스 패턴의 최적화 _ 232
어토믹을 사용한 로컬 히스토그램의 성능 향상 _ 235
로컬 메모리 액세스의 최적화 _ 236
로컬 히스토그램 감소 _ 239
글로벌 감소 _ 239
전체 커널 코드 _ 240
성능과 요약 _ 242
 
10장 혼합 파티클 시뮬레이션 _ 245
소개 _ 245
연산에 대한 소개 _ 246
GPU 구현 _ 248
CPU 구현 _ 252
로드 밸런싱 _ 253
성능 및 요약 _ 254
동일 그리드 생성을 위한 커널 _ 256
시뮬레이션을 위한 커널 _ 257
 
11장 OpenCL 확장 기능 _ 261
소개 _ 261
확장 메커니즘 소개 _ 261
디바이스 분할 _ 266
배정밀도 _ 277
 
12장 다른 프로그래밍 언어 지원: OpenCL 플러그인 _ 287
소개 _ 287
C와 C++ 이후 _ 287
하스켈의 OpenCL _ 290
요약 _ 299
 
13장 OpenCL 프로파일링과 디버깅 _ 301
소개 _ 301
이벤트를 이용한 프로파일링 _ 303
AMD 가속 병렬 프로세싱 프로파일러 _ 305
AMD 가속 병렬 프로세싱 커널애널라이저 _ 312
AMD APP Profiler의 사용 방법 _ 314
OpenCL 애플리케이션의 디버깅 _ 319
GDEBUGGER에 대한 개요 _ 320
AMD PRINTF 확장 _ 324
요약 _ 324
 
14장 이미지 분석 애플리케이션의 성능 최적화 _ 325
소개 _ 325
알고리즘 설명 _ 326
멀티스레드 CPU 구현을 OpenCL로 이동 _ 330
성능 최적화 _ 335
소비전력과 퍼포먼스 분석 _ 352
요약 _ 353