Skip to main content
QUICK REVIEW

[論文レビュー] Improving the performance of the linear systems solvers using CUDA

Bogdan Oancea, Tudorel Andrei|arXiv (Cornell University)|Nov 23, 2015
Parallel Computing and Optimization Techniques参考文献 18被引用数 3
ひとこと要約

この論文では、CCUDAフレームワークを活用してGPUの並列処理を活かし、最適化されたCPU実装と比較して最大80倍の高速化を達成する、CUDAアクセラレートライブラリを提示している。このアプローチは、NVIDIA GPUに行列演算をオフロードすることで、大規模な科学技術計算ワークロードを対象としており、GPUアクセラレートソルバを用いた密行列線形システムの解法において顕著な性能向上を示している。

ABSTRACT

Parallel computing can offer an enormous advantage regarding the performance for very large applications in almost any field: scientific computing, computer vision, databases, data mining, and economics. GPUs are high performance many-core processors that can obtain very high FLOP rates. Since the first idea of using GPU for general purpose computing, things have evolved and now there are several approaches to GPU programming: CUDA from NVIDIA and Stream from AMD. CUDA is now a popular programming model for general purpose computations on GPU for C/C++ programmers. A great number of applications were ported to CUDA programming model and they obtain speedups of orders of magnitude comparing to optimized CPU implementations. In this paper we present an implementation of a library for solving linear systems using the CCUDA framework. We present the results of performance tests and show that using GPU one can obtain speedups of about of approximately 80 times comparing with a CPU implementation.

研究の動機と目的

  • 大規模な科学的・工学的応用を対象とした線形システムソルバの高速化を目的とする。
  • 密行列代数演算におけるCUDAを用いたGPUアクセラレーションの性能向上を評価することを目的とする。
  • CCUDAフレームワークを用いてGPUアクセラレートソルバライブラリを実装およびベンチマークすることを目的とする。
  • GPUベースのソルバと高度に最適化されたCPU実装との性能を比較することを目的とする。

提案手法

  • NVIDIA GPU向けにCUDAプログラミングモデルを用いた線形システムソルバライブラリの実装。
  • CPUベースの線形代数カーネルをCUDAカーネルを用いてGPUハードウェア上で実行可能に移植。
  • 線形システムにおける行列因子分解および解法ステップの高速化に、GPUの巨大な並列処理能力を活用。
  • GPU上の占有率とスループットを最大化するためのメモリアクセスパターンおよびカーネル起動の設計。
  • 低レベルのCUDA詳細を抽象化し、パフォーマンスと移植性を向上させるためにCCUDAフレームワークの利用。
  • レイテンシの低減とFLOP効率の向上を図るため、カーネル起動およびメモリコalescingの最適化。

実験結果

リサーチクエスチョン

  • RQ1CUDAによるGPUアクセラレーションは、CPUベースの実装と比較して線形システムソルバの性能を顕著に向上させることができるか?
  • RQ2GPUに密行列代数演算をオフロードした場合、どの程度の高速化が達成できるか?
  • RQ3CCUDAフレームワークは、GPU上で効率的かつ移植性の高い線形ソルバの開発をどのように支援するか?
  • RQ4GPUアクセラレート線形システムソルバにおける主なパフォーマンスボトルネックは何か、そしてそれらはどのように緩和できるか?

主な発見

  • GPUアクセラレートソルバは、最適化されたCPU実装と比較して最大80倍の高速化を達成した。
  • 性能向上は、現代のGPUが有する巨大な並列処理能力と高いメモリ帯域幅に起因する。
  • CCUDAフレームワークのおかげで、線形システムソルバをGPUに効率的に移植することができ、開発のオーバーヘッドを管理可能にした。
  • 結果から、GPUアクセラレーションは科学技術計算における大規模な密行列線形システムに対して非常に効果的であることが示された。
  • メモリアクセスの最適化およびカーネル起動の設定が、GPU上で高いパフォーマンスを達成する上で極めて重要であった。

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

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

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

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