
000 | 01320camcc2200385 c 4500 | |
001 | 000045634240 | |
005 | 20110310172402 | |
007 | ta | |
008 | 110310s2011 ulkad b 001c kor | |
020 | ▼a 9788994774008 ▼g 93560 | |
035 | ▼a (KERIS)BIB000012305239 | |
040 | ▼a 241018 ▼c 241018 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 004.35 ▼2 22 |
085 | ▼a 004.35 ▼2 DDCK | |
090 | ▼a 004.35 ▼b 2011 | |
100 | 1 | ▼a Kirk, David, ▼d 1960- |
245 | 1 0 | ▼a 대규모 병렬 프로세서 프로그래밍 : ▼b CUDA를 이용한 실용적 접근 / ▼d 데이비드 B. 커크, ▼e 원메이 W. 후 지음 ; ▼e 하순회, ▼e 김크리스, ▼e 이영민 옮김 |
246 | 1 9 | ▼a Programming massively parallel processors hands-on with approach |
260 | ▼a 서울 : ▼b 비제이퍼블릭, ▼c 2011 | |
300 | ▼a 259 p. : ▼b 삽화, 도표 ; ▼c 23 cm | |
500 | ▼a 부록: 1. 행렬곱셉(호스트 버전 소스코드), 2. GPU 계산 능력 | |
504 | ▼a 참고문헌과 색인수록 | |
650 | 0 | ▼a Parallel programming (Computer science) |
650 | 0 | ▼a Parallel processing (Electronic computers) |
650 | 0 | ▼a Multiprocessors |
650 | 0 | ▼a Computer architecture |
700 | 1 | ▼a Hwu, Wen-mei, ▼e 저 |
700 | 1 | ▼a 하순회, ▼e 역 |
700 | 1 | ▼a 김, 크리스, ▼e 역 |
700 | 1 | ▼a 이영민, ▼e 역 |
900 | 1 0 | ▼a 커크, 데이비드 B., ▼e 저 |
900 | 1 0 | ▼a 후, 원메이 W., ▼e 저 |
945 | ▼a KLPA |
소장정보
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.35 2011 | 등록번호 121206755 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.35 2011 | 등록번호 121206756 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 3 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 004.35 2011 | 등록번호 151316684 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.35 2011 | 등록번호 121206755 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 004.35 2011 | 등록번호 121206756 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
---|---|---|---|---|---|---|---|
No. 1 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 004.35 2011 | 등록번호 151316684 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
C와 유사한 데이터 병렬 프로그래밍 언어인 CUDA를 소개하고, NVIDIA GPU의 현재 아키텍처인 Tesla를 소개하는 책. 프로그래밍 언어와 아키텍처를 설명할 뿐만 아니라, 이종 CPU-GPU 하드웨어에서 잘 수행될 있는 데이터 병렬 문제의 본질을 정의하고 있다.
CUDA를 이용한 실용적 접근은 학생들과 전문가 모두에게 병렬 프로그래밍과 GPU 아키텍처의 기본 개념을 밝혀주며, 병렬 프로그램을 작성하기 위한 다양한 기법들을 자세히 소개하고 있다. 사례 연구들은 정보과학적 사고로부터 시작해서 효과적이고 효율적인 병렬 프로그램으로 끝나는 전체 개발 과정을 제시한다.
대규모 병렬 프로세서 프로그래밍: CUDA를 이용한 실용적 접근
"GPU를 통해 병렬 컴퓨팅을 이해하고자하는 사람들에게 데이비드 커크와 원메이 후가 쓴 이 책은 뜻밖의 선물이다. C와 유사한 데이터 병렬 프로그래밍 언어인 CUDA를 소개하고, NVIDIA GPU의 현재 아키텍처인 Tesla를 소개하고 있기 때문이다. 프로그래밍 언어와 아키텍처를 설명할 뿐만 아니라, 이종 CPU-GPU 하드웨어에서 잘 수행될 있는 데이터 병렬 문제의 본질을 정의하고 있다. 이 책은 최근에 새롭게 활기를 띠고 있는 병렬 컴퓨팅 분야의 문헌에 가치를 더하는 책이다."
- 데이비드 패터슨, U.C. Berkeley의 병렬 컴퓨팅 연구소장이자 컴퓨터과학부의 석좌교수. '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스'의 공저자
대규모 병렬 프로세서 프로그래밍: CUDA를 이용한 실용적 접근은 학생들과 전문가 모두에게 병렬 프로그래밍과 GPU 아키텍처의 기본 개념을 밝혀주며, 병렬 프로그램을 작성하기 위한 다양한 기법들을 자세히 소개하고 있다. 사례 연구들은 정보과학적 사고로부터 시작해서 효과적이고 효율적인 병렬 프로그램으로 끝나는 전체 개발 과정을 제시한다.
특징
- 고성능 병렬 컴퓨팅에 적합한 방식으로 문제들을 생각할 수 있게 해주는 정보과학적 사고에 대해 설명한다.
- 대규모 병렬 컴퓨팅 환경을 위해 만들어진 NVIDIA의 소프트웨어 개발툴인 CUDA(Compute Unified Device Architecture)를 활용한다.
- OpenCL뿐만 아니라 CUDA 프로그래밍 모델을 사용하여 고성능과 고신뢰성을 모두 달성하는 법을 보여준다.
강의자료 다운로드
www.elsevierdirect.com/9780123814722
책의 구성
2장은 GPU 컴퓨팅의 역사를 살펴본다. 그래픽스 하드웨어가 점점 더 프로그래밍 가능한 방향으로 진화된 이야기를 간략히 요약하고, GPGPU로 어떻게 발전되어 왔는지의 역사를 설명할 것이다.
3장은 CUDA 프로그래밍을 소개한다. 이 장은 학생들이 C 프로그래밍에 대한 경험이 있음을 가정한다. 처음에는 이형적인 CPU/GPU 시스템을 지원하고, 널리 사용되는 SPMD(single program multiple data) 병렬프로그래밍 모델을 지원하기 위한 간단한 C의 확장으로 CUDA를 소개할 것이다.
4장은 쓰레드의 구성과 쓰레드가 실행되는 과정과 기본적인 성능 개념을 이해하기 위한 실행 모델(execution model)을 설명한다.
5장은 프로그램의 실행 속도 향상을 위하여 CUDA 변수를 저장하는 데 사용되는 특별한 메모리들을 다룬다.
6장은 CUDA 커널 함수의 성능에 영향을 주는 주된 요인들을 소개한다.
7장은 부동소수점 표현 방식과 아울러 정밀도와 정확도의 개념을 소개한다.
8장과 9장은 2개의 실제 응용프로그램을 통한 사례 연구를 다룬다. 사례 연구를 통하여 독자들은 응용프로그램을 어떻게 병렬화하는지와 속도 개선을 위해서 어떻게 최적화하는지에 대한 사고 과정을 경험하게 될 것이다.
10장은 병렬프로그래밍 기술을 더 일반화하여 문제를 분해하는 원리(decomposition principle), 알고리즘 전략, 그리고 정보과학적 사고방식(computational thinking) 등을 다룬다.
11장은 CUDA의 관점에서 OpenCL 프로그래밍 모델을 소개한다. 독자들은 OpenCL이 CUDA와 매우 비슷하다는 것을 알게 될 것이다.
12장은 결론과 아울러 대규모 병렬 프로그래밍의 미래에 대한 전망을 한다. 우리가 처음에 목적했던 바를 되돌아보며 책의 각 장들이 이 목적들을 이루기 위해 어떻게 구성되었는지를 요약한다.
정보제공 :

저자소개
데이비드 B. 커크(지은이)
NVIDIA의 Chief Scientist이자 NVIDIA Fellow. 시각컴퓨팅 기술 분야의 리더
원메이 W. 후(지은이)
Urbana-Champaign 일리노이 주립대학교 전자컴퓨터공학과 Coordinated Sciences 연구소의 Walter J. Sanders III Advanced Mircro Devices 석좌교수
하순회(옮긴이)
1985.2 서울대학교 전자공학과 학사 1987.2 서울대학교 전자공학과 석사 1992.2 U.C. Berkeley EECS 전기공학과 박사 1992.6~1993.5 U.C.Berkeley EECS post-doc 1993.7~1994.2 현대전자산업주식회사 산업전자연구소 선임연구원 1994.3~현재 서울대학교 컴퓨터공학과 교수
김크리스(옮긴이)
1994년 카네기멜론 컴퓨터전산과를 졸업한 이후 계속해서 게임관련 업계에서 근무하고 있다. 현재는 NVIDIA의 컨텐츠 엔지니어링 부서에서 개발이사로 근무 중이며, GPU를 활용한 게임 개발 및 요즘 주목받고 있는 Compute를 활용한 게임과 관련된 물리, 인공지능 분야의 연구에 주력하고 있다.
이영민(옮긴이)
2010년 이후 서울시립대학교 전자전기컴퓨터공학부 교수로 근무를 하고 있으며, 하드웨어 소프트웨어 통합설계를 통한 병렬시스템 설계방법론을 연구해왔다. 최근에는 GPU 기반 병렬 소프트웨어 설계를 최적화하는 연구에 주력하고 있으며, 음성인식, 자연언어처리, 컴퓨터비전 등의 응용을 가속하는 연구를 수행하였다. 《대규모 병렬 프로세서 프로그래밍, CUDA를 이용한 실용적 접근》(2011, 비제이퍼블릭)을 공역했다.

목차
머리말 감사의 글 역자의 글 Chapter 1 서론 1.1 병렬 컴퓨터로써의 GPU 1.2 최신 GPU의 구조 1.3 고성능과 병렬화의 필요성 1.4 병렬 프로그래밍 언어와 모델 1.5 중요한 목표 1.6 책의 구성 Chapter 2 GPU 컴퓨팅의 역사 2.1 그래픽스 파이프라인의 진화 2.1.1 고정-함수 그래픽스 파이프라인의 시대 2.1.2 실시간 그래픽스 프로그래밍의 진화 2.1.3 그래픽스와 컴퓨팅 프로세서의 통합 2.1.4 GPGPU: 중간 단계 2.2 GPU 컴퓨팅 2.2.1 확장가능성있는 GPU 2.2.2 최근의 발전 2.3 미래의 추세 Chapter 3 CUDA의 기초 3.1 데이터 병렬성 3.2 CUDA 프로그램의 구조 3.3 행렬-행렬 곱셈의 예 3.4 디바이스 메모리와 데이터 전송 3.5 커널 함수와 쓰레딩 3.6 요약 3.6.1 함수 선언 3.6.2 커널 개시 3.6.3 미리 정의된 변수 3.6.4 런타임 API Chapter 4 CUDA 쓰레드 4.1 CUDA 쓰레드의 구성 4.2 blockIdx와 threadIdx 사용하기 4.3 동기화와 투명한 확장가능성 4.4 쓰레드의 할당 4.5 쓰레드 스케줄링과 지연시간 감내 4.6 요약 4.7 연습문제 Chapter 5 CUDA 메모리 5.1 메모리 접근 효율성의 중요성 5.2 CUDA 디바이스 메모리의 종류 5.3 전역 메모리의 통신량을 줄이기 위한 전략 5.4 병렬성의 제한요소인 메모리 5.5 요약 5.6 연습문제 Chapter 6 성능 고려사항 6.1 쓰레드 수행에 대한 더 많은 것 6.2 전역 메모리 대역폭 6.3 SM 자원의 동적 분할 6.4 데이터 미리가져오기 6.5 명령어 혼합 6.6 쓰레드 밀도 6.7 측정된 성능 및 요약 6.8 연습문제 Chapter 7 부동소수점 고려사항 7.1 부동소수점 형식 7.1.1 M의 정규화된 표현 7.1.2 E의 초과 인코딩 7.2 표현 가능한 수 7.3 특별한 비트 패턴 및 정밀도 7.4 산술 정확도 및 자리맞춤 7.5 알고리즘 고려사항 7.6 요약 7.7 연습문제 Chapter 8 응용프로그램 사례 연구: 고급 MRI 복원 8.1 응용프로그램의 배경지식 8.2 반복적 복원 8.3 FHd 계산하기 8.4 최종 평가 8.5 연습문제 Chapter 9 응용프로그램 사례연구: 분자 시각화와 분석 9.1 응용프로그램의 배경 지식 9.2 간단한 커널 구현 9.3 명령어 실행 효율 9.4 메모리 병합(coalescing) 9.5 추가 성능 비교 9.6 다중 GPU 사용하기 9.7 연습문제 Chapter 10 병렬 프로그래밍과 정보과학적인 사고 10.1 병렬 프로그래밍의 목적 10.2 문제의 분해 10.3 알고리즘 선택 10.4 정보과학적인 사고 10.5 연습문제 Chapter 11 OpenCL의 간략한 소개 11.1 배경 지식 11.2 데이터 병렬성 모델 11.3 디바이스 구조 11.4 커널함수 11.5 디바이스 관리와 커널 개시 11.6 OpenCL로 구현한 정전위 맵 11.7 요약 11.8 연습문제 Chapter 12 맺음말과 미래 전망 12.1 목표 재고찰 12.2 메모리 구조의 진화 12.2.1 큰 가상 어드레스 공간과 물리 어드레스 공간 12.2.2 통합된 디바이스 메모리 공간 12.2.3 캐쉬설정과 스크래치 패드 12.2.4 개선된 원자 연산 12.2.5 개선된 전역 메모리 접근 12.3 커널 실행 제어의 진화 12.3.1 커널 함수 내에서의 함수 호출 12.3.2 커널 함수의 예외 처리 12.3.3 다중 커널의 동시 실행 12.4 코어 성능 12.4.1 2배정밀도의 실행속도 12.4.2 제어 흐름의 효율 향상 12.5 프로그래밍 환경 12.6 밝은 전망 부록 A 행렬곱셉(호스트버전 소스코드) A.1 matrixmul.cu A.2 matrixmul_gold.cu A.3 matrixmul.h A.4 assist.h A.5 예상 결과 부록 B GPU 계산 능력 B.1 GPU 계산 능력 표 B.2 메모리 병합의 변형들