장바구니 담기 close

장바구니에 상품을 담았습니다.

예제로 배우는 CUDA 프로그래밍

예제로 배우는 CUDA 프로그래밍

  • 제이슨 샌더스
  • |
  • 비제이퍼블릭
  • |
  • 2011-10-26 출간
  • |
  • 328페이지
  • |
  • 188 X 254 X 30 mm /678g
  • |
  • ISBN 9788994774060
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

예제로 배우는 CUDA 프로그래밍: 입문자를 위한 GPGPU 프로그래밍의 기초

“이 책은 가속기 기반(accelerator-based)의 컴퓨팅 시스템에서 작업을 수행하는 이들이 읽어야 할 책이다.” - 잭 돈가라(Jack Dongarra), 테네시 대학 오크리지 국립 연구소 -

《예제로 배우는 CUDA 프로그래밍》은 최근 대용량 병렬 가속기들의 프로그래밍 문제에 대한 가장 혁신적이고 강력한 해결책 중 하나를 이용함으로써 소프트웨어 개발에서의 문제의 핵심을 설명한다.

이 책은 여러분에게 예제, 프로그램을 구성하는 과정, NVIDIA GPU를 효율적으로 사용하는 통찰력을 제공함으로써 CUDA C 프로그래밍에 대한 소개를 한다. 또한 간단한 예제부터 (로직과 성능을 포함한) 디버깅까지 입문자들을 위한 병렬 컴퓨팅의 개념들을 설명한다. 그뿐만 아니라, 고급 주제 및 많은 어플리케이션들을 이용하고 구축하면서 발생하는 문제들도 다루고 있다. 이 책에서는 프로그래밍 예제들을 통하여 제시한 개념들을 보강한다.

CUDA는 병렬 프로그램 개발이 가능하도록 설계된 컴퓨팅 아키텍처다. CUDA 아키텍처는 대규모 소프트웨어 플랫폼에서 프로그래머들이 고성능 어플리케이션을 제작할 때 GPU(그래픽스 프로세서 유닛)의 막강한 성능을 이용할 수 있게 도와준다. 물론 GPU는 오랫동안 그래픽스와 게임 어플리케이션에서 이용 가능하였지만, 지금은 CUDA가 과학, 엔지니어링, 금융을 포함한 다른 분야에서 어플리케이션을 제작하는 프로그래머들에게 GPU의 가치 있는 자원을 제공해준다. 그래픽스 프로그래밍에 대한 지식이 필요 없으며, 단지 조금 확장된 C 언어로 프로그래밍할 수 있는 능력만 있으면 누구나 배울 수 있다.

CUDA 소프트웨어 플랫폼 팀의 두 명의 책임이 집필한 예제로 배우는 CUDA 프로그래밍은 새로운 기술을 이용하는 방법을 프로그래머들에게 보여준다. 저자들은 동작하는 예제들을 통해 CUDA 개발에서의 각 부문을 소개한다. 이 책에서는 CUDA 플랫폼 및 아키텍처에 대한 간결한 소개와 CUDA C에 대한 빠른 학습을 가이드하고 난 후, CUDA의 주요 특징들과 관련된 기술들과 그들 간의 균형 있는 사용법에 대해 상세히 설명한다. 여러분은 이 책에서 CUDA C의 확장 문법들과 정말 뛰어난 성능의 CUDA 소프트웨어를 작성하는 방법을 발견할 것이다.

이 책에 포함된 주요 주제들
- 병렬 프로그래밍
- 원자
- 스레드 협력
- 스트림
- 상수 메모리와 이벤트
- 다중 GPU 상에서의 CUDA C
- 텍스처 메모리
- 고급 원자
- 그래픽스 상호운용성
- 그 외의 CUDA 자원들

여러분이 필요로 하는 모든 CUDA 소프트웨어 툴들은 NVIDIA에서 무료로 다운로드 가능하다.

독자 대상
이 책은 가속 기반의 컴퓨팅 시스템을 이용하여 작업을 수행하는 사람들을 대상으로 하고, 컴퓨팅을 깊이있게 살펴보며 직면할 수도 있는 많은 문제들에 대한 해결 방안들을 제시한다. 특히 어플리케이션 개발자, 수치와 관련된 라이브러리 작성자, 병렬 컴퓨팅을 가르치는 선생님 및 학생들에게 유용하다.

*출판사 리뷰
이 책은 컴퓨터 그래픽 처리 장치(GPU)의 능력을 이용함으로써, 광범위의 어플리케이션들을 위한 고성능 소프트웨어를 작성하는 방법을 보여준다. 원래 GPU는 하나의 모니터 상에서 컴퓨터 그래픽을 렌더링하기 위해 설계되었지만(여전히 이 목적으로 사용되고 있다) 과학, 엔지니어링, 금융 등 다른 분야에서도 동일하게 요구되는 프로그램들 때문에 점점 더 많은 요구를 받고 있다. 우리는 그래픽 분야가 아닌 문제들을 다루는 GPU 프로그램들을 총괄적으로 범용(general-purpose) GPU 프로그램이라고 부른다. 여러분이 이 책으로부터 무언가를 배우기 위해서는 C나 C++에 대한 일부 경험이 필요하겠지만, 다행히도 컴퓨터 그래픽스에 대한 지식은 전혀 필요하지 않다. 여러분은 단순히 여러분의 기존 프로그래밍 기술에 GPU 프로그래밍 기술을 쌓을 수 있는 하나의 기회만 제공받을 뿐이다.

여러분은 범용의 계산 작업들을 수행하는 NVIDIA GPU들을 프로그래밍하기 위해서 CUDA가 무엇인지 알고자 할 것이다. NVIDIA GPU들은 CUDA 아키텍처로 알려진 것을 기반으로 제작되었으며, 이 CUDA 아키텍처는 본래의 그래픽스 렌더링 작업들과 범용의 작업을 수행할 수 있는 GPU를 제작하기 위한 NVIDIA의 의도로 볼 수 있다. CUDA가 가능한 GPU들을 프로그래밍하기 위해서 여러분은 CUDA C라는 언어를 이용할 것이다. 이 책의 도입부에서 보겠지만, CUDA C는 근본적으로 C와 같으며 NVIDIA GPU들과 같은 대용량 병렬 기계들을 프로그래밍 할 수 있게 소수의 확장 문법들을 제공한다.

이 책은 C 코드를 무난하게 읽거나 작성할 수 있을 정도로 C나 C++에 어느 정도 친숙한 프로그래머들을 대상으로 집필되었다. 이 책은 여러분이 C 언어에 어느 정도 경험이 있다는 전제하에 작성되었으며, NVIDIA의 CUDA C 프로그래밍 언어를 빠르게 학습할 수 있도록 예제 중심으로 기술되었다. 여러분이 큰 규모의 소프트웨어 아키텍처를 다뤄봤거나 C 컴파일러 및 운영체제 커널을 작성해 봤거나 ANSI C 표준을 결코 상세히 알고 있을 필요는 없지만, 이 책에서는 C 문법이나 malloc(), memcpy()와 같은 일반 C 라이브러리 함수들을 살펴보기 위한 시간은 할애하지 않는다. 따라서 우리는 여러분이 이러한 것들에 대해서는 이미 상당히 익숙하다고 가정할 것이다.

비록 이 책은 일반 병렬 프로그래밍 패러다임을 다루고 있지 않지만, 여러분은 일반 병렬 프로그래밍 패러다임을 고려해야 하는 일부 기술들과 직면할 것이다. 또한 이 책은 거의 모든 CUDA API들을 살펴보긴 하겠지만 광범위한 API 참고서로서 제공되지는 않을 뿐만 아니라, CUDA C 소프트웨어 개발을 하기 위해 사용할 수 있는 모든 툴에 대해서도 세세하게 다루지는 않을 것이다. 따라서 여러분이 이 책을 NVIDIA에서 무료로 제공하는 문서들, 특히 NVIDIA CUDA Programming Guide와 NVIDIA CUDA Best Practices Guide를 병행해서 보길 강력히 추천한다. 그렇다고 이러한 문서들을 확보하는 데 스트레스 받을 필요는 없다. 왜냐하면 이 책이 여러분이 해야 할 모든 것들을 알려줄 것이기 때문이다.

CUDA C와 함께 NVIDIA GPU 프로그래밍의 세계가 바로 지금 여러분을 기다리고 있다!

목차

1장. 왜 CUDA인가? 왜 지금인가?
1.1 이번 장의 목표
1.2 병렬 프로세싱의 시대
1.3 GPU 컴퓨팅의 도래
1.4 CUDA
1.5 CUDA를 이용한 어플리케이션
1.6 요약

2장. 시작하기
2.1 이번 장의 목표
2.2 개발 환경
2.3 요약

3장. CUDA C에 대한 소개
3.1 이번 장의 목표
3.2 첫 번째 프로그램
3.3 디바이스 정보 질의하기
3.4 디바이스 속성 이용하기
3.5 요약

4장. CUDA C를 이용한 병렬 프로그래밍
4.1 이번 장의 목표
4.2 CUDA 병렬 프로그래밍
4.3 요약

5장. 스레드 협력
5.1 이번 장의 목표
5.2 병렬 블록들을 분할하기
5.3 공유메모리와 동기화
5.4 요약

6장. 상수 메모리와 이벤트
6.1 이번 장의 목표
6.2 상수 메모리
6.3 이벤트를 이용한 성능 측정
6.4요약

7장. 텍스처 메모리
7.1 이번 장의 목표
7.2 텍스처 메모리 개요
7.3 열전달 시뮬레이션
7.4요약

8장. 그래픽스 상호운용성
8.1 이번 장의 목표
8.2 그래픽스 상호운용
8.3 그래픽스 상호운용을 이용한 GPU 물결
8.4 그래픽스 상호운용을 이용한 열전달
8.5 DirectX 상호운용성
8.6 요약

9장. 원자
9.1 이번 장의 목표
9.2 계산 능력
9.3 원자적 연산 개요
9.4 히스토그램 계산
9.5 요약

10장. 스트림
10.1 이번 장의 목표
10.2 잠긴 페이지의 호스트 메모리
10.3 CUDA 스트림
10.4 하나의 CUDA 스트림 이용
10.5 다수의 CUDA 스트림 이용
10.6 GPU 작업 스케줄링
10.7 효과적인 다수의 CUDA 스트림 이용
10.8 요약

11장. 다중 GPU 상의 CUDA C
11.1 이번 장의 목표
11.2 무복사 호스트 메모리
11.3 다수의 GPU 이용하기
11.4 이식이 가능한 고정 메모리
11.5 요약

12장. 최종 카운트다운
12.1 이번 장의 목표
12.2 CUDA 툴
12.3 문서로된 자료
12.4 코드로된 자료
12.5 요약

부록. 고급 원자
A.1 돌아온 내적 예제
A.2 해시 테이블 구현
A.3 요약

저자소개

저자 제이슨 샌더스 (Jason Sanders)는 엔비디아 CUDA 플랫폼 그룹의 책임 소프트웨어 엔지니어다. CUDA 시스템 소프트웨어의 초기 배포판을 개발하는 데 도움을 주었으며 헤테로지니어스 컴퓨팅의 산업 표준인 OpenCL 1.0 스펙에도 기여했다. 그는 ATI 테크놀로지, 애플, 노벨에서 근무한 경험이 있다.

도서소개

『CUDA 프로그래밍』은 CUDA 프로그래밍에 필요한 기본 환경 설정부터 CUDA에서 제공하는 다양한 기능의 활용법을 알려주는 CUDA 프로그래밍 입문서이다. 병렬 프로그래밍, 스레드 협력, 상수 메모리와 이벤트, 텍스처 메모리, 그래픽 상호운용성 등의 다양한 주제를 예제를 통하여 설명하였다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.