GPU 병렬 연산 아키텍처와 메모리 구조

GPU의 병렬 처리 구조, CPU와의 처리 특성 차이, 렌더링 파이프라인과 VRAM 메모리 계층을 정리한다.

2026-08-14 · 최초 발행 2026-01-03

그래픽 연산에서 출발한 대규모 병렬 처리 장치

GPU(Graphics Processing Unit)는 그래픽 처리를 맡는 병렬 연산 프로세서다. 화면을 구성하는 많은 픽셀을 독립적으로 계산하는 작업에 맞춰 수천 개의 작은 코어로 단순 연산을 동시에 수행한다.

실시간 3D 렌더링의 부담이 CPU만으로 감당하기 어려워지면서 전용 하드웨어의 필요성이 커졌다. 게임 그래픽의 요구 수준이 높아지고 비디오·이미지 처리 수요가 늘면서, 그래픽 연산의 병렬성을 활용하는 GPU가 발전했다. GPU는 3차원 그래픽 변환과 렌더링에 특화돼 있으며, VRAM을 통해 그래픽 데이터를 빠르게 읽고 처리한다.

처리 단위를 층으로 쌓은 GPU 아키텍처

GPU는 여러 GPC(Graphics Processing Cluster)로 구성되며, 각 GPC는 다수의 SM(Streaming Multiprocessor)을 포함한다. SM 내부에는 실제 연산을 수행하는 CUDA Core, L1 Cache, Shared Memory, Warp Scheduler가 배치된다. Texture Unit은 텍스처 매핑과 필터링을 맡고, ROP(Render Output Unit)는 픽셀 출력과 블렌딩을 처리한다.

SM 내부 구조GPC 내부 구조GPU 아키텍처명령 전달명령 전달데이터데이터최종 출력Host InterfaceGPC (1) Graphics ProcessingClusterGPC (2) Graphics ProcessingClusterVRAM(Video RAM)RasterizerROP(Render Output Unit)SM (1)Streaming MultiprocessorSM (2)Streaming MultiprocessorSM (3)Streaming MultiprocessorTexture UnitCUDA Core (1)CUDA Core (2)CUDA Core (3)CUDA Core (N)L1 CacheShared MemoryWarp Scheduler

메모리는 스레드 전용 Register File부터 SM 안에서 공유하는 Shared Memory, SM 단위의 L1 Cache, GPU 전체가 공유하는 L2 Cache, 최종 저장소인 VRAM으로 이어지는 계층을 이룬다.

CPU와 GPU는 다른 종류의 병목을 겨냥한다

CPU는 적은 수의 강력한 코어, 큰 캐시, 복잡한 제어 로직으로 순차 처리와 복잡한 제어 흐름을 다룬다. GPU는 많은 수의 단순 코어와 상대적으로 작은 캐시, 단순한 제어 로직으로 반복적인 병렬 작업을 처리한다.

GPU 아키텍처많은 수의단순 코어Simple Core (1)Simple Core (2)Simple Core (3)Simple Core (100+)Small Cache단순 제어 로직CPU 아키텍처적은 수의강력한 코어Complex Core (1)Complex Core (2)Complex Core (3)Complex Core (4)Large Cache복잡한 제어 로직

코어 수는 CPU가 수십 개인 반면 GPU는 수천 개에 이른다. GPU의 메모리 대역폭은 CPU 대비 10배 이상 높다. 낮은 레이턴시, 분기 예측, 범용 연산은 CPU가 유리하고, 높은 쓰루풋과 부동소수점 연산, 병렬 연산은 GPU가 유리하다.

정점 데이터가 화면으로 바뀌는 과정

그래픽 렌더링은 정점 입력에서 시작해 정점 변환, 래스터화, 픽셀 색상 계산, 블렌딩과 출력의 흐름으로 진행된다.

3D 좌표변환된 정점픽셀 조각색상최종 픽셀(1) Vertex Input정점 데이터 입력(2) Vertex Shader정점 변환(3) Rasterization픽셀 생성(4) Pixel Shader픽셀 색상 계산(5) ROP블렌딩 출력(6) Frame Buffer최종 화면

Vertex Processing은 3D 좌표를 2D 화면 좌표로 변환한다. Primitive Assembly는 정점을 삼각형 같은 기본 도형으로 조립하고, Rasterization은 이를 픽셀 단위로 나눈다. Fragment Processing은 픽셀별 색상과 텍스처를 계산하며, Output Merging은 깊이 테스트와 블렌딩을 거쳐 최종 결과를 합성한다.

VRAM 대역폭과 접근 패턴

VRAM은 렌더링 결과를 보관하는 프레임 버퍼를 포함하는 GPU 전용 메모리다. GDDR SDRAM은 DDR보다 높은 대역폭을 제공하며, HBM(High Bandwidth Memory)은 초고속 적층 메모리 기술이다. 메모리 버스는 256bit, 384bit 등 넓은 데이터 버스를 사용하고, 메모리 대역폭은 수백 GB/s의 전송 속도를 제공한다.

병렬 작업에서는 연속된 메모리 접근으로 대역폭을 최적화하는 Coalesced Access가 중요하다. Texture Memory는 캐시 최적화된 읽기 전용 메모리이고, Constant Memory는 모든 스레드가 공유하는 상수 데이터를 둔다. Global Memory는 모든 스레드가 접근 가능한 VRAM이며, Local Memory는 레지스터가 부족할 때 사용하는 로컬 저장소다.

렌더링 밖으로 넓어진 GPU 활용

GPU는 3D 게임의 실시간 렌더링과 물리 시뮬레이션, CAD/CAM의 3D 모델링과 렌더링, 비디오 편집의 실시간 영상 처리와 인코딩, 그래픽 디자인의 고해상도 이미지 처리, 영화 VFX의 특수효과 렌더링에 쓰인다.

GPGPU는 GPU를 범용 연산에 사용하는 방식이다. 딥러닝의 신경망 학습과 추론, 과학 계산의 수치 시뮬레이션과 유체역학, 암호화폐 채굴의 해시 연산, 빅데이터 분석, 의료 영상의 CT·MRI 이미지 재구성에 적용된다.

성능을 읽는 지표와 병렬성

GPU 성능은 초당 부동소수점 연산 횟수인 FLOPS, 초당 전송 가능한 데이터량인 메모리 대역폭, 초당 처리 가능한 텍셀 수인 텍스처 필레이트, 초당 처리 가능한 픽셀 수인 픽셀 필레이트로 측정한다. CUDA Core 또는 Stream Processor의 수와 코어 동작 주파수도 성능 판단에 사용된다.

순차 실행10000 사이클병렬 실행1 사이클병렬 처리 (GPU)픽셀1픽셀2픽셀3...픽셀10000순차 처리 (CPU)픽셀1픽셀2픽셀3...픽셀10000병렬 작업 (10000개 픽셀)

프로그래밍 모델별 실행 단위

CUDA에서 Kernel은 GPU에서 실행되는 함수이며, Grid는 Kernel 실행 시 만들어지는 전체 스레드 집합이다. Block은 Grid를 구성하는 스레드 그룹이고, Thread는 실제 연산을 맡는 최소 단위다. Warp는 32개 스레드가 동시에 실행되는 단위다.

OpenCL은 NVIDIA, AMD, Intel GPU를 지원하는 크로스 플랫폼 모델이다. CPU는 Host, GPU는 Device로 분리하며, Work-item은 스레드에 해당하고 Work-group은 스레드 그룹이다. NDRange는 전체 작업 공간을 뜻한다.

DirectX와 Vulkan에서는 Compute Shader로 범용 연산을 수행하고 Graphics API로 그래픽 파이프라인을 제어한다. 하드웨어를 직접 제어할 수 있으며 다양한 GPU 벤더를 지원한다.

전문화된 GPU 기능

Ray Tracing은 실시간 광선 추적으로 사실적인 조명과 반사를 표현한다. RT Core는 광선과 삼각형의 교차 검사를 위한 전용 하드웨어이며, BVH는 Bounding Volume Hierarchy로 성능을 높인다. Denoising은 AI 기반으로 노이즈를 제거한다.

Tensor Core는 딥러닝 학습과 추론을 위한 행렬 연산 가속 코어다. FP16, INT8 등 다양한 정밀도를 지원하는 Mixed Precision과 Transformer 모델 가속, AI 기반 초해상도 기술인 DLSS에 활용된다.

Unified Memory는 CPU와 GPU 메모리를 통합 관리한다. 데이터 자동 마이그레이션과 VRAM 용량 초과 지원을 제공하며, 명시적인 메모리 복사를 줄여 프로그래밍을 단순화한다.

GPU병렬 처리컴퓨터구조VRAMGPGPU