책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9788965400158
· 쪽수 : 344쪽
· 출판일 : 2011-08-20
책 소개
목차
Chapter 01 CUDA란?
01 그래픽 카드의 성능 향상
1.1 그래픽 카드의 탄생
1.2 그래픽 카드의 발전
1.3 GPU
02 CPU vs. GPU
2.1 다른 환경에 있는 프로세서
2.2 트랜지스터 자원의 배분
2.3 메모리 밴드 폭
03 GPGPU
04 CUDA
05 CUDA의 장점
06 용어 해설
6.1 페르미(Fermi)
6.2 테슬라(Tesla)
6.3 쿼드로(Quadro)
Chapter 02 CUDA의 기본
01 CPU의 데이터 처리
02 CUDA의 데이터 처리
2.1 CUDA의 데이터 흐름
2.2 그래픽 카드 메모리 사용하기
2.3 CUDA 데이터의 병렬처리
2.4 CUDA 커널 함수
2.5 데이터 전송 부하
2.6 CUDA의 적용 분야
03 CUDA 프로세서 아키텍처
3.1 G80/G90시리즈 그래픽 카드 블록 다이어그램
3.2 스트리밍 프로세서
3.3 스트리밍 멀티프로세서
3.4 텍스처/프로세서 클러스터
3.5 그래픽 프로세서 유닛(GPU)
3.6 Fermi 아키텍처(GF100)
04 용어 정리
Chapter 03 CUDA 프로그래밍 준비
01 CUDA 프로그램 설치
1.1 개발자 드라이버
1.2 CUDA 툴키트 설치하기
1.3 GPU 컴퓨팅 SDK 코드 샘플 설치하기
1.4 NVIDIA 지원
02 CUDA 첫 프로젝트: Hello World!
03 CUDA C언어
3.1 함수의 수식어
3.2 변수의 수식어
Chapter 04 스레드 블록 아키텍처
01 CUDA 스레드 모델
1.1 CPU의 스레드, 태스크 분할
1.2 CUDA의 스레드 모델
1.3 GPU 스레드 처리 능력
02 그리드 블록 모델
2.1 CUDA 블록과 1차원 스레드 생성
2.2 두 벡터의 합 계산
2.3 스레드 블록 생성 가이드라인
2.4 스레드 블록의 개수 설정
2.5 블록과 스레드의 2차원 배치
2.6 매트릭스 곱
2.7 스레드 3차원 구성
2.8 그리드
03 스레드 스케줄링
3.1 스레드 문맥 교환
3.2 SP의 스레드 스케줄링
3.3 워프, SM의 스레드 스케줄링
3.4 SIMT
3.5 SM의 워프 스케줄링
3.6 Fermi(GTX400 계열) 스레드 스케줄링
Chapter 05 메모리 아키텍처
01 CUDA 메모리 아키텍처
02 CUDA 메모리
2.1 레지스터(Register)
2.2 로컬 메모리
2.3 공유 메모리
2.4 C=AB 매트릭스 곱
2.5 글로벌 메모리
2.6 상수 메모리
2.7 텍스처 메모리
03 메모리 성능 최적화
3.1 글로벌 메모리 액세스 결합
3.2 공유 메모리 뱅크 충돌
3.3 매트릭스 계산 sgemmNN 최적화
04 고정된 메모리
05 기타 메모리 사용
5.1 제로 복사
5.2 포터블 고정 메모리
Chapter 06 CUDA API 함수
01 CUDA API 아키텍처
1.1 CUDA 드라이버 API
1.2 CUDA 실행 시간 API
1.3 CUDA 라이브러리
02 CUDA 드라이버 API와 실행 시간 API 비교
2.1 CUDA 드라이버 API와 실행 시간 API
2.2 두 벡터의 합
Chapter 07 성능 측정
01 소요 시간 측정
1.1 CPU 타이머 활용
1.2 GPU 타이머 활용
1.3 이벤트 API의 활용
02 디바이스 쿼리
03 cubin 파일
3.1 cubin 파일
3.2 '--ptxas-options=-v' 옵션 설정
3.3 액티브 블록
04 CUDA 점유 계산기
05 비주얼 프로파일러
5.1 CUDA Visual Profiler의 실행
5.2 세션 설정
5.3 측정 결과
Chapter 08 스트림
01 스트림 개요
1.1 순차적 복사와 실행
1.2 병행 복사와 실행
02 스트림 성능 측정
2.1 순차 코드
2.2 병행 실행 코드
2.3 성능 측정
Chapter 09 동기화
01 경쟁상태
02 아토믹 함수
2.1 컴파일러 설정
2.2 산술 아토믹 함수
2.3 비트 계산 아토믹 함수
03 스레드 카운트
04 히스토그램
4.1 글로벌 메모리를 이용한 히스토그램
4.2 공유 메모리를 이용한 히스토그램
05 스레드 동기화: syncthreads
06 글로벌 동기화
Chapter 10 성능 최적화
01 CUDA의 성능 최적화
1.1 성능 최적화를 위한 CUDA의 중요 특징
1.2 CUDA 이론적 성능
02 병렬축소를 이용한 총합 계산
2.1 병렬축소 프로그램의 설계
2.2 최적화 목표치
2.3 1단계
2.4 2단계: 분기 발산 해결
2.5 3단계: 뱅크 충돌 해결
2.6 4단계: 첫 번째 요소 로딩과 동시에 합 계산
2.7 5단계: 마지막 워프 언롤
2.8 6단계: 전체 코드의 언롤
2.9 7단계: 알고리즘 캐스케이딩
Chapter 11 CUDA 라이브러리
01 BLAS 라이브러리
02 CUBLAS 라이브러리를 이용한 구현
2.1 BLAS 기본 함수
2.2 C로 구현한 32bit 실수형 3단계 gemm
2.3 CBLAS 라이브러리를 이용한 gemm 구현
2.4 CUBLAS 라이브러리를 이용한 구현
2.5 CUBLAS API 함수
2.6 추가 정보
03 고속 푸리에 변환
04 CUFFT 라이브러리
4.1 개요
4.2 라이브러리 사용
4.3 API 함수
4.4 성능 비교
4.5 추가 자료
05 수학 라이브러리
Chapter 12 Multi GPUs
01 디바이스 관리 API
02 OpenMP
2.1 공유 메모리 병렬 프로그래밍의 표준
2.2 OpenMP 모델
03 OpenMP를 이용한 Multi GPUs 작업 분할
3.1 순차적 CUDA 실행
3.2 OpenMP를 이용한 병렬 실행
04 MPI
05 하이브리드 병렬 프로그래밍
Chapter 13 디버깅
01 Parallel Nsight
1.1 사용 환경
1.2 내려받기
1.3 설치
1.4 디버거 시작
1.5 프로젝트 디버깅
02 에뮬레이션 상태
Chapter 14 Appendix
A1 CUDA 리눅스 설치
A1.1 CUDA 드라이버 설치
A1.2 CUDA 툴키트 설치
A1.3 CUDA SDK 설치
A1.4 freeglut의 설치
A2 CUDA 가능한 디바이스
A2.1 GeForce 시리즈
A2.2 Tesla 시리즈
A2.3 Quadro 시리즈
A3 계산 능력
참고문헌
INDEX