Skip to main content
QUICK REVIEW

[論文レビュー] Programming Massively Parallel Architectures using MARTE: a Case Study

Antônio Wendell De Oliveira Rodrigues, Frédéric Guyomarc'h|arXiv (Cornell University)|Mar 24, 2011
Parallel Computing and Optimization Techniques参考文献 4被引用数 3
ひとこと要約

本論文は、UMLおよびMARTEプロファイルを用いたモデル駆動型開発(MDE)アプローチを提案し、GPUアクセラレート信号処理アプリケーション向けに最適化されたOpenCLコードを自動生成する。モデルからテキストへのコード生成に、パフォーマンスに配慮した変換を適用することで、フレームワークは逐次CPUコードに対して最大10倍の高速化、非最適化GPUコードに対して25%の性能向上を達成し、大規模並列アーキテクチャにおける高性能コンピューティングのためのMDEの有効性を示している。

ABSTRACT

Nowadays, several industrial applications are being ported to parallel architectures. These applications take advantage of the potential parallelism provided by multiple core processors. Many-core processors, especially the GPUs(Graphics Processing Unit), have led the race of floating-point performance since 2003. While the performance improvement of general- purpose microprocessors has slowed significantly, the GPUs have continued to improve relentlessly. As of 2009, the ratio between many-core GPUs and multicore CPUs for peak floating-point calculation throughput is about 10 times. However, as parallel programming requires a non-trivial distribution of tasks and data, developers find it hard to implement their applications effectively. Aiming to improve the use of many-core processors, this work presents an case-study using UML and MARTE profile to specify and generate OpenCL code for intensive signal processing applications. Benchmark results show us the viability of the use of MDE approaches to generate GPU applications.

研究の動機と目的

  • 多数コアGPUにおける効果的な並列プログラミングの難しさ、特に専門外の開発者にとっての課題に対処すること。
  • UMLおよびMARTEを用いたモデル駆動型開発(MDE)が、高性能GPUコードを生成する可能性を検討すること。
  • ホストとデバイス間のメモリ転送を自動的に最適化すること。これはGPUコンピューティングにおける主要なパフォーマンスボトルネックである。
  • 自動生成されたOpenCLコードが、手動で最適化された実装と同等のパフォーマンスを達成できるかどうかを評価すること。

提案手法

  • UMLベースのアプリケーションモデルを、MARTEプロファイルで拡張し、ソフトウェアコンponent、ハードウェアアーキテクチャ、データ割り当てを指定する。
  • QVTOに基づく変換チェーンにより、高レベルモデルをパフォーマンスアノテーションを含む中間モデルに変換する。
  • Acceleoテンプレートを用いて中間モデルからOpenCLコードを生成し、変換中に最適化を適用する。
  • パフォーマンスに配慮した変換により、不要なホストからデバイスおよびデバイスからホストへのデータ転送を検出し、削除する。
  • タスクの多重性に基づいて、ワークグループおよびワークアイテムの自動トポロジー生成をサポートする。
  • メモリ階層の認識をモデルに統合し、変数を適切なメモリ領域(グローバル、ローカル、プライベート、定数)に割り当てる。

実験結果

リサーチクエスチョン

  • RQ1UMLおよびMARTEを用いたMDE技術は、GPUアーキテクチャ上で競争力のあるパフォーマンスを達成するOpenCLコードを生成できるか?
  • RQ2特に、メモリ転送オーバーヘッドの低減に向けた自動最適化は、モデル駆動型GPUコード生成においてどの程度効果的か?
  • RQ3自動生成コードが、手動で最適化されたOpenCL実装とどの程度性能を一致させられるか?
  • RQ4モデル駆動型アプローチは、低レベルのGPUプログラミングの複雑さを抽象化しつつ、高いパフォーマンスを維持できるか?

主な発見

  • MDEパイプラインを介して生成された最適化済みOpenCLコードは、逐次CPU実装比で10倍の高速化を達成した。
  • フレームワークは、知的なメモリ転送最適化により、ホストからデバイスへのデータ転送時間を約30%、デバイスからホストへの転送時間を70%削減した。
  • 最適化済みバージョンは、非最適化された生成OpenCLコード比で25%のパフォーマンス向上を達成した。
  • 自動生成コードの構造と最適化の意思決定は、人手で最適化された実装と類似しており、モデル駆動型アプローチの高い表現力が示された。
  • 非最適化バージョンでは、メモリ転送オーバーヘッドが総GPU実行時間の70%以上を占めており、パフォーマンスに与える影響が顕著であった。
  • 結果から、MDEとMARTEを用いることで、H.263のダウンスケーリングなどの複雑な信号処理ワークロードに対しても、高パフォーマンスGPUコードのモデル化と生成が有効に可能であることが確認された。

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

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

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

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