이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

중고도서 C++ AMP
Visual C++와 GPGPU를 이용한 대규모 병렬 프로그래밍
판매자
문득 책이 읽고 싶어질 때
판매자 평가 0 0명 평가
중고샵 판매자가 직접 등록/판매하는 상품으로 판매자가 해당 상품과 내용에 모든 책임을 집니다.

이미 소장하고 있다면 판매해 보세요.

  •  한정판매의 특성상 재고 상황에 따라 품절 가능

중고도서 소개

상
사용 흔적 약간 있으나, 대체적으로 손상 없는 상품?

책소개

목차

CHAPTER 1 C++ AMP 접근법 개요
1.1 왜 GPGPU인가? 이기종 컴퓨팅은 무엇인가?
__1.1.1 성능 개선의 역사
__1.1.2 이기종 플랫폼
__1.1.3 GPU 아키텍처
__1.1.4 병렬 처리를 통한 성능 개선 여지
1.2 CPU 병렬 처리 기술
__1.2.1 벡터화
__1.2.2 OpenMP
__1.2.3 동시성 런타임과 병렬 패턴 라이브러리
__1.2.4 태스크 병렬 라이브러리
__1.2.5 윈도 고급 래스터화 플랫폼
__1.2.6 GPU 병렬 처리 기술
__1.2.7 병렬 처리에 성공하기 위한 요건
1.3 C+ + AMP 접근법
__1.3.1 GPGPU를 주류가 되게 만든 C+ + AMP
__1.3.2 C+ + AMP는 C가 아닌 C+ +
__1.3.3 C+ + AMP는 여러분이 이미 알고 있는 도구
__1.3.4 C+ + AMP는 거의 대부분 라이브러리
__1.3.5 C+ + AMP는 먼 훗날까지 그대로 실행될 수 있는 이식성 있는 코드
1.4 요약

CHAPTER 2 NBody 사례 연구
2.1 예제를 실행하기 위한 준비
2.2 NBody 예제 실행하기
2.3 예제 구조
2.4 CPU 계산
__2.4.1 데이터 구조
__2.4.2 wWinMain( ) 함수
__2.4.3 OnFrameMove( ) 콜백
__2.4.4 OnD3D11CreateDevice( ) 콜백
__2.4.5 OnGUIEvent( ) 콜백
__2.4.6 OnD3D11FrameRenderer( ) 콜백
2.5 CPU NBody 클래스
__2.5.1 NBodySimpleInteractionEngine 클래스
__2.5.2 NBodySimpleSingleCore 클래스
__2.5.3 NBodySimpleMultiCore 클래스
__2.5.4 NBodySimpleInteractionEngine::BodyBodyInteraction( )
2.6 C+ + AMP 계산
__2.6.1 데이터 구조
__2.6.2 CreateTasks( )
2.7 C+ + AMP NBody 클래스
__2.7.1 NBodyAmpSimple::Integrate( )
__2.7.2 BodyBodyInteraction( )
2.8 요약

CHAPTER 3 C++ AMP 기초
3.1 array〈T, N〉
3.2 accelerator와 accelerator_view 클래스
3.3 index〈N〉
3.4 extent〈N〉
3.5 array_view〈T, N〉
3.6 parallel_for_each( )
3.7 restrict(amp)로 표시한 함수
3.8 CPU와 GPU 간의 복사
3.9 수학 라이브러리 함수
3.10 요약

CHAPTER 4 타일링
4.1 타일링의 목적과 장점
4.2 tile_static 메모리
4.3 tiled_extent
4.4 tiled_index〈N1, N2, N3〉
4.5 단순한 알고리즘을 수정해 타일 버전 만들기
__4.5.1 tile_static 메모리 사용하기
__4.5.2 타일 배리어와 동기화
__4.5.3 단순 버전을 타일 버전으로 변경 완료
4.6 타일 크기의 영향
4.7 타일 크기 선택
4.8 요약

CHAPTER 5 타일링한 NBody 사례 연구
5.1 타일링하면 NBody의 성능이 얼마나 향상될까?
5.2 n-body 알고리즘에 타일 사용
__5.2.1 NBodyAmpTiled 클래스
__5.2.2 NBodyAmpTiled::Integrate( )
5.3 동시성 시각화 도우미 사용 방법
5.4 타일 크기 선택
5.5 요약

CHAPTER 6 디버깅
6.1 첫 단계
6.2 GPU 디버깅과 GPU 디버깅 중 선택하기
__6.2.1 참조 가속기
6.3 GPU 디버깅 기초
__6.3.1 익숙한 창과 팁
__6.3.2 디버그 위치 툴바
__6.3.3 경쟁 조건 탐지하기
6.4 스레드 보기
__6.4.1 스레드 마커
__6.4.2 GPU 스레드 창
__6.4.3 Parallel Stacks 창
__6.4.4 Parallel Watch 창
__6.4.5 스레드 플래깅, 그룹화, 필터링
6.5 스레드 상세 제어
__6.5.1 스레드 얼리고 녹이기
__6.5.2 커서 위치까지 타일 실행하기
6.6 요약

CHAPTER 7 최적화
7.1 성능 최적화 방법
7.2 성능 분석
__7.2.1 커널 성능 측정
__7.2.2 동시성 시각화 도우미 사용 방법
__7.2.3 동시성 시각화 도우미 SDK 사용
7.3 메모리 접근 형태 최적화하기
__7.3.1 앨리어스와 parallel_for_each( ) 호출
__7.3.2 GPU와의 효율적인 데이터 복사
__7.3.3 효과적인 가속기 전역 메모리 접근
__7.3.4 구조체의 배열과 배열을 내포한 구조체
__7.3.5 효율적인 타일 static 메모리 접근
__7.3.6 상수 메모리
__7.3.7 텍스처 메모리
__7.3.8 점유율과 레지스터
7.4 계산 최적화
__7.4.1 스레드마다 다르게 분기하는 코드 사용하지 않기
__7.4.2 적절한 정밀도 선택하기
__7.4.3 수학 연산 고려 사항
__7.4.4 루프 펼치기
__7.4.5 배리어
__7.4.6 큐 모드
7.5 요약

CHAPTER 8 성능 사례 연구 - 리덕션
8.1 문제
__8.1.1 작은 주의 사항
8.2 사례 연구 구조
__8.2.1 초기화와 작업 부하
__8.2.2 동시성 시각화 도우미 표식
__8.2.3 TimeFunc( ) 함수
__8.2.4 오버헤드
8.3 CPU 알고리즘
__8.3.1 순차 알고리즘
__8.3.2 병렬 알고리즘
8.4 C+ + AMP 알고리즘
__8.4.1 단순 알고리즘
__8.4.2 array_view를 사용한 단순 알고리즘
__8.4.3 최적화된 단순 알고리즘
__8.4.4 초보 수준의 타일링 알고리즘
__8.4.5 공유 메모리로 타일링한 알고리즘
__8.4.6 타일 안의 스레드를 가능한 동일한 경로로 실행하기
__8.4.7 뱅크 충돌 제거하기
__8.4.8 정지하고 있는 스레드 줄이기
__8.4.9 루프 펼치기
__8.4.10 연쇄 리덕션
__8.4.11 루프를 펼친 연쇄 리덕션
8.5 요약

CHAPTER 9 다중 가속기 사용
9.1 가속기 선택하기
__9.1.1 가속기 나열
__9.1.2 기본 가속기
9.2 다중 GPU 사용
9.3 가속기 간의 데이터 교환
9.4 동적 로드 밸런싱
9.5 브레이드 구조 병렬 처리
9.6 CPU로 돌아가기
9.7 요약

CHAPTER 10 Cartoonizer 사례 연구
10.1 실행 준비
10.2 예제 코드 실행
10.3 예제 구조
10.4 파이프라인
__10.4.1 데이터 구조
__10.4.2 CartoonizerDlg::OnBnClickedButtonStart( ) 메서드
__10.4.3 ImagePipeline 클래스
10.5 파이프라인 만화 효과 단계
__10.5.1 ImageCartoonizerAgent 클래스
__10.5.2 IFrameProcessor 구현
10.6 다중 C+ + AMP 가속기 사용
__10.6.1 FrameProcessorAmpMulti 클래스
__10.6.2 분기된 파이프라인
__10.6.3 ImageCartoonizerAgentParallel 클래스
10.7 만화 효과 처리기 성능
10.8 요약

CHAPTER 11 그래픽스 인터롭
11.1 기초
__11.1.1 norm과 unorm 클래스
__11.1.2 짧은 벡터형
__11.1.3 texture〈T, N〉
__11.1.4 writeonly_texture_view〈T, N〉
__11.1.5 텍스처와 배열 비교
11.2 텍스처와 짧은 벡터 사용
11.3 HLSL 인트린직 함수
11.4 DirectX 인터롭
__11.4.1 가속기 뷰와 Direct3D 장치 인터롭
__11.4.2 배열과 Direct3D 버퍼 인터롭
__11.4.3 텍스처와 Direct3D 텍스처 리소스 인터롭
__11.4.4 그래픽스 인터롭 사용
11.5 요약

CHAPTER 12 C++ AMP 문제 해결
12.1 타일 크기 불일치 문제 처리
__12.1.1 타일 패딩하기
__12.1.2 타일 절단하기
__12.1.3 방법 비교
12.2 배열 초기화
12.3 함수 객체와 람다 비교
12.4 원자성 연산
12.5 윈도 8에 추가된 C+ + AMP 기능
12.6 시간 초과 탐지 및 복구
__12.6.1 TDR 피하기
__12.6.2 윈도 8에서 TDR 비활성화하기
__12.6.3 TDR 탐지하고 복구하기
12.7 배정밀도 지원
__12.7.1 배정밀도 부분 지원
__12.7.2 배정밀도 완전 지원
12.8 윈도 7에서 디버깅
__12.8.1 원격 컴퓨터 설정하기
__12.8.2 프로젝트 설정하기
__12.8.3 프로젝트 배포하고 디버깅하기
12.9 추가된 디버깅 함수
12.10 배포
__12.10.1 애플리케이션 배포
__12.10.2 C+ + AMP를 서버에서 실행하기
12.11 C+ + AMP와 윈도 8 윈도 스토어 앱
12.12 매니지드 코드에서 C+ + AMP 사용
__12.12.1 닷넷 애플리케이션, 윈도 7 윈도 스토어 앱, 라이브러리에서
__12.12.2 C+ + CLR 애플리케이션에서
__12.12.3 C+ + CLR 프로젝트 안에서
12.13 요약

부록 A 참고 자료

저자 소개

저자 : 케이트 그레고리
비주얼 C++ MVP이며 마이크로소프트 지역 책임자다. 2005년과 2010년에 올해의 지역 책임자 상을 수상하고, 올해의 비주얼 C++ MVP로 뽑혔다. 열정적인 강사, 발표자, 저자로 활동 중이며 C++을 20년 넘게 사용해왔다.
저자 : 에이드 밀러
마이크로소프트 스튜디오의 수석 아키텍트다. 병렬 분산 컴퓨팅이 최고의 관심사이며 엔지니어 관점의 리더십을 통해 소프트웨어 개발팀의 개발 방법을 향상시키는 데 관심이 많다.
역자 : 강권학
중앙대학교 컴퓨터공학과에서 학사와 석사 학위를 받았다. 국방과학연구소, 퓨쳐시스템, 안철수연구소에서 13년 간 개발자, 보안전문가, 프로젝트 관리자로 근무했으며, 2009년 4월 호주 멜번에 iGonagi Pty. Ltd.를 설립하고 아이폰 앱을 개발 중이다. 『만들면서 배우는 아이폰 게임 프로그래밍』을 공동으로 저술했고, 『Head First iPhone Development』, 『Head First Programming』, 『Head First Python』, 『iPhone Programming 제대로 배우기』, 『iPhone 3D Programming: using OpenGL ES』(이상 한빛미디어)를 번역했다.

품목정보

발행일
2013년 07월 20일
쪽수, 무게, 크기
404쪽 | 899g | 183*235*30mm
ISBN13
9788968480256

책 속으로

애플리케이션의 실행 속도가 몇 배 더 빨라진다고 해서 라이브러리 코드 한 줄 대신 직접 180줄의 코드를 작성할 프로그래머가 있을까요? 만약 있다면 이 책은 애플리케이션 처리 속도에 목을 매는 그런 개발자를 위한 책입니다. 마이크로소프트는 CUDA나 OpenCL과 달리 C++ 언어로만 모든 것을 표현할 수 있는 C++ AMP 라이브러리를 개발했습니다. GPU의 성능을 이용해 애플리케이션의 속도를 올리려는 개발자는 이제 더욱 쉽고 자연스럽게 GPU를 이용할 수 있게 되었습니다.
GPU는 얼마나 빠를까요? 흔히들 GPU는 일반 CPU보다 100배 이상 빠르다고 합니다. 그러나 GPU는 단순 연산을 무수하게 반복하는 알고리즘에 적합한 아키텍처를 갖고 있어서 범용 CPU와 직접 비교하기는 어렵습니다. 그런데 2010년 인텔은 기존에 있던 미신 같은 믿음을 깨려고 다음과 같은 논문을 발표했습니다. 「Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU」(http://dl.acm.org/citation.cfm?id=1816021). 기존에 사람들이 생각하는 것과 달리 GPU는 운영체제 커널을 실행하는 데 CPU보다 단지 16배밖에 빠르지 않다는 내용입니다.
현재 대부분의 PC뿐만 아니라 스마트 폰에도 강력한 GPU가 들어갑니다. 이런 막강한 장치의 처리 능력을 애플리케이션에서 사용하려는 시도는 기존에 CUDA, OpenCL로 진행됐으나, 새로운 언어를 배워야 하거나 특정 제조사의 하드웨어에 국한되어 사용할 수 있다는 제한이 있었습니다. C++ AMP는 이런 제한을 극복하고자 윈도 개발자에게 익숙한 비주얼 스튜디오에서 C++ 라이브러리를 이용해 기존의 CPU 개발 환경과 거의 동일하게 GPU의 능력을 활용할 수 있는 표준을 만들었습니다. 그러나 아직 GPU는 CPU와 달리 하드웨어를 전혀 모르고도 자유롭게 애플리케이션 프로그래밍하듯이 개발할 수는 없습니다. 이 책은 이런 하드웨어 제약 안에서 C++ AMP를 통해 애플리케이션 성능을 극대화하는 방법에 대해 세부적인 기술 및 방법론을 설명합니다. 또한, 예제를 개선해가면서 GPU가 제공하는 하드웨어 스레드, 워프, 타일, 텍스처, 프로그래머블 캐시에 대한 사용법을 하나하나 자세히 전달합니다. 애플리케이션의 성능 향상에 미래가 걸린 개발자에게 이 책이 친절하고도 충실한 도우미가 될 것이라고 생각합니다.
옮긴이_ 강권학

---「옮긴이 서문」

출판사 리뷰

C++ AMP로 만나는 병렬 프로그래밍의 혁신

C++ AMP로 고속 연산과 대규모 병렬 처리를 경험한다

C++ 개발자가 그래픽 처리 장치(GPU)와 대규모 병렬 처리 하드웨어를 이용하면 애플리케이션 처리 성능을 극대화할 수 있다. C++ 전문가 케이트 그레고리와 에이드 밀러가 C++ AMP를 사용해 GPU 프로그래밍을 설명하고, 이를 활용하는 방법을 설명한다.

STL과 함께 쓸 수 있는 GPU 기술
GPU 프로그래밍을 위한 CUDA나 OpenCL 등의 기술과 달리 C++ AMP는 C++ 표준 위원회 멤버인 허브 서터가 주축이 되어 C++ STL과 함께 쓸 수 있는 범용적인 구조로 개발되어 있다. 따라서 STL과 함께 쓸 수 있으며, STL에 익숙한 개발자는 쉽게 익힐 수 있는 장점이 있다.

[주요 내용]
C++와 비주얼 스튜디오 2012로 더 빠른 애플리케이션 제작하기
최상의 속도를 위한 타일 기반 알고리즘 설계
비주얼 스튜디오로 병렬 코드 디버깅하기
성능 측정 도구로 코드의 성능 추적하기
DirectX 플랫폼과 상호 연동

예제 코드:
http://ampbook.codeplex.com
http://www.hanb.co.kr/exam/2025

상품정보안내

  •  주문 전 중고상품의 정확한 상태 및 재고 문의는 [판매자에게 문의하기]를 통해 문의해 주세요.
  •  주문완료 후 중고상품의 취소 및 반품은 판매자와 별도 협의 후 진행 가능합니다. 마이페이지 > 주문내역 > 주문상세 > 판매자 정보보기 > 연락처로 문의해 주세요.

부적합 상품 신고하기

신고하기
  •  구매에 부적합한 상품은 신고해주세요.
  •  구매하신 상품의 상태, 배송, 취소 및 반품 문의는 판매자 묻고 답하기를 이용해주세요.
  •  상품정보 부정확(카테고리 오등록/상품오등록/상품정보 오등록/기타 허위등록) 부적합 상품(청소년 유해물품/기타 법규위반 상품)
  •  전자상거래에 어긋나는 판매사례: 직거래 유도
120,000원
총 1개 120,000원