본문 바로가기

DRAM4

[세미나 발표] 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.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.