728x90
개요
GPU 메모리 단편화(GPU Memory Fragmentation)는 GPU의 가용 메모리 공간이 작은 조각으로 나뉘어 실제 사용 가능한 연속된 메모리 블록이 부족해지는 현상입니다. 이로 인해 총 여유 메모리 공간은 충분함에도 불구하고 Out-of-Memory(OOM) 에러가 발생할 수 있습니다.
내용
GPU 메모리 단편화는 GPU 메모리 공간이 작은 조각들로 나뉘어, 실제로는 전체 여유 공간이 충분함에도 불구하고 연속적으로 필요한 크기의 메모리 블록을 할당하지 못하는 현상을 의미합니다.
GPU 메모리 단편화가 발생하는 경우는 아래와 같습니다.
- 빈번한 메모리 할당/해제: 학습 과정에서 다양한 크기의 텐서를 반복적으로 생성 및 제거할 때 발생. 예를 들어 동적 계산 그래프 사용 시 메모리 요구량이 불규칙하게 변하면서 파편화가 심화됨
- 캐싱 할당자 동작: PyTorch 등의 프레임워크는 메모리 재사용을 위해 해제된 메모리를 즉시 OS에 반환하지 않음. 이로 인해 크기가 다른 메모리 청크가 누적되며 단편화가 발생
- 비연속적 연산: 모델 병렬처리 시 서로 다른 GPU 간 비동기적 연산이 메모리 사용 패턴을 불규칙하게 만듬
GPU 메모리 단편화로 발생하는 영향은 아래와 같습니다.
- OOM 에러 유발: 10GB 중 8GB가 여유 있어도 2GB의 연속된 블록이 없으면 할당 실패
- 성능 저하: 메모리 할당 실패 시 추가적인 가비지 컬렉션 오버헤드 발생
- 배치 크기 제한: 큰 배치 사용 시 단편화로 인해 실제 활용 가능 메모리 감소
메모리 단편화는 LLM 학습 시 40% 이상의 성능 저하를 유발할 수 있으므로, 프로파일링 도구를 활용한 사전 진단이 필수적입니다. NVIDIA에서 공식적으로 제공하는 메모리 프로파일링 도구(예: Nsight Systems, Nsight Compute 등)를 통해 GPU 메모리 할당 및 해제 시퀀스를 추적하여 단편화를 예방할 수 있습니다.
728x90
'AI & GPU' 카테고리의 다른 글
임베딩 (0) | 2025.06.05 |
---|---|
치명적 망각 (0) | 2025.05.24 |
LLM에 대한 적대적 공격 (0) | 2025.05.24 |
지식 증류 (Knowledge Distillation) (2) | 2025.05.24 |
GPUDirect RDMA (0) | 2025.05.23 |