AMP 병렬프로그램의 기본과 핵심을 담은 책이라고 생각됩니다. 많은 탐독 하시기 바랍니다.
2nd Edition을 기대하겠습니다.
실무에 바로 적용할 수 있는 C++ AMP 프로그래밍의 핵심을 배운다
대용량 영상 데이터 처리를 위한 GPU는 많은 코어를 이용한 병렬 작업을 통해 결과를 도출한다. 단순 수치 연산에 특화된 이러한 GPU의 계산 능력을 다른 분야로 확장하려는 시도인 GPGPU는 이전부터 꾸준히 시도되고 있다. 그러나 GPU 프로그래밍은 어렵고 생소하여 작성이 쉽지 않으며 월등한 성능 향상을 기대하기도 어렵다. 이러한 GPGPU 프로그래밍의 어려움을 해결하고자 여러 프로그래밍 모델이 등장했는데, 그중 하나가 C++ AMP다.
C++ AMP는 GPGPU 프로그래밍을 할 때 가장 편리한 환경이다. Windows 10에서 GPU를 사용하는 앱을 제작하려면 GPU로 구동하는 DLL 엔진을 제작하고 Windows 스토어 앱 프로그램에서 DLL을 호출하여 동작시켜야 하는데, CUDA나 OpenCL 등의 기존 환경은 직접 윈도우 스토어 앱과 연결되는 컴포넌트를 제작할 수 없다. 하지만 C++ AMP는 Windows 스토어 앱에 GPU 엔진 그대로 이용할 수 있다.
이 책은 C++ AMP를 사용할 때 기본이 되는 용어들과 자주 사용하는 구문들을 참고하기 쉽도록 정리하고, GPGPU 프로그래밍을 할 때 키워드나 관용 구문을 암기하지 않고 필요한 코드를 가져다 쓸 수 있게 하여 생산성을 높이고 좀 더 쉽게 개발할 수 있도록 한다. 또한, 실무에서 바로 활용할 수 있게 알고리즘이나 일반적으로 널리 알려진 성능 최적화는 다루지 않고 C++ AMP 언어 본연의 특성만을 소개하였다. 이 책의 모든 예제는 Visual Studio 2015에서 검증하였다.
chapter 1 C++ AMP를 위한 C++ 문법
1.1 함수자
1.2 람다
1.3 std::function
1.4 std::vector, std::array
1.5 std::for_each
1.6 nullptr
1.7 정리
chapter 2 PPL을 이용한 CPU 분산처리 알고리즘 작성
2.1 task
2.2 structured_task_group
2.3 parallel_invoke
2.4 parallel_for
2.5 parallel_for_each
2.6 정리
chapter 3 C++ AMP 기본
3.1 암달의 법칙
3.2 GPU의 종류
3.3 인텔 내장 GPU 아키텍처
3.4 C++ AMP 네임스페이스
3.5 accelerator
3.6 accelerator_view
3.7 array
3.8 array_view
3.9 GPU에서 동작하는 커널 함수 만들기
3.10 메모리 복사 최소화
3.11 커널 함수의 외부 형태
3.12 커널 함수의 내부 제약
3.13 수학 라이브러리
3.14 타일링
chapter 4 C++ AMP 코딩 가이드
4.1 step1. for문을 이용한 C/C++ 알고리즘 코드 작성과 검증
4.2 step2. C++ AMP의 parallel_for_each문으로 코드 수정
4.3 step3. 메모리 복사를 최소화하기 위한 코드 수정
4.4 step4. 캐시메모리를 활용하도록 코드 변경
4.5 정리
chapter 5 C++ AMP 성능 최적화 057
5.1 GPU 연산 시간 측정
5.2 메모리 복사 최소화
5.3 비동기 복사
5.4 공유 메모리
5.5 스테이징 배열
부록 윈도우 10 스토어 앱에서 C++ AMP 이용
A.1 윈도우 10용 UWP 프로젝트 생성
A.2 C++ AMP 라이브러리 제작
A.3 윈도우 10용 UWP 프로젝트에서 사용
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2016-07-19 | 다운로드 |
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.