CUDA 기반 GPU 병렬 처리 프로그래밍
2023년 05월 24일 출간
국내도서 : 2023년 05월 25일 출간
- eBook 상품 정보
- 파일 정보 PDF (18.20MB) | 313 쪽
- ISBN 9791165922276
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 18,000원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
_1.1 GPGPU와 GPU 프로그래밍
_1.2 병렬 처리의 개념 및 필요성
__1.2.1 병렬 처리의 개념
__1.2.2 병렬 처리의 필요성
__1.2.3 병렬 처리 프로그래밍의 필요성
_1.3 병렬 처리 하드웨어
__1.3.1 플린의 분류법
__1.3.2 공유 메모리 시스템과 분산 메모리 시스템
__1.3.3 GPU는 SIMT 구조
_1.4 CPU와 GPU 비교
__1.4.1 GPU의 탄생 배경 및 발전 방향
__1.4.2 CPU vs. GPU
_1.5 병렬 처리의 성능
__1.5.1 병렬 처리 성능 지표
__1.5.2 암달의 법칙
2장 CUDA 개요
_2.1 CUDA 소개
__2.1.1 드라이버 API와 런타임 API
__2.1.2 CUDA 사용 가능 GPU
__2.1.3 GPU의 성능
__2.1.4 CUDA compute capability
__2.1.5 내 GPU 확인하기
_2.2 CUDA 개발 환경 설정
__2.2.1 CUDA 툴킷 설치
__2.2.2 CUDA 프로그램 작성 및 컴파일 환경
_2.3 Hello CUDA
__2.3.1 호스트와 디바이스
__2.3.2 CUDA 프로그램
__2.3.3 Hello CUDA - 첫 번째 CUDA 프로그램
__2.3.4 CUDA C/C++ 키워드
__2.3.5 커널의 실행과 실행 구성
3장 CUDA 프로그램의 기본 흐름
_3.1 CUDA 프로그램의 구조 및 흐름
_3.2 CUDA 기초 메모리 API
__3.2.1 디바이스 메모리 공간 할당 및 초기화 API
__3.2.2 호스트-디바이스 메모리 데이터 복사 API
_3.3 CUDA로 작성하는 벡터의 합 프로그램
__3.3.1 디바이스 메모리 할당
__3.3.2 입력 벡터 복사(호스트 메모리 → 디바이스 메모리)
__3.3.3 벡터 합 커널 호출
__3.3.4 결과 벡터 복사 (디바이스 메모리 → 호스트 메모리)
__3.3.5 디바이스 메모리 해제
__3.3.6 CUDA 기반 벡터 합 프로그램 전체 코드
_3.4 CUDA 알고리즘의 성능 측정
__3.4.1 커널 수행 시간
__3.4.2 데이터 전송 시간
__3.4.3 CUDA 기반 벡터 합 프로그램의 성능 측정 및 분석
4장 CUDA 스레드 계층
_4.1 CUDA 스레드 계층 구조
__4.1.1 CUDA 스레드 계층
__4.1.2 CUDA 스레드 계층을 위한 내장 변수들
__4.1.3 그리드 및 블록의 최대 크기 제한
_4.2 CUDA 스레드 구조와 커널 호출
__4.2.1 스레드 레이아웃 설정 및 커널 호출
__4.2.2 스레드 레이아웃 설정 및 확인 예제
_4.3 큰 벡터에 대한 벡터 합 CUDA 프로그램 - 스레드 레이아웃
5장 스레드 레이아웃과 인덱싱
_5.1 1,024보다 큰 벡터의 합 구하기
__5.1.1 스레드 레이아웃 결정
__5.1.2 각 스레드가 접근할 데이터의 인덱스 계산
__5.1.3 계산된 인덱스를 반영한 커널 작성
_5.2 스레드 인덱싱
__5.2.1 메모리 속 배열의 모습
__5.2.2 스레드 인덱싱 연습 I - 스레드의 전역 번호
__5.2.3 스레드 인덱싱 연습 II - 2차원 데이터에 대한 인덱싱
_5.3 CUDA 기반 대규모 행렬 합 프로그램
__5.3.1 2차원 그리드, 2차원 블록 레이아웃
__5.3.2 1차원 그리드, 1차원 블록 레이아웃
__5.3.3 2차원 그리드, 1차원 블록 레이아웃
6장 CUDA 실행 모델
_6.1 엔비디아 GPU 아키텍처
__6.1.1 스트리밍 멀티프로세서
__6.1.2 CUDA 코어
_6.2 CUDA 스레드 계층과 GPU 하드웨어
__6.2.1 그리드 → GPU
__6.2.2 스레드 블록 → SM
__6.2.3 워프 & 스레드 → SM 속의 CUDA 코어
__6.2.4 무비용 문맥 교환(zero context switch overhead)
__6.2.5 워프 분기(warp divergence)
_6.3 메모리 접근 대기 시간 숨기기 전략
_6.4 GPU 정보 확인하기
7장 CUDA 기반 행렬 곱셈 프로그램
_7.1 행렬곱셈이란?
_7.2 스레드 레이아웃 설정
__7.2.1 입력 행렬 A, B 기준 스레드 레이아웃
__7.2.2 결과 행렬 C 기준 스레드 레이아웃
_7.3 스레드 인덱싱
__7.3.1 행렬 C의 크기가 블록 최대 크기(1,024)보다 작은 경우
__7.3.2 행렬 C의 크기가 블록의 최대 크기(1,024)보다 큰 경우
_7.4 구현 및 성능 평가
__7.4.1 세부 구현
__7.4.2 성능 평가
__7.4.3 부동소수점 연산 정밀도 문제
8장 CUDA 메모리 계층
_8.1 컴퓨터 시스템의 메모리 계층
_8.2 CUDA 메모리 계층
__8.2.1 스레드 수준 메모리
__8.2.2 블록 수준 메모리
__8.2.3 그리드 수준 메모리
__8.2.4 GPU 캐시
__8.2.5 CUDA 메모리 요약
_8.3 CUDA 메모리 모델과 성능
__8.3.1 병렬성 최대화
__8.3.2 활성 워프 비율
9장 CUDA 공유 메모리
_9.1 공유 메모리 사용 방법
__9.1.1 스레드 블록 내 스레드들의 공유 데이터 보관
__9.1.2 L1 캐시(HW 관리 캐시)
__9.1.3 사용자 관리 캐시
_9.2 공유 메모리 사용 예제 - 1,024보다 작은 행렬의 곱셈
10장 공유 메모리를 활용한 행렬 곱셈 프로그램
_10.1 문제 정의 및 기반 코드
_10.2 알고리즘 설계 및 구현
__10.2.1 전략 1: 행렬 A의 일부 행과 행렬 B의 일부 열을 공유 메모리에 적재
__10.2.2 전략 2: 행과 열을 블록 단위로 분할하여 공유 메모리에 적재
_10.3 성능 평가
11장 메모리 접근 성능 최적화
_11.1 전역 메모리 접근 최적화
__11.1.1 정렬된 메모리 접근과 병합된 메모리 접근
__11.1.2 예제: 행렬 곱 커널의 스레드 레이아웃
__11.1.3 구조체의 배열 vs. 배열의 구조체
_11.2 공유 메모리 접근 최적화
__11.2.1 메모리 뱅크와 뱅크 충돌
__11.2.2 예제: 공유 메모리 활용 행렬 곱 커널
12장 동기화 및 동시 실행
_12.1 동기화
__12.1.1 CUDA의 동기화
_12.2 CUDA 스트림과 동시 실행
__12.2.1 CUDA 스트림의 정의 및 특성
__12.2.2 CUDA 명령의 동시 실행
__12.2.3 예제: 데이터 전송 부하 숨기기
__12.2.4 스트림 동기화
_12.3 CUDA 이벤트
__12.3.1 CUDA 이벤트 API
__12.3.2 CUDA 이벤트를 이용한 커널 및 스트림별 수행 시간 측정
_12.4 다중 GPU 및 이종 병렬 컴퓨팅
__12.4.1 다중 GPU 사용
__12.4.2 이종 병렬 컴퓨팅
컴퓨터 구조 이미지와 함께
한 눈에 보는 병렬 처리 프로그래밍
이제 싱글 스레드 기반의 프로그래밍만 학습한다면 좋은 모델이나 기술을 여러 방면으로 뻗어 활용하기 어렵습니다. 이때 GPGPU는 고사양 게임 개발, 인공지능, 빅데이터 분석, 데이터 마이닝 등의 산업에서 혁신적으로 활용될 수 있습니다. 『CUDA 기반 병렬 처리 프로그래밍』을 통해 GPGPU와 병렬 프로세서에 관한 다양한 용어와 사전적 의미, 컴퓨터 구조에서의 동작 방식부터 이를 활용한 연산 속도 향상법까지 병렬 처리에 관한 모든 것을 완벽하게 익혀봅시다.
이 책이 필요한 독자
ㆍ GPGPU 기술이 무엇인지 경험해보고 싶은 분
ㆍ 병렬 처리 프로그래밍을 이해하고 싶은 C/C++ 언어 중급자
ㆍ 알고리즘뿐만 아니라 연산 처리에 대해 자세히 학습하고 싶은 분
ㆍ CUDA 기반의 병렬 처리 최적화가 필요한 분
인물정보
Duksu Kim)
- 한국기술교육대학교 컴퓨터공학과 교수, 2018~현재
멀티코어프로그래밍 과목: K-INNOVATION 특수과목(F/L)의 우수 교과목으로 선정, 2021
- 한국과학기술정보원구원(KISTI) 슈퍼컴퓨팅 센터 선임연구원, 2014~2018
- KAIST 전산학 박사, 2014
- CUDA 코딩 콘테스트 자유주제 부문(주최: NVIDIA 코리아) 대상, 2010
- CUDA 코딩 콘테스트 자유주제 부문(주최: NVIDIA 코리아) 2위, 2015
- 한국기술교육대학교 최우수교육상(Best Teaching Award), 2021
유튜브: https://www.youtube.com/@hpclab.koreatech4592
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!