Skip to main content
QUICK REVIEW

[논문 리뷰] CuLDA_CGS: Solving Large-scale LDA Problems on GPUs

Xiaolong Xie, Yun Liang|arXiv (Cornell University)|2018. 03. 13.
Advanced Neural Network Applications참고 문헌 32인용 수 3
한 줄 요약

CuLDA_CGS는 단일 GPU에서 최신 CPU 및 GPU 기반 LDA 솔루션 대비 최대 7.3배의 성능 향상을 달성하며, 네 개의 GPU에서 추가로 3.0배의 성능 향상을 이룩한 GPU 가속화된 고스케일 잠재 디리클레 분할(LDA) 프레임워크이다. 이는 대규모 토픽 모델링의 처리량을 크게 향상시킨다.

ABSTRACT

Latent Dirichlet Allocation(LDA) is a popular topic model. Given the fact that the input corpus of LDA algorithms consists of millions to billions of tokens, the LDA training process is very time-consuming, which may prevent the usage of LDA in many scenarios, e.g., online service. GPUs have benefited modern machine learning algorithms and big data analysis as they can provide high memory bandwidth and computation power. Therefore, many frameworks, e.g. Ten- sorFlow, Caffe, CNTK, support to use GPUs for accelerating the popular machine learning data-intensive algorithms. However, we observe that LDA solutions on GPUs are not satisfying. In this paper, we present CuLDA_CGS, a GPU-based efficient and scalable approach to accelerate large-scale LDA problems. CuLDA_CGS is designed to efficiently solve LDA problems at high throughput. To it, we first delicately design workload partition and synchronization mechanism to exploit the benefits of mul- tiple GPUs. Then, we offload the LDA sampling process to each individual GPU by optimizing from the sampling algorithm, par- allelization, and data compression perspectives. Evaluations show that compared with state-of-the-art LDA solutions, CuLDA_CGS outperforms them by a large margin (up to 7.3X) on a single GPU. CuLDA_CGS is able to achieve extra 3.0X speedup on 4 GPUs. The source code is publicly available on https://github.com/cuMF/ CuLDA_CGS.

연구 동기 및 목표

  • CPU 및 분산 시스템에서 발생하는 메모리 대역폭 제약으로 인한 대규모 LDA 학습의 성능 저하 문제를 해결한다.
  • 불규칙한 메모리 접근과 낮은 다중 GPU 확장성으로 인해 GPU 하드웨어의 잠재력을 제대로 활용하지 못하는 기존 GPU 기반 LDA 솔루션의 비효율성을 극복한다.
  • 단일 머신 아키텍처를 기반으로 다중 GPU 환경에서 고처리량과 강력한 확장성을 달성하는 시스템을 설계한다.
  • 알고리즘적 최적화, 병렬 처리 및 데이터 압축 기법을 통해 LDA 샘플링 프로세스를 최적화하여 메모리 프로파일을 최소화하고 GPU 활용도를 극대화한다.

제안 방법

  • 다중 GPU 간의 계산 부하를 균형 있게 분배하면서도 상호 간 통신을 최소화하는 맞춤형 워크로드 파artition 전략을 적용한다.
  • 모델 업데이트 시 GPU 간 오버헤드를 줄이기 위해 세밀한 수준의 동기화 메커니즘을 구현한다.
  • 서브 표현 재사용 및 데이터 구조 압축을 통해 병합된 지피스 샘플링 알고리즘을 최적화하여 메모리 대역폭 압력을 감소시킨다.
  • 소프트웨어 기반 캐싱 및 메모리 접근 패턴을 활용하여 캐시 효율성을 향상시키고 글로벌 메모리 트랜잭션을 줄인다.
  • 최소한의 동기화 지연으로 병렬 샘플링과 모델 집계를 효율적으로 수행할 수 있도록 다중 GPU 데이터 레이아웃을 설계한다.
  • LDA의 토큰당 O(K) 샘플링 단계에서 GPU 아키텍처의 막대한 병렬성을 극대화하기 위해 CUDA 커널을 활용한다.

실험 결과

연구 질문

  • RQ1어떻게 하면 LDA 학습을 GPU 아키텍처에 효율적으로 매핑하여 메모리 대역폭 제약을 극복할 수 있는가?
  • RQ2어떤 워크로드 파artition 및 동기화 전략이 LDA 학습에서 다중 GPU 간의 높은 확장성을 가능하게 하는가?
  • RQ3단일 머신 기반 다중 GPU LDA 시스템은 분산 CPU 기반 시스템 대비 처리량과 수렴 속도 측면에서 뛰어나게 성능을 낼 수 있는가?
  • RQ4제안된 최적화 스택(알고리즘적, 병렬 처리, 데이터 레이아웃)은 실제 워크로드에서 기존 GPU 및 CPU 기반 LDA 솔루션과 비교해 어떻게 성능을 냈는가?
  • RQ5CuLDA_CGS는 다양한 GPU 세대 및 GPU 수의 변화에 따라 어느 정도 확장 가능한가?

주요 결과

  • CuLDA_CGS는 평가된 모든 플랫폼과 데이터셋에서 최신 CPU 기반 솔루션인 WarpLDA 대비 최대 7.3배 더 빠른 샘플링 속도를 달성한다.
  • 단일 Titan X GPU에서 NYTimes 데이터셋 기준으로 173.6M 토큰/초를 처리하며, 더 강력한 GTX 1080 GPU를 사용한 SaberLDA(120M 토큰/초)를 뛰어넘는 성능을 보인다.
  • CuLDA_CGS는 다중 GPU 간에 효율적인 확장성을 보이며, 단일 GPU 대비 네 개의 GPU에서 2.99배의 성능 향상을 기록하여 강력한 다중 GPU 확장성을 입증한다.
  • Volta 및 Pascal 아키텍처를 포함한 다양한 GPU 아키텍처에서도 높은 성능을 유지하여, 교차 플랫폼 이식성과 최적화 능력을 입증한다.
  • 데이터 압축 및 서브 표현 재사용을 통해 메모리 프로파일을 최소화함으로써 메모리 대역폭 압력을 감소시켜, 캐시 최적화된 CPU 솔루션보다 더 효율적임을 입증한다.
  • CuLDA_CGS의 성능 우월성은 GPU 메모리 대역폭의 효율적 활용과 낮은 동기화 오버헤드 덕분이며, 네트워크 제약이 있는 분산 LDA 시스템을 뛰어넘는다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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