이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장 GPGPU 및 병렬 처리 개요_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 이종 병렬 컴퓨팅
|
Duksu Kim
김덕수의 다른 상품
|
컴퓨터 구조 이미지와 함께 한 눈에 보는 병렬 처리 프로그래밍이제 싱글 스레드 기반의 프로그래밍만 학습한다면 좋은 모델이나 기술을 여러 방면으로 뻗어 활용하기 어렵습니다. 이때 GPGPU는 고사양 게임 개발, 인공지능, 빅데이터 분석, 데이터 마이닝 등의 산업에서 혁신적으로 활용될 수 있습니다. 『CUDA 기반 병렬 처리 프로그래밍』을 통해 GPGPU와 병렬 프로세서에 관한 다양한 용어와 사전적 의미, 컴퓨터 구조에서의 동작 방식부터 이를 활용한 연산 속도 향상법까지 병렬 처리에 관한 모든 것을 완벽하게 익혀봅시다.이 책이 필요한 독자ㆍGPGPU 기술이 무엇인지 경험해보고 싶은 분ㆍ병렬 처리 프로그래밍을 이해하고 싶은 C/C++ 언어 중급자ㆍ알고리즘뿐만 아니라 연산 처리에 대해 자세히 학습하고 싶은 분ㆍCUDA 기반의 병렬 처리 최적화가 필요한 분
|