Skip to main content
QUICK REVIEW

[論文レビュー] CuLDA_CGS: Solving Large-scale LDA Problems on GPUs

Xiaolong Xie, Yun Liang|arXiv (Cornell University)|Mar 13, 2018
Advanced Neural Network Applications参考文献 32被引用数 3
ひとこと要約

CuLDA_CGS は、ワークロードのパーティショニング、メモリアクセス、マルチGPU同期を最適化するGPUアクセラレートでスケーラブルな潜在ディリクレ配布(LDA)フレームワークであり、1つのGPUで最先端のCPUおよびGPU LDAソリューションよりも最大7.3倍の高速化を達成し、4つのGPUではさらに3.0倍の高速化を実現し、大規模トピックモデリングのスループットを顕著に向上させている。

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間で計算をバランスさせる一方で、GPU間通信を最小限に抑えるカスタムワークロードパーティショニング戦略を採用すること。
  • モデル更新時のオーバーヘッドを低減するための細粒度な同期メカニズムを実装すること。
  • 部分式の再利用とデータ構造の圧縮により、崩壊型ギブスサンプリングアルゴリズムを最適化し、メモリ帯域幅の圧力を軽減すること。
  • ソフトウェア管理キャッシュとメモリアクセスパターンを活用してキャッシュ効率を向上させ、グローバルメモリトランザクションを削減すること。
  • 最小限の同期遅延で並列サンプリングとモデル集約を効率的に行えるマルチGPUデータレイアウトを設計すること。
  • 特にLDAにおける1トークンあたりO(K)のサンプリングステップを最大限に活用するため、CUDAカーネルを活用してGPUアーキテクチャの並列性を完全に活用すること。

実験結果

リサーチクエスチョン

  • RQ1どのようにしてLDA学習をGPUアーキテクチャに効率的にマッピングすることで、メモリ帯域幅ボトルネックを克服できるか?
  • RQ2LDA学習における複数GPU間の高スケーラビリティを実現するためのワークロードパーティショニングおよび同期戦略は何か?
  • RQ3単一マシンマルチGPULDAシステムは、スループットと収束速度の面で分散型CPUベースシステムを上回ることができるか?
  • RQ4提案された最適化スタック(アルゴリズム的、並列化、データレイアウト)は、実世界のワークロードにおいて、既存のGPUおよびCPUベースLDAソリューションと比較してどのように差をつけるか?
  • RQ5CuLDA_CGS は、異なるGPU世代および異なるGPU数の環境でもどの程度スケーリング可能か?

主な発見

  • CuLDA_CGS は、評価されたすべてのプラットフォームおよびデータセットで、最先端のCPUベースのWarpLDAよりも最大7.3倍の高いサンプリング速度を達成している。
  • 1つのTitan X GPUで、NYTimesデータセットに対して1秒間に173.6億トークンを処理し、より強力なGTX 1080 GPUを搭載したSaberLDA(1秒間に120億トークン)を上回っている。
  • CuLDA_CGS は複数GPU間で効率的なスケーリングを実現し、1つのGPUと比較して4つのGPUで2.99倍の高速化を達成しており、強力なマルチGPUスケーラビリティを示している。
  • VoltaおよびPascalアーキテクチャを含むさまざまなGPUアーキテクチャでも高いパフォーマンスを維持しており、クロスプラットフォームの移植性と最適化の有効性を示している。
  • データ圧縮と部分式の再利用によりメモリフットプリントを最小限に抑え、メモリ帯域幅の圧力を軽減したため、キャッシュ最適化されたCPUソリューションよりも効率的である。
  • CuLDA_CGS のパフォーマンス優位性は、GPUメモリ帯域幅の効率的利用と同期オーバーヘッドの低減に起因し、ネットワーク制限の分散LDAシステムを上回っている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。