Skip to main content
QUICK REVIEW

[論文レビュー] BLASX: A High Performance Level-3 BLAS Library for Heterogeneous Multi-GPU Computing

Linnan Wang, Wei Wu|arXiv (Cornell University)|Oct 16, 2015
Parallel Computing and Optimization Techniques被引用数 9
ひとこと要約

BLASX は、動的でキャッシュおよび局所性に配慮したランタイムと、通信を最小限に抑え、並列性を最大化する画期的な二段階階層タイルキャッシュを備えた、非均質なマルチGPUシステム向けの高性能で後方互換性のあるレベル3 BLASライブラリです。深層学習では最大2.48倍、MATLABワークロードでは最大12.75倍の性能向上を達成し、通信量は200%も削減されています。

ABSTRACT

Basic Linear Algebra Subprograms (BLAS) are a set of low level linear algebra kernels widely adopted by applications involved with the deep learning and scientific computing. The massive and economic computing power brought forth by the emerging GPU architectures drives interest in implementation of compute-intensive level 3 BLAS on multi-GPU systems. In this paper, we investigate existing multi-GPU level 3 BLAS and present that 1) issues, such as the improper load balancing, inefficient communication, insufficient GPU stream level concurrency and data caching, impede current implementations from fully harnessing heterogeneous computing resources; 2) and the inter-GPU Peer-to-Peer(P2P) communication remains unexplored. We then present BLASX: a highly optimized multi-GPU level-3 BLAS. We adopt the concepts of algorithms-by-tiles treating a matrix tile as the basic data unit and operations on tiles as the basic task. Tasks are guided with a dynamic asynchronous runtime, which is cache and locality aware. The communication cost under BLASX becomes trivial as it perfectly overlaps communication and computation across multiple streams during asynchronous task progression. It also takes the current tile cache scheme one step further by proposing an innovative 2-level hierarchical tile cache, taking advantage of inter-GPU P2P communication. As a result, linear speedup is observable with BLASX under multi-GPU configurations; and the extensive benchmarks demonstrate that BLASX consistently outperforms the related leading industrial and academic projects such as cuBLAS-XT, SuperMatrix, MAGMA and PaRSEC.

研究の動機と目的

  • 既存のマルチGPUレベル3 BLASライブラリの性能が低い主な要因である、負荷の不均衡、非効率な通信、GPUストリームの並列性不足を是正する。
  • GPUの能力やリアルタイム性能が異なる非均質なGPU環境における、現在の実装の限界を克服する。
  • GPU間のピアツピア(P2P)アクセスを活用し、二段階階層タイルキャッシュを導入することで、CPU-GPU間の通信量を最小限に抑える。
  • 低レベルの複雑さ(タスクスケジューリングやメモリ管理など)を抽象化しながら、既存のCPU BLASベースのアプリケーションとの後方互換性を確保する。
  • 多様なマルチGPUシステム、特にキーパーやマキシウェルGPUを含む非均質構成においても、線形的なスケーラビリティと高いパフォーマンスを達成する。

提案手法

  • 行列をタイルに分割するタイルベースのアルゴリズムを採用し、タイルごとの演算を細粒度並列性を実現するための原子的タスクとして扱う。
  • キャッシュおよび局所性に配慮した動的非同期ランタイムを採用し、非均質なGPU間でのワークロードバランスを実現するための適応的タスクスケジューリングを可能にする。
  • 二段階階層タイルキャッシュを実装:L1キャッシュはGPUオンボードメモリを、L2キャッシュは複数GPUのメモリを集約し、CPU-GPU間データ移動を削減する。
  • 非同期タスク実行下でのデータ一貫性を維持するため、新しいLRU置換アルゴリズムとキャッシュ整合性プロトコルを設計する。
  • 非同期タスク進行を活用して、複数GPUストリーム間で通信と計算を重ね合わせ、通信コストを無視できるほどに抑える。
  • パフォーマンス最適化のための単一のチューニングパラメータ(タイルサイズ)を公開し、GPUの飽和度、PCIe効率、並列性のバランスを最小限のユーザ作業で達成する。

実験結果

リサーチクエスチョン

  • RQ1非均質なGPU間での負荷不均衡は、マルチGPUレベル3 BLAS実装においてどのように効果的に是正できるか?
  • RQ2通信オーバーヘッドは、マルチGPUシステムにおいて計算と重ね合わせることでどの程度まで削減・隠蔽できるか?
  • RQ3GPU間P2Pアクセスを活用することで、二段階階層タイルキャッシュがCPU-GPU通信量を効果的に削減できるか?
  • RQ4BLASX は、マルチGPUシステム上で優れたパフォーマンスを発揮しながら、既存のCPU BLASベースのアプリケーションとの後方互換性をどのように達成しているか?
  • RQ5タイルサイズのパフォーマンスへの影響は何か?また、多様なハードウェアプラットフォームに最適なパフォーマンスを提供するための単一のタイルサイズ設定は可能か?

主な発見

  • BLASX は、2台のK40と2台のTITAN Xを搭載した非均質構成を含むマルチGPUシステムでも線形スループットを達成する一方、cuBLAS-XT、MAGMA、SuperMatrixはスケーラビリティが著しく劣る。
  • 3台のK40c GPUを搭載したEverestシステムにおいて、BLASX はDGEMMパフォーマンスで、SuperMatrix、MAGMA、PaRSECといった学術的実装を一貫して上回る。
  • NVIDIAのcuBLAS-XTと比較して、BLASX は平均25%の性能向上を達成し、通信量も200%削減した。
  • Caffe において、BLASX はGPUオンリーモードのCaffeと比較して深層学習の学習を最大2.48倍高速化し、CPUオンリーモードと比較して最大62.3倍高速化した。これにより、最大3.2×10^10パラメータを持つモデルの学習が可能になった。
  • MATLAB において、Everestシステム上での単精度行列乗算では12.75倍、二重精度演算では8.27倍の高速化を達成した。
  • BLASX のパフォーマンスは、タイルサイズが1024×1024のときに最大となり、GPUの飽和度、PCIe効率、利用可能な並列性のバランスが最適化されている。

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

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

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

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