Skip to main content
QUICK REVIEW

[논문 리뷰] SuperNeurons: Dynamic GPU Memory Management for Training Deep Neural Networks

Linnan Wang, Jinmian Ye|arXiv (Cornell University)|2018. 01. 13.
Advanced Neural Network Applications참고 문헌 26인용 수 23
한 줄 요약

SuperNeurons는 GPU DRAM의 물리적 한계를 초월해 깊은 신경망을 훈련할 수 있도록 동적 GPU 메모리 스케줄링 런타임을 도입한다. 생존 분석, 통합 텐서 풀, 비용 인식 재계산을 조합함으로써 피크 메모리 사용량을 최대 레이어 메모리로 감소시켜, 12GB K40c GPU에서 ResNet2500(10⁴ 레이어)을 훈련할 수 있도록 한다. 이는 텐서플로우 대비 최대 3.24배 더 깊은 모델 훈련을 가능하게 하며, 프레임워크 간 최고의 성능을 달성한다.

ABSTRACT

Going deeper and wider in neural architectures improves the accuracy, while the limited GPU DRAM places an undesired restriction on the network design domain. Deep Learning (DL) practitioners either need change to less desired network architectures, or nontrivially dissect a network across multiGPUs. These distract DL practitioners from concentrating on their original machine learning tasks. We present SuperNeurons: a dynamic GPU memory scheduling runtime to enable the network training far beyond the GPU DRAM capacity. SuperNeurons features 3 memory optimizations, extit{Liveness Analysis}, extit{Unified Tensor Pool}, and extit{Cost-Aware Recomputation}, all together they effectively reduce the network-wide peak memory usage down to the maximal memory usage among layers. We also address the performance issues in those memory saving techniques. Given the limited GPU DRAM, SuperNeurons not only provisions the necessary memory for the training, but also dynamically allocates the memory for convolution workspaces to achieve the high performance. Evaluations against Caffe, Torch, MXNet and TensorFlow have demonstrated that SuperNeurons trains at least 3.2432 deeper network than current ones with the leading performance. Particularly, SuperNeurons can train ResNet2500 that has $10^4$ basic network layers on a 12GB K40c.

연구 동기 및 목표

  • 제한된 GPU DRAM 용량으로 인해 깊어지고 넓어지는 신경망 훈련에서 발생하는 증가하는 메모리 병목 현상을 해결한다.
  • Caffe, Torch, MXNet, 텐서플로우와 같은 기존 프레임워크에서 사용하는 정적 메모리 감소 기법이 비선형 아키텍처에서 발생하는 동적 데이터 및 종속성 변동에 대응하지 못하는 한계를 극복한다.
  • 수동적인 모델 분할 또는 다중 GPU 분할 없이도 현대 GPU의 물리적 메모리 용량을 초월하는 매우 깊은 네트워크의 엔드 투 엔드 훈련을 가능하게 한다.
  • 성능 인식 스케줄링과 커뮤니케이션 오버랩을 통합함으로써 극단적인 메모리 최적화에도 불구하고 높은 훈련 성능을 유지한다.
  • 사용자에게 투명한 런타임을 제공하여 동적으로 텐서 할당, 해제, 오프로딩을 관리하면서도 레이어 수준에서 최소 피크 메모리 사용량을 보장한다.

제안 방법

  • 생존 분석은 순방향 및 역방향 전파 중 더 이상 필요하지 않은 텐서를 식별하고 회수함으로써 피크 메모리 사용량을 ∑(l_i^f + l_i^b)에서 ∑(l_i^f) + l_N^b로 감소시킨다.
  • 통합 텐서 풀(UTP)은 고계산, 고메모리 사용 레이어(체크포인트)를 외부 메모리로 오프로딩하여 피크 메모리를 ∑(l_i^f ∉ checkpoints) + l_N^b로 추가로 감소시킨다.
  • 비용 인식 재계산은 저비용 또는 체크포인트가 아닌 레이어의 순방향 결과를 선택적으로 삭제하고 역방향 전파 중에 재구성함으로써 피크 메모리를 max(l_i)로 최소화한다. 여기서 max(l_i)는 어떤 단일 레이어에서도 요구하는 최대 메모리 사용량이다.
  • 힙 기반 할당기로 사전 할당된 GPU 메모리 풀은 메모리 세그먼트를 재사용함으로써 할당/해제 오버헤드를 분할하여 빈번한 텐서 연산의 런타임 비용을 감소시킨다.
  • GPU DRAM 기반의 LRU 텐서 캐시는 자주 액세스되는 텐서를 재사용함으로써 UTP 작업 중 CPU와 GPU 간의 데이터 이동을 최소화하면서 커뮤니케이션과 계산을 오버랩한다.
  • 런타임은 텐서를 스케줄링 단위로 사용함으로써 딥 러닝 프레임워크와 원활하게 통합되며, cuDNN의 레이어 기반 계산 모델과 일치하고 사용자에게 투명하다.

실험 결과

연구 질문

  • RQ1동적 메모리 스케줄링은 GPU DRAM 용량의 제약을 초월해 깊은 신경망 훈련에서 피크 메모리 사용량을 어떻게 줄일 수 있는가?
  • RQ2생존 분석과 텐서 재사용은 메모리 액세스 패턴이 변하는 비선형, 깊은 아키텍처에서 얼마나 메모리 압박을 줄일 수 있는가?
  • RQ3통신과 계산을 오버랩하면서 GPU DRAM에서 외부 메모리로 텐서를 오프로딩하는 것이 데이터 병렬 훈련에서 높은 훈련 스루풋을 유지할 수 있는가?
  • RQ4비용 인식 재계산은 훈련 성능 저하 없이 계산을 메모리 절약과 교환하는 데 얼마나 효과적인가?
  • RQ5통합적이고 동적인 메모리 관리 시스템은 다양한 딥 러닝 프레임워크에서 정적 메모리 감소 기법보다 메모리 효율성과 훈련 속도 측면에서 뛰어나게 성능을 낼 수 있는가?

주요 결과

  • SuperNeurons는 12GB K40c GPU에서 약 10⁴개의 기본 레이어를 가진 ResNet2500을 훈련시킬 수 있으며, 이는 현재 프레임워크의 메모리 용량을 초월하는 모델이다.
  • 텐서플로우 대비 최소 3.2432배 더 깊은 네트워크 훈련, MXNet 대비 4.0000배, Torch 대비 12.6316배, Caffe 대비 12.9730배 더 깊은 훈련을 달성한다.
  • 피크 메모리 사용량은 max(l_i)로 감소하여, 레이어 수준에서 이론적 최소값을 달성한다.
  • SuperNeurons는 다양한 프레임워크에서 최고의 훈련 성능을 유지하며, 선형(예: AlexNet, VGG16) 및 비선형(예: ResNet50→152, Inception V4) 네트워크에서 모두 일관된 속도 우수성을 보여준다.
  • 효율적인 커뮤니케이션 오버랩과 캐싱 덕분에 배치 크기가 증가함에 따라 성능 저하가 최소한이지만, GPU 메모리에 하나의 레이어만 올라갈 수 있는 경우는 증가한다.
  • 시스템은 Caffe가 지원하는 모델보다 최대 19.8배 더 큰 모델을 지원하여 현재 최첨단 프레임워크를 뛰어넘는 뛰어난 확장성을 보여준다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.