Skip to main content
QUICK REVIEW

[論文レビュー] Reordering GPU Kernel Launches to Enable Efficient Concurrent Execution

Teng Li, Vikram K. Narayana|arXiv (Cornell University)|Nov 25, 2015
Parallel Computing and Optimization Techniques参考文献 8被引用数 3
ひとこと要約

本論文は、カーネルを変更せずに、独立したカーネルの起動順序を最適化することで、GPUにおける並列実行を最大化するためのカーネル起動再順序付け手法を提案する。実行ラウンドごとのリソース利用率(レジスタ、共有メモリ、ワープ)および命令/メモリ比をバランスさせることで、近似的に最適なパフォーマンスを達成する。順列空間内で94.8パーセンタイル以上を記録し、最悪の順序に対して最大5.185倍の高速化を達成した。

ABSTRACT

Contemporary GPUs allow concurrent execution of small computational kernels in order to prevent idling of GPU resources. Despite the potential concurrency between independent kernels, the order in which kernels are issued to the GPU will significantly influence the application performance. A technique for deriving suitable kernel launch orders is therefore presented, with the aim of reducing the total execution time. Experimental results indicate that the proposed method yields solutions that are well above the 90 percentile mark in the design space of all possible permutations of the kernel launch sequences.

研究の動機と目的

  • GPUアプリケーションにおける並列カーネル実行のためのハードウェア支援にもかかわらず、非最適なカーネル起動順序が引き起こすパフォーマンス劣化を是正すること。
  • CUDAストリームにおける可換でない並列実行に起因する誤った依存関係およびリソースの未利用を克服すること。
  • SMリソース利用率を最大化し、実行ラウンド数を最小限に抑えるスケジューリングアルゴリズムを開発すること。
  • 各実行ラウンドにおけるカーネル間の計算とメモリアクセス比(Inst/Mem)をバランスさせることで、GPU全体の実行時間を短縮すること。
  • ソースコードの変更やカーネル変換を必要としない、カーネルに依存しないソリューションを提供すること。

提案手法

  • 各カーネルごとにリソースおよびバランス指標を計算するため、カーネルプロファイリングデータ(N_tblk_i, N_reg_i, N_shm_i, N_warp_i, R_i)を分析する。
  • スコア行列を用いて、各実行ラウンドにおけるリソース利用率およびR_comb(統合Inst/Mem比)に与える組み合わせの影響に基づき、カーネルペアを順位付けする。
  • リソース利用率とバランスを最大化する組み合わせを優先順位として採用するグリーディー・アルゴリズムを適用し、順次カーネルを実行ラウンドに割り当てる。
  • 各実行ラウンドがSMリソース制限(N_reg_SM, N_shm_SM, N_warp_SM, N_blk_SM)を超過しないように保証し、リソースが枯渇した場合にのみラウンドを開く。
  • 各ラウンドの統合R_combを次式で計算する:R_comb = 合計命令数 / (4 × (グローバルストア + L1キャッシュミスロード数))。
  • 全カーネルがスケジューリングされるまで、現在のラウンドでスコアが最も高いカーネルを選択して逐次的にカーネル列を構築する。

実験結果

リサーチクエスチョン

  • RQ1複数の独立したカーネルが同じGPUにスケジューリングされる場合、カーネル起動順序がGPU実行時間に与える影響は何か?
  • RQ2SMリソース利用率とメモリ/計算比をバランスさせることで、カーネル起動順序の再配置が並列実行をどの程度向上できるか?
  • RQ3カーネルコードの変更なしに、カーネルに依存しない再順序付け戦略が、ランダムまたは単純な順序付けを上回るか?
  • RQ4ヒューリスティックに基づく起動順序付けアルゴリズムは、多様なGPUワークロードにおいて最適な順列にどの程度近づけるか?
  • RQ5共有メモリ、グリッドサイズ、ブロックサイズの変動が、起動順序付けの有効性に与える影響は何か?

主な発見

  • 提案手法は、EpBsEsSw-8実験における全40,320順列の中央値として94.8パーセンタイルのパフォーマンス順位を達成し、近似的に最適な振るまいを示した。
  • 8つのカーネル(4つの異なるアプリケーションから)を含むEpBsEsSw-8ワークロードでは、最悪の起動順序に対して5.185倍の高速化を達成した。
  • EP-6-shm実験では、91.5パーセンタイルの順位を達成し、最適実行時間からわずか4.21%の差異にとどまった。
  • ランダム順序よりも一貫して優れており、ランダムシーケンスよりも少なくとも16.1%のパフォーマンス向上を達成する確率が50%であった。
  • 共有メモリ、グリッドサイズ、ブロックサイズの変更を含む6つのベンチマーク実験すべてで、96.5パーセンタイル以上を達成した。
  • カーネルが同一でなく、レジスタや共有メモリなどのリソース制限が競合を引き起こす場合にのみ、起動順序付けが有効である。それ以外の場合は、起動順序に影響がない。

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

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

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

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