HOME > 상세정보

상세정보

CUDA 병렬 프로그래밍 : 고성능 GPGPU를 이용한 NVIDIA 병렬 컴퓨터 아키텍처 CUDA

자료유형
단행본
개인저자
서명 / 저자사항
CUDA 병렬 프로그래밍 : 고성능 GPGPU를 이용한 NVIDIA 병렬 컴퓨터 아키텍처 CUDA / 정영훈 지음
발행사항
부천 : 프리렉, 2011
형태사항
xiv, 330 p. : 삽화, 도표 ; 24 cm
ISBN
9788965400158
일반주기
CUDA = Compute Unified Device Architecture
서지주기
참고문헌(p. 326)과 색인수록
000 00752camcc2200241 c 4500
001 000045669262
005 20111005155028
007 ta
008 110930s2011 ggkad b 001c kor
020 ▼a 9788965400158 ▼g 93000
035 ▼a (KERIS)BIB000012527949
040 ▼a 241050 ▼c 241050 ▼d 211009
082 0 4 ▼a 005.275 ▼2 22
085 ▼a 005.275 ▼2 DDCK
090 ▼a 005.275 ▼b 2011z1
100 1 ▼a 정영훈
245 1 0 ▼a CUDA 병렬 프로그래밍 : ▼b 고성능 GPGPU를 이용한 NVIDIA 병렬 컴퓨터 아키텍처 CUDA / ▼d 정영훈 지음
260 ▼a 부천 : ▼b 프리렉, ▼c 2011
300 ▼a xiv, 330 p. : ▼b 삽화, 도표 ; ▼c 24 cm
500 ▼a CUDA = Compute Unified Device Architecture
504 ▼a 참고문헌(p. 326)과 색인수록
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.275 2011z1 등록번호 121213372 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.275 2011z1 등록번호 121213373 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

그래픽 카드를 이용한 GPGPU의 통합 개발 환경 제공을 목적으로 하는 NVIDIA의 병렬 컴퓨팅 아키텍처인 CUDA 병렬 프로그래밍을 소개하고 그 활용 방법을 담고 있는 책이다. GPU 환경에서의 CUDA 프로그래밍 입문서로, 높은 성능을 얻기 위한 최적화 방법을 소개한다. 전문 프로그래머가 아닌 기초 과학자들도 이해하기 쉽도록 구성하였으며, CUDA를 처음 접하는 프로그래머도 큰 부담없이 관련 기술을 바로 적용해볼 수 있도록 돕고 있다.

■ NVIDIA의 병렬 컴퓨팅 아키텍처 CUDA
GPGPU는 High Performance Computing(HPC)에 있어서 가장 적합한 솔루션이라고 평가되고 있으며 세상에서 가장 빠르게 확산되는 기술 중의 하나입니다. 이러한 그래픽 카드를 이용한 GPGPU의 통합 개발 환경 제공을 목적으로 하는 NVIDIA의 병렬 컴퓨팅 아키텍처인 CUDA(Compute Unified Device Architecture) 병렬 프로그래밍을 소개하고 그 활용 방법을 배워봅니다. GPU 환경에서의 CUDA 프로그래밍 입문서로, 높은 성능을 얻기 위한 최적화 방법을 소개합니다. 이러한 CUDA를 이용하면 높은 연산 처리 능력, 병렬 프로그램의 확장성, 저렴한 비용, 편리한 설치 등의 장점을 얻을 수 있습니다.

■ CUDA 활용과 성능 최적화 방법 소개
기초 과학에서 CUDA를 이용하여 수치 해석을 하는 연구원, GPGPU에 입문하려는 프로그래머를 대상으로 쉽게 설명하고자 하였습니다. 현재 CUDA는 수학, 물리, 화학과 같은 기초 과학 분야에 수치 해석을 위해 많이 사용하고 있으므로 전문 프로그래머가 아닌 기초 과학자들도 이해하기 쉽도록 구성하였습니다. 아울러 CUDA를 처음 접하는 프로그래머도 큰 부담없이 관련 기술을 바로 적용해볼 수 있도록 도와 드립니다. 프로그램의 대세는 CUDA와 같은 GPGPU로 흐르고 있지만, 한글로 된 도서가 거의 없으므로 이 책을 통해 조금이나마 도움을 드리고자 합니다.

■ CUDA 성능 최적화 방법 소개
아울러 CUDA 하드웨어 아키텍처와 동작 원리를 함께 설명하므로 이를 기반으로 올바른 CUDA 소프트웨어를 제작할 수 있습니다. 이와 함께 다음과 같은 소프트웨어 성능 향상을 위한 최적화 방법도 자세하게 설명합니다.
- 글로벌 메모리 액세스 결합(Coalescing)
- 공유 메모리 뱅크 충돌(Bank Conflict)
- 분기 발산(Divergent branching)
- 루프 언롤링(Unrolling)
- 알고리즘 최적화


정보제공 : Aladin

저자소개

정영훈(지은이)

현, 3D Systems Korea 수석연구원 전, 디아이티㈜ 중앙연구소 연세대학교 컴퓨터공학석사 저서 프로그래머의 리더십 CUDA, SIMD, OpenMP 병렬 프로그래밍 외 다수

정보제공 : Aladin

목차

목차
Chapter 01 CUDA란? = 1
 01 그래픽 카드의 성능 향상 = 1 
  1.1. 그래픽 카드의 탄생 = 1
  1.2. 그래픽 카드의 발전 = 2
  1.3. GPU = 2
 02 CPU vs. GPU = 3 
  2.1. 다른 환경에 있는 프로세서 = 3
  2.2. 트랜지스터 자원의 배분 = 4
  2.3. 메모리 밴드 폭 = 6
 03 GPGPU = 6 
 04 CUDA = 7 
 05 CUDA의 장점 = 8 
 06 용어 해설 = 10 
  6.1. 페르미(Fermi) = 11
  6.2. 테슬라(Tesla) = 11
  6.3. 쿼드로(Quadro) = 12
Chapter 02 CUDA의 기본 = 13
 01 CPU의 데이터 처리 = 13
 02 CUDA의 데이터 처리 = 16
  2.1. CUDA의 데이터 흐름 = 16
  2.2. 그래픽 카드 메모리 사용하기 = 18
  2.3. CUDA 데이터의 병렬처리 = 21
  2.4. CUDA 커널 함수 = 23
  2.5. 데이터 전송 부하 = 24
  2.6. CUDA의 적용 분야 = 26
 03 CUDA 프로세서 아키텍처 = 27
  3.1. G80/G90시리즈 그래픽 카드 블록 다이어그램 = 27
  3.2. 스트리밍 프로세서 = 29
  3.3. 스트리밍 멀티프로세서 = 29
  3.4. 텍스처/프로세서 클러스터 = 31
  3.5. 그래픽 프로세서 유닛(GPU) = 31
  3.6. Fermi 아키텍처(GF100) = 33
 04 용어 정리 = 35
Chapter 03 CUDA 프로그래밍 준비 = 37
 01 CUDA 프로그램 설치 = 37
  1.1. 개발자 드라이버 = 38
  1.2. CUDA 툴키트 설치하기 = 41
  1.3. GPU 컴퓨팅 SDK 코드 샘플 설치하기 = 46
  1.4. NVIDIA 지원 = 53
 02 CUDA 첫 프로젝트: Hello World! = 53
 03 CUDA C언어 = 61
  3.1. 함수의 수식어 = 61
  3.2. 변수의 수식어 = 64
Chapter 04 스레드 블록 아키텍처 = 67
 01 CUDA 스레드 모델 = 67
  1.1. CPU의 스레드, 태스크 분할 = 67
  1.2. CUDA의 스레드 모델 = 68
  1.3. GPU 스레드 처리 능력 = 68
 02 그리드 블록 모델 = 69
  2.1. CUDA 블록과 1차원 스레드 생성 = 70
  2.2. 두 벡터의 합 계산 = 76
  2.3. 스레드 블록 생성 가이드라인 = 80
  2.4. 스레드 블록의 개수 설정 = 82
  2.5. 블록과 스레드의 2차원 배치 = 83
  2.6. 매트릭스 곱 = 86
  2.7. 스레드 3차원 구성 = 92
  2.8. 그리드 = 93
 03 스레드 스케줄링 = 94
  3.1. 스레드 문맥 교환 = 94
  3.2. SP의 스레드 스케줄링 = 96
  3.3. 워프, SM의 스레드 스케줄링 = 96
  3.4. SIMT = 100
  3.5. SM의 워프 스케줄링 = 100
  3.6. Fermi(GTX400 계열) 스레드 스케줄링 = 102
Chapter 05 메모리 아키텍처 = 105
 01 CUDA 메모리 아키텍처 = 105
 02 CUDA 메모리 = 107
  2.1. 레지스터(Register) = 107
  2.2. 로컬 메모리 = 110
  2.3. 공유 메모리 = 111
  2.4. C=AB 매트릭스 곱 = 117
  2.5. 글로벌 메모리 = 120
  2.6. 상수 메모리 = 121
  2.7. 텍스처 메모리 = 123
 03 메모리 성능 최적화 = 124
  3.1. 글로벌 메모리 액세스 결합 = 124
  3.2. 공유 메모리 뱅크 충돌 = 133
  3.3. 매트릭스 계산 sgemmNN 최적화 = 144
 04 고정된 메모리 = 145
 05 기타 메모리 사용 = 148
  5.1. 제로 복사 = 148
  5.2. 포터블 고정 메모리 = 151
Chapter 06 CUDA API 함수 = 153
 01 CUDA API 아키텍처 = 153
  1.1. CUDA 드라이버 API = 154
  1.2. CUDA 실행 시간 API = 155
  1.3. CUDA 라이브러리 = 155
 02 CUDA 드라이버 API와 실행 시간 API 비교 = 156
  2.1. CUDA 드라이버 API와 실행 시간 API = 156
  2.2. 두 벡터의 합 = 156
Chapter 07 성능 측정 = 161
 01 소요 시간 측정 = 161
  1.1. CPU 타이머 활용 = 161
  1.2. GPU 타이머 활용 = 162
  1.3. 이벤트 API의 활용 = 168
 02 디바이스 쿼리 = 169
 03 cubin 파일 = 173
  3.1. cubin 파일 = 173
  3.2. '--ptxas-options=-v' 옵션 설정 = 175
  3.3. 액티브 블록 = 176
 04 CUDA 점유 계산기 = 178
 05 비주얼 프로파일러 = 180
  5.1. CUDA Visual Profiler의 실행 = 181
  5.2. 세션 설정 = 182
  5.3. 측정 결과 = 184
Chapter 08 스트림 = 187
 01 스트림 개요 = 187
  1.1. 순차적 복사와 실행 = 188
  1.2. 병행 복사와 실행 = 188
 02 스트림 성능 측정 = 191
  2.1. 순차 코드 = 192
  2.2. 병행 실행 코드 = 193
  2.3. 성능 측정 = 195
Chapter 09 동기화 = 201
 01 경쟁상태 = 201
 02 아토믹 함수 = 203
  2.1. 컴파일러 설정 = 203
  2.2. 산술 아토믹 함수 = 204
  2.3. 비트 계산 아토믹 함수 = 206 
 03 스레드 카운트 = 207
 04 히스토그램 = 212
  4.1. 글로벌 메모리를 이용한 히스토그램 = 213
  4.2. 공유 메모리를 이용한 히스토그램 = 216
 05 스레드 동기화: syncthreads = 218
 06 글로벌 동기화 = 219
Chapter 10 성능 최적화 = 221
 01 CUDA의 성능 최적화 = 221
  1.1. 성능 최적화를 위한 CUDA의 중요 특징 = 222
  1.2. CUDA 이론적 성능 = 222
 02 병렬축소를 이용한 총합 계산 = 224
  2.1. 병렬축소 프로그램의 설계 = 224
  2.2. 최적화 목표치 = 226
  2.3. 1단계 = 226
  2.4. 2단계: 분기 발산 해결 = 228
  2.5. 3단계: 뱅크 충돌 해결 = 230
  2.6. 4단계: 첫 번째 요소 로딩과 동시에 합 계산 = 233
  2.7. 5단계: 마지막 워프 언롤 = 234
  2.8. 6단계: 전체 코드의 언롤 = 238
  2.9. 7단계: 알고리즘 캐스케이딩 = 241
Chapter 11 CUDA 라이브러리 = 247
 01 BLAS 라이브러리 = 247
 02 CUBLAS 라이브러리를 이용한 구현 = 248
  2.1. BLAS 기본 함수 = 248
  2.2. C로 구현한 32bit 실수형 3단계 gemm = 249
  2.3. CBLAS 라이브러리를 이용한 gemm 구현 = 251
  2.4. CUBLAS 라이브러리를 이용한 구현 = 253
  2.5. CUBLAS API 함수 = 256
  2.6. 추가 정보 = 261
 03 고속 푸리에 변환 = 261
 04 CUFFT 라이브러리 = 263
  4.1. 개요 = 263
  4.2. 라이브러리 사용 = 263
  4.3. API 함수 = 265
  4.4. 성능 비교 = 269
  4.5. 추가 자료 = 270
 05 수학 라이브러리 = 270
Chapter 12 Multi GPUs = 273
 01 디바이스 관리 API = 273
 02 OpenMP = 278
  2.1. 공유 메모리 병렬 프로그래밍의 표준 = 278
  2.2. OpenMP 모델 = 278
 03 OpenMP를 이용한 Multi GPUs 작업 분할 = 281
  3.1. 순차적 CUDA 실행 = 281
  3.2. OpenMP를 이용한 병렬 실행 = 283
 04 MPI = 286
 05 하이브리드 병렬 프로그래밍 = 291
Chapter 13 디버깅 = 293
 01 Parallel Nsight = 293
  1.1. 사용 환경 = 293
  1.2. 내려받기 = 294
  1.3. 설치 = 296
  1.4. 디버거 시작 = 299
  1.5. 프로젝트 디버깅 = 300
 02 에뮬레이션 상태 = 304
Chapter 14 Appendix = 309
 A1 CUDA 리눅스 설치 = 309
  A1.1 CUDA 드라이버 설치 = 309
  A1.2 CUDA 툴키트 설치 = 314
  A1.3 CUDA SDK 설치 = 315
  A1.4 freeglut의 설치 = 318
 A2 CUDA 가능한 디바이스 = 320
  A2.1 GeForce 시리즈 = 320
  A2.2 Tesla 시리즈 = 322
  A2.3 Quadro 시리즈 = 323
 A3 계산 능력 = 324
참고문헌 = 326
INDEX = 327

관련분야 신착자료