[論文レビュー] Protecting real-time GPU kernels on integrated CPU-GPU SoC platforms
本論文は、統合型CPU-GPU SoC上でリアルタイムGPUカーネルを保護するソフトウェアフレームワークであるBWLOCK++を提案する。実行時において動的にメモリ帯域幅ロックを挿入することで、CPUのメモリ帯域幅をスロットリングし、干渉を防ぐ。CPUのメモリ集約的ワークロード下でも、ソロGPU性能にほぼ等しい性能を達成し、新規のスロットルフェアスケジューラ(TFS)アルゴリズムにより、最大75%のCPUスループット損失低減を実現。NVIDIA Jetson TX2のようなプラットフォームでも、信頼性の高いリアルタイムGPUタスクスケジューリングを可能にする。
Integrated CPU-GPU architecture provides excellent acceleration capabilities for data parallel applications on embedded platforms while meeting the size, weight and power (SWaP) requirements. However, sharing of main memory between CPU applications and GPU kernels can severely affect the execution of GPU kernels and diminish the performance gain provided by GPU. For example, in the NVIDIA Tegra K1 platform which has the integrated CPU-GPU architecture, we noticed that in the worst case scenario, the GPU kernels can suffer as much as 4X slowdown in the presence of co-running memory intensive CPU applications compared to their solo execution. In this paper, we propose a software mechanism, which we call BWLOCK++, to protect the performance of GPU kernels from co-scheduled memory intensive CPU applications.
研究の動機と目的
- 統合型CPU-GPU SoC上で共通スケジュール化されたCPUアプリケーションによるメモリ帯域幅競合が引き起こすリアルタイムGPUカーネルの性能低下を是正すること。
- リソース制限のあるロボットおよび組み込みシステムにおいて、GPUアクセcelレートワークロードの予測可能でリアルタイムな実行を可能にすること。
- GPUカーネルのパフォーマンス保護を実現しつつ、知的なメモリ帯域幅スロットリングによりCPUスループットの低下を最小限に抑えること。
- 既存のCPU中心のリアルタイムスケジュラビリティ解析フレームワークと統合し、エンドツーエンドのシステム検証を可能にすること。
提案手法
- 実行時においてGPUカーネルを動的にインストルメンテーションし、GPU実行中におけるCPUメモリアクセスを制御するメモリ帯域幅ロックを挿入する。
- 各GPUタスクごとのしきい値に基づき、CPUコアのメモリ帯域幅をスロットリングすることで干渉を制限する。
- スロットルフェアスケジューラ(TFS)を提案。これは、GPUカーネル実行中はメモリ集約的タスクよりもCPU集約的タスクを優先するように変更されたCFSである。
- 帯域幅ロックの取得による優先順位逆転を防止するため、優先順位の床プロトコルを用いてGPU実行をシリアライズする。
- プロファイリングに基づくしきい値選択メカニズムを採用し、各GPUタスクごとに最適なメモリ帯域幅制限を設定する。
- GPU実行セグメントをブロッキングを伴うクリティカルセクションとしてモデル化することで、既存のCPU中心のリアルタイムスケジュラビリティ解析フレームワークと統合する。
実験結果
リサーチクエスチョン
- RQ1統合型CPU-GPUプラットフォーム上において、メモリ集約的CPUタスクからの干渉を効果的に排除するためのメモリ帯域幅スロットリングは、実用的か?
- RQ2メモリ帯域幅スロットリングはLinux CFSスケジューラにどのような影響を及ぼすか。その影響をどのように緩和できるか?
- RQ3実行時インストルメンテーションフレームワークにより、GPUタスク保護のための手動カーネル修正の必要性を排除できるか?
- RQ4提案されたフレームワークは、GPUパフォーマンスの隔離を維持しつつ、CPUスループット損失をどの程度低減できるか?
- RQ5BWLOCK++は、混合CPU-GPUシステム向けに既存のリアルタイムスケジュラビリティ解析フレームワークに統合可能か?
主な発見
- NVIDIA Jetson TX2上で、CPUがメモリ集約的ワークロードを実行する状況下でも、BWLOCK++はGPUカーネルの遅延を最大3.3倍からほぼソロGPU性能(1%以内)にまで低減した。
- スロットルフェアスケジューラ(TFS)は、メモリ帯域幅スロットリング下で、デフォルトのCFSスケジューラと比較して、CPUスループット損失を最大75%低減した。
- 評価されたすべてのGPUベンチマークにおいて、BWLOCK++の総実行時オーバーヘッドは、ソロ実行時間の1%未満であった。
- 干渉によるGPUカーネル実行時間の過剰見積もりを低減することで、正確な最悪実行時間(WCET)推定が可能になった。
- BWLOCK++は、既存のCPU中心のリアルタイムスケジュラビリティ解析フレームワークと正常に統合され、エンドツーエンドのシステムレベルの検証が可能になった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。