GPU Heterogeneous Memory Papers
개요
GPU의 온보드 HBM 용량은 수십 GB 수준에 머물러 대규모 DNN과 LLM 학습·추론에서 바로 병목이 됩니다. 이 제약을 줄이기 위해 GPU 이기종 메모리 연구는 UVM 기반 페이지 관리에서 시작해, 레이어·텐서·서브-텐서 단위 제어를 거쳐, 최근에는 KV Cache 블록과 다중 GPU HBM 풀까지 확장되었습니다.
주요 발표 venue는 ISCA, MICRO, ASPLOS, HPCA, ATC, ICML, arXiv까지 넓게 분포하며, 2015년 이후 연구 초점이 UVM 페이지 이동에서 DNN 텐서 오프로딩, 다시 LLM KV Cache 티어링으로 이동한 흐름을 보여 줍니다.
핵심 차이는 관리 단위와 정책입니다. 페이지 단위는 fault 처리와 prefetch에 강하고, 텐서 단위는 재사용과 재계산 균형에 강하며, LLM 계열은 KV Cache와 메모리 티어링을 함께 다뤄야 합니다. 아래 표는 이 흐름을 따라 핵심 논문 13편을 정리합니다.
연구 진화 타임라인
위 줄: UVM/페이지 관리 계열 (2015-2024) / 아래 줄: DNN 텐서·LLM 오프로드 계열 (2016-2024)
논문별 세부 비교표
핵심 아이디어(파란색 강조)를 중심으로 각 논문의 기여와 한계를 단계별로 정리합니다.
메모리 계층 × 관리 단위 요약 비교
관리 단위는 페이지(4KB) → 레이어 → 텐서 → 서브-텐서 → KV Cache 블록 순으로 세분화되어 왔습니다.
| GPU 이기종 메모리 관련 주요 논문 타임라인 (위: UVM/페이지 관리, 아래: DNN 텐서/LLM 오프로드) |
| 논문 (시스템명) | 문제 정의 Problem | 핵심 아이디어 Key Contribution | 메모리 계층 Memory Hierarchy | 관리 메커니즘 Management | HW 가정 HW Config | 한계 / 미해결 Limitation |
|---|---|---|---|---|---|---|
| ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── | ── 1단계: UVM 및 페이지 배치 기초 (2015-2019) ── |
| Page Placement Strategies ASPLOS 2015 (NVIDIA+UMD) | GPU 이기종 메모리에서 첫 페이지 배치 정책 연구 부재 | GPU 이기종 메모리 페이지 배치 정책 체계화 First-Touch·Round-Robin·Compress 등 정책별 특성 분석 | GPU HBM + CPU DRAM (이기종 메모리 초기 모델) | OS 페이지 배치 정책 비교 정책 선택 가이드라인 제시 | NVIDIA GPU GPU-CPU 이기종 메모리 시뮬레이션 | 동적 워크로드 적응 없음 런타임 재배치 미지원 |
| Towards High Performance Paged Memory for GPUs HPCA 2016 (NVIDIA) | GPU UVM 페이지 폴트 오버헤드 극심 마이그레이션 지연으로 GPU 스톨 | GPU 페이지 폴트 처리 최적화 및 하드웨어 지원 폴트 집계(Fault Aggregation) 프리페처 협력으로 마이그레이션 최소화 | GPU HBM (온디바이스) CPU DRAM (원격) | 하드웨어 TLB 폴트 처리 최적화 Fault Aggregation 배치 처리 Tree-based 병렬 마이그레이션 | NVIDIA Pascal GPU UVM 하드웨어 지원 (Pascal 세대) | 고규칙성 워크로드 가정 불규칙 접근 패턴에서 성능 저하 |
| Ganguly et al. (HW Prefetcher vs Page Eviction) ISCA 2019 | UVM에서 프리페처와 페이지 교체 정책의 상호작용이 성능에 미치는 영향 미분석 | 프리페처와 페이지 교체 정책의 상호작용 규명 Thrashing 유발 조건 분석 최적 조합 가이드라인 도출 | GPU HBM CPU DRAM (via UVM) | 트리 기반 프리페칭과 LRU/LFU 교체 정책 조합 분석 | NVIDIA Volta GPU UVM 기반 실측 | 특정 정책 조합에 한정 범용 프레임워크 미제시 |
| Batch-Aware UMM ASPLOS 2020 (Georgia Tech) | 불규칙 그래프·희소 워크로드에서 UVM 오버서브스크립션 성능 급락 | 배치 크기 인식 UVM 선제 교체 및 단일 선행 교체 전략 첫 마이그레이션 전 교체 1회 선행 배치 단위 메모리 로딩 최적화 | GPU HBM CPU DRAM (메모리 초과 구독 환경) | 배치 단위 프리페칭 단일 선행 교체로 DMA 파이프라인 활용 메모리 용량 압축 결합 | NVIDIA Volta V100 UVM 기반 그래프·BFS·SSSP | 정규 워크로드엔 이점 제한적 배치 크기 추정 오류 시 역효과 |
| ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── | ── 2단계: DNN 텐서 단위 GPU 메모리 관리 (2016-2021) ── |
| vDNN MICRO 2016 (NVIDIA) | DNN 학습 시 GPU HBM 용량 초과 큰 배치·깊은 네트워크 학습 불가 | DNN 레이어별 GPU↔CPU 메모리 가상화 Forward 연산 후 CPU로 비동기 오프로드 Backward 직전 GPU로 복귀(프리페치) | GPU HBM (활성 계층) CPU DRAM (오프로드 대상) | 레이어 단위 비동기 CPU 오프로딩 Prefetch overlap: 연산-전송 중첩 | NVIDIA Maxwell/Pascal CUDA 9.0, cuDNN | 레이어별 단순 정책 텐서 재사용 패턴 미고려 |
| Capuchin ASPLOS 2020 | vDNN 페이지 단위 관리 → False Sharing 재사용 패턴 미반영 비효율적 오프로드 | 텐서 고유 ID 기반 접근 패턴 추적 + 교체/재계산 혼합 런타임 텐서 접근 패턴 학습 교체(Eviction)와 재계산(Recompute) 비용 비교 최적 혼합 정책 자동 결정 | GPU HBM CPU DRAM (텐서 단위 관리) | 텐서 ID 기반 접근 패턴 추적 이터레이션 반복성 활용 비동기 오프로드·재계산 혼합 | NVIDIA P100 TensorFlow 프레임워크 | 초기 패턴 학습 오버헤드 동적 형상 변화 텐서 처리 한계 |
| SwapAdvisor ASPLOS 2020 | 수동 메모리 관리: 어떤 텐서를 언제 교체할지 사람이 직접 결정해야 하는 부담 | Genetic Algorithm 기반 자동 GPU 메모리 교체 계획 수립 탐색 공간에서 최적 교체 스케줄 자동 생성 다양한 DNN 구조에 범용 적용 | GPU HBM CPU DRAM (자동 교체 스케줄링) | 유전 알고리즘으로 최적 교체 계획 탐색 오프로드·프리페치 타이밍 자동 결정 | NVIDIA GPU PyTorch/TensorFlow | 탐색 오버헤드 (오프라인) LLM 같은 대형 모델로 확장성 제한 |
| Sentinel HPCA 2021 | Capuchin 등의 페이지 단위 False Sharing 텐서 내 일부 원소만 핫→페이지 전체 GPU 고정 | 텐서 내 False Sharing 제거: 서브-텐서 단위 세밀 관리 접근 밀도 기반 서브-텐서 분할 세밀 마이그레이션으로 HBM 낭비 최소화 | GPU HBM CPU DRAM (서브-텐서 단위) | 서브-텐서 분할 + 핫/콜드 구분 세밀 단위 비동기 마이그레이션 | NVIDIA GPU DNN 학습 워크로드 | 분할 오버헤드 프레임워크 수정 필요 |
| ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── | ── 3단계: 대규모 모델 오프로딩 및 LLM 시대 (2021-2024) ── |
| Memory Harvesting in Multi-GPU ATC 2022 (POSTECH) | Multi-GPU 환경에서 유휴 GPU HBM 낭비 각 GPU가 독립 UVM → 용량 파편화 | 계층적 UVM으로 다수 GPU HBM 통합 풀링 유휴 GPU 메모리를 다른 작업에 동적 할당 NVLink 기반 GPU-to-GPU 페이지 마이그레이션 | GPU HBM 풀 (다수 GPU) CPU DRAM (최후 계층) | 계층적 UVM: GPU HBM 우선→타 GPU HBM→CPU NVLink 고속 GPU 간 마이그레이션 동적 HBM 할당 및 회수 | NVIDIA GPU 클러스터 NVLink 연결 다중 GPU | NVLink 없는 환경 미지원 GPU 간 마이그레이션 레이턴시 |
| ZeRO-Offload ATC 2021 (Microsoft) | 단일 GPU에서 수십억 파라미터 LLM 학습 불가 GPU HBM 크기 한계로 모델 분산 필수 | CPU DRAM으로 옵티마이저 상태·그래디언트 오프로드 Forward/Backward는 GPU 유지 옵티마이저 스텝만 CPU에서 실행 최소 통신으로 ZeRO 1단계 구현 | GPU HBM (파라미터·활성값) CPU DRAM (옵티마이저 상태·그래디언트) | 델레이드 파라미터 업데이트 CPU 연산과 GPU 통신 중첩 ZeRO 메모리 파티셔닝 | 단일 GPU + 대용량 CPU DRAM PyTorch + DeepSpeed | CPU 연산 병목 SSD 확장 미지원 (ZeRO-Infinity로 해결) |
| FlexGen ICML 2023 | 단일 소비자 GPU에서 175B LLM 추론 불가 기존 오프로딩 시스템 처리량 극히 낮음 | GPU-CPU-SSD 3계층 최적 I/O 스케줄링 + 압축 선형 프로그래밍으로 최적 텐서 배치 탐색 블록 스케줄로 연산-I/O 중첩 4-bit 압축으로 전송량 감소 | GPU HBM (활성 계층) CPU DRAM (중간 계층) SSD (용량 계층) | LP 기반 최적 텐서 배치 블록 스케줄링으로 I/O 중첩 양자화(4-bit) 압축 | 소비자 GPU (T4 등) CPU + SSD 조합 | 추론 전용 (학습 미지원) 실시간 추론엔 레이턴시 한계 |
| GMLake ASPLOS 2024 | DNN 메모리 절감 기법(재계산/오프로딩/LoRA)에서 PyTorch 캐싱 할당자의 단편화 심화 | 가상 메모리 스티칭으로 파편화된 HBM 블록 통합 비연속 물리 블록을 연속 가상 주소로 매핑 단편화 없이 대형 텐서 할당 가능 기존 시스템 투명 적용 | GPU HBM (가상 연속 매핑) | CUDA VMM API 활용 비연속 블록 스티칭 캐싱 할당자 교체 불필요 | A100/H100 GPU PyTorch LLM 학습 | VMM 지원 GPU 한정 스티칭 오버헤드 (소) |
| AQUA ASPLOS 2025 | GPU 도메인 내 LLM KV Cache 급증 NVLink 대역폭 활용 불충분 | NVLink 패브릭 가속 KV Cache 오프로딩 Scale-up GPU 도메인 내 네트워크 메모리 활용 GPU HBM→네트워크 부착 메모리로 투명 오프로드 | GPU HBM (활성 KV Cache) NVLink 메모리 노드 (오프로드) | NVLink 패브릭 기반 오프로딩 투명 주소 공간 통합 배치 단위 비동기 전송 | NVLink 연결 GPU 클러스터 H100/H200 NVLink 도메인 | NVLink 전용 단일 도메인 한정 |
| 시스템 (연도) | 메모리 계층 구성 | 관리 단위 / 정책 유형 | 워크로드 대상 |
|---|---|---|---|
| Page Placement (ASPLOS'15) | GPU HBM + CPU DRAM | 페이지 / 배치 정책 비교 | GPU 범용 컴퓨팅 |
| Paged GPU Mem (HPCA'16) | GPU HBM + CPU DRAM | 페이지 / 폴트 처리 최적화 | GPU 범용·UVM |
| Ganguly+ (ISCA'19) | GPU HBM + CPU DRAM | 페이지 / 프리페처-교체 상호작용 | 불규칙 메모리 접근 |
| Batch-Aware UMM (ASPLOS'20) | GPU HBM + CPU DRAM | 페이지 / 배치 인식 선제 교체 | 그래프·희소 워크로드 |
| vDNN (MICRO'16) | GPU HBM + CPU DRAM | 레이어 / 비동기 오프로드·프리페치 | DNN 학습 (CV) |
| Capuchin (ASPLOS'20) | GPU HBM + CPU DRAM | 텐서 / 교체·재계산 혼합 | DNN 학습 |
| SwapAdvisor (ASPLOS'20) | GPU HBM + CPU DRAM | 텐서 / 유전 알고리즘 자동 계획 | DNN 학습 |
| Sentinel (HPCA'21) | GPU HBM + CPU DRAM | 서브-텐서 / False Sharing 제거 | DNN 학습 |
| Memory Harvesting (ATC'22) | Multi-GPU HBM + CPU DRAM | 페이지 / 계층적 UVM 풀링 | 다중 GPU 클러스터 |
| ZeRO-Offload (ATC'21) | GPU HBM + CPU DRAM | 텐서 그룹 / 옵티마이저 분리 | LLM 학습 (GPT-3급) |
| FlexGen (ICML'23) | GPU + CPU DRAM + SSD | 텐서 블록 / LP 최적 배치 | LLM 추론 (175B) |
| GMLake (ASPLOS'24) | GPU HBM (가상 스티칭) | 가상 메모리 / 단편화 해소 | LLM 학습 (LoRA·재계산) |
| AQUA (ASPLOS'25) | GPU HBM + NVLink 메모리 | KV Cache 블록 / NVLink 오프로드 | LLM 추론 (KV Cache) |
핵심 개념
페이지 기반 UVM
초기 연구는 GPU와 CPU DRAM 사이의 페이지 이동을 얼마나 빠르게 처리할지에 집중했습니다. UVM은 주소 공간을 통합하지만, 실제 성능은 page fault 빈도, migration latency, prefetch 정확도에 크게 좌우됩니다. 따라서 fault aggregation, tree-based migration, eviction policy가 중요한 성능 변수로 등장합니다.
텐서와 서브-텐서 관리
딥러닝 학습에서는 페이지보다 텐서가 더 자연스러운 관리 단위가 됩니다. vDNN은 레이어 activation을 비동기 오프로딩하고, Capuchin은 텐서 접근 패턴을 추적해 eviction과 recompute를 고릅니다. Sentinel은 여기서 더 나아가 텐서 내부의 false sharing을 줄이기 위해 sub-tensor 단위로 분할합니다.
LLM 오프로딩과 KV Cache
LLM 서빙에서는 가중치보다 KV Cache가 더 큰 병목이 됩니다. 그래서 FlexGen은 GPU-CPU-SSD 3계층 배치와 압축을 함께 쓰고, GMLake는 CUDA VMM 기반 virtual stitching으로 단편화를 줄이며, AQUA는 NVLink 도메인 안에서 KV Cache를 더 가까운 메모리로 옮깁니다. 이 단계에서는 단순 용량 확대보다 bandwidth, locality, SLO가 함께 중요합니다.
비교/분석
| 계열 | 대표 논문 | 관리 단위 | 주된 병목 | 핵심 아이디어 |
|---|---|---|---|---|
| UVM 기초 | Page Placement, Paged GPU Mem | page | page fault / migration | 배치, fault aggregation, prefetch |
| UVM 정책 | Ganguly+, Batch-Aware UMM | page | thrashing / oversubscription | 교체-프리페치 상호작용, batch-aware policy |
| DNN 학습 | vDNN, Capuchin, SwapAdvisor | layer / tensor | HBM 부족 / 재사용 손실 | async offload, runtime tracing, GA planning |
| 세밀 관리 | Sentinel | sub-tensor | false sharing | 텐서 내부 hot/cold 분리 |
| 멀티 GPU / LLM | Memory Harvesting, ZeRO-Offload, FlexGen, GMLake, AQUA | GPU pool / tensor block / KV block | 용량 분산 / 전송 병목 / 단편화 | pooling, offload, compression, VMM stitching |
동작 원리
초기 UVM 계열은 GPU가 필요한 데이터를 page fault로 감지하고, CPU DRAM에서 HBM으로 이동시키는 흐름을 최적화합니다. 여기서는 prefetch가 너무 늦으면 stall이 커지고, 너무 이르면 불필요한 이동이 늘어나므로, fault aggregation과 eviction policy의 균형이 핵심입니다.
DNN 계열은 학습 단계의 forward/backward 특성을 이용합니다. forward에서 만든 activation을 바로 HBM에 둘 필요가 없으면 CPU DRAM으로 내리고, backward 직전에 다시 끌어옵니다. Capuchin과 Sentinel은 이때 tensor reuse와 false sharing을 함께 보며, recompute가 더 싼 경우엔 재계산을 택합니다.
LLM 계열은 KV Cache가 길이에 비례해 계속 커진다는 점이 다릅니다. FlexGen은 연산과 I/O를 block 단위로 겹치고, GMLake는 virtual address를 연속처럼 보이게 만들어 파편화를 줄이며, AQUA는 NVLink 패브릭을 활용해 GPU 도메인 안에서 더 가까운 메모리로 KV를 이동시킵니다.
장단점
장점
- 더 큰 모델과 더 긴 문맥을 기존 HBM 한계 밖에서 다룰 수 있습니다.
- 워크로드 특성에 맞춰 page, tensor, KV block 단위로 정책을 바꿀 수 있습니다.
- multi-GPU pooling과 offload를 결합하면 유휴 메모리를 재활용할 수 있습니다.
단점
- 전송 지연이 크면 성능 이득이 쉽게 사라집니다.
- 관리 단위가 작아질수록 metadata와 runtime 복잡도가 증가합니다.
- false sharing, fragmentation, SLO 위반 같은 부작용이 함께 생깁니다.
- GPU, NVLink, VMM, CXL처럼 하드웨어 의존성이 큽니다.
관련 기술/참고 문헌
| 자료 | 링크 | 연결점 |
|---|---|---|
| vDNN (MICRO 2016) | https://arxiv.org/abs/1602.08124 | activation offload와 prefetch의 출발점 |
| Capuchin (ASPLOS 2020) | https://dl.acm.org/doi/10.1145/3373376.3378505 | tensor-based eviction / recompute |
| ZeRO-Offload (USENIX ATC 2021) | https://www.usenix.org/conference/atc21/presentation/ren-jie | optimizer state와 gradient를 CPU로 내리는 학습 오프로딩 |
| FlexGen (ICML 2023) | https://proceedings.mlr.press/v202/sheng23a.html | GPU-CPU-SSD 3계층 배치와 압축 |
| GMLake (ASPLOS 2024) | https://doi.org/10.1145/3620665.3640395 | CUDA VMM 기반 virtual stitching과 단편화 완화 |
| GPU 메모리 아키텍처 기초 | gpu_0005_gpu_memory_architecture_basics.html | HBM, GDDR, bandwidth 배경 |
| KV Cache Offloading Analysis | ../llm/llm_0040_kv_cache_offloading_analysis.html | KV 재사용, offloading, CXL |
| Memory Centric LLM Serving Survey | ../llm/llm_0003_memory_centric_llm_serving_survey.html | KV 관리, tiering, P/D 분리 |
| PagedAttention Analysis | ../llm/llm_0010_pagedattention_analysis.html | page-like KV 관리 |
| vAttention Analysis | ../llm/llm_0020_vattention_analysis.html | CUDA VMM 기반 연속 가상 주소 |
핵심 정리
GPU 이기종 메모리 연구는 HBM 용량 부족을 다루는 방식이 page fault 최적화에서 tensor offload, 그리고 KV Cache tiering으로 진화해 왔습니다. 핵심 차이는 어떤 단위를 옮길지와 언제 옮길지입니다.
이 문맥에서 성능은 단순히 더 큰 메모리를 붙이는 것만으로 나오지 않습니다. 관리 단위, prefetch 정확도, recompute 비용, fragmentation, SLO가 함께 맞아야 합니다.
LLM 시대로 오면서 병목은 페이지보다 KV Cache로 이동했습니다. 그래서 GPU HBM, CPU DRAM, SSD, NVLink, CXL을 엮는 계층형 설계가 앞으로도 계속 중요합니다.