본문 바로가기

Programming Massively Parallel Processors6

[세미나 발표] Programming Massively Parallel Processors Ch.19 Parallel Computing Patterns and Computational Thinking [CUDA] 병렬 컴퓨팅의 목표, 알고리즘 선택, 문제 분해 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 19. Parallel Computing Patterns and Computational Thinking 내용을 정리한 글이다.19.1 병렬 컴퓨팅의 목표 (Goals of Parallel Computing)왜 병렬 컴퓨팅을 하는가?병렬 컴퓨팅을 추구하는 이유는 결국 속도 향상이다. 세 가지 관점으로 나눌 수 있다.같은 문제를 더 짧은 시간 안에 해결한다.같은 시간 안에 더 큰 문제를 해결한다.같은 문제와 같은 시간 내에 더 나은 해를 얻는다. (시뮬레이션 정밀도 향상 등)실제 애플리케이션의 구조현실의 애플리케이션은 서로 .. 2026. 3. 22.
[세미나 발표] Programming Massively Parallel Processors Ch.16 Deep Learning [CUDA] 딥러닝 — CNN 추론 커널, GEMM 변환, cuDNN 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 16. Deep Learning 내용을 정리한 글이다.16.1 Background — CNN과 GPU딥러닝, 특히 CNN(Convolutional Neural Network)은 이미지 분류, 객체 탐지 등에서 뛰어난 성능을 보인다. CNN 연산의 핵심은 합성곱(Convolution) 연산으로, 입력 피처 맵에 필터(커널)를 슬라이딩하며 출력 피처 맵을 생성한다.이 연산은 데이터 병렬성이 매우 높다. 출력 피처 맵의 각 픽셀은 독립적으로 계산될 수 있기 때문에 GPU의 대규모 병렬 처리에 이상적이다.16.2 CNN .. 2026. 3. 22.
[세미나 발표] Programming Massively Parallel Processors Ch.15 Graph Traversal [CUDA] 그래프 탐색 — BFS 병렬화, 프론티어, 사유화 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 15. Graph Traversal 내용을 정리한 글이다.15.1 그래프 (Graph) 기초그래프는 개체(정점, Vertex)와 그들 간의 관계(간선, Edge)를 나타내는 데이터 구조다.표현 방식인접 행렬(Adjacency Matrix): 직관적이지만 간선이 적은 희소 그래프에서는 공간 낭비가 심하다. V개의 정점이 있으면 V²개의 셀이 필요하다.희소 행렬(Sparse Matrix): 저장 공간과 연산 효율을 높이기 위해 사용한다. 주요 형식은 세 가지다.형식이름특징CSR압축 희소 행 (Compressed Sparse .. 2026. 3. 22.
[세미나 발표] Programming Massively Parallel Processors Ch.10 Reduction and Minimizing Divergence [CUDA] Reduction — 제어 발산, 메모리 발산 최소화 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 10. Reduction and Minimizing Divergence 내용을 정리한 글이다.10.1 Reduction이란?Reduction은 배열의 값들로부터 단일 값(sum, max, min 등)을 도출하는 연산이다.import numpy as nparr = np.array([3, 1, 4, 1, 5, 9, 2, 6])# 순차적 Reduction (CPU)result = 0for x in arr: result += x # result = 31CPU에서는 순차적으로 처리하지만, GPU에서는 병렬화가 가능하다... 2026. 3. 22.
[세미나 발표] Programming Massively Parallel Processors Ch.6 Performance Considerations [CUDA] 메모리 병합, 지연 숨기기, 스레드 조대화 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 6. Performance Considerations 내용을 정리한 글이다.6.1 메모리 병합 (Memory Coalescing)DRAM의 구조적 한계병렬 프로그램의 실행 속도는 프로그램의 리소스 요구와 하드웨어의 리소스 제약 사이의 상호작용으로 결정된다. 그 중 핵심 병목은 DRAM이다.DRAM의 읽기 속도는 프로세서 연산 속도에 비해 수십 배 느리다. 이유는 물리적 구조에 있다. 데이터 비트가 커패시터(Small Capacitor)에 저장되는데, 데이터를 읽으려면 커패시터가 아주 작은 전하를 센서 라인으로 구동하고, 그 전하.. 2026. 3. 21.
[세미나 발표] Programming Massively Parallel Processors Ch.2 Heterogeneous Data Parallel Computing [CUDA] 데이터 병렬성, 벡터 덧셈 커널, Thread 계층 구조 정리Programming Massively Parallel Processors (저자: Kirk & Hwu) Chapter 2. Heterogeneous Data Parallel Computing 내용을 정리한 글이다.새 책을 시작하며HOML로 머신러닝과 딥러닝의 기초를 다졌다면, 이제는 그 연산들이 내부에서 어떻게 빠르게 돌아가는지를 살펴볼 차례다. GPU가 딥러닝 연산을 빠르게 처리하는 원리는 결국 대규모 병렬 처리에 있다. Programming Massively Parallel Processors는 GPU 아키텍처와 CUDA 프로그래밍을 통해 그 원리를 깊이 파고드는 책이다. 세미나 발표를 이 책으로 이어가게 되었다.데이터 병렬성.. 2026. 3. 21.