Skip to main content
QUICK REVIEW

[論文レビュー] ALP: Alleviating CPU-Memory Data Movement Overheads in Memory-Centric Systems

Nika Mansouri Ghiasi, Nandita Vijaykumar|arXiv (Cornell University)|Dec 13, 2022
Parallel Computing and Optimization Techniques被引用数 1
ひとこと要約

ALP は、コンパイラ解析とランタイムハードウェア支援を用いて、必要になる前にデータを事前に転送することで、CPU とニアデータ処理(NDP)ユニット間のセグメント間データ移動オーバーヘッドを能動的に軽減する、プログラマーフレンドリーなハードウェア・ソフトウェア共同設計手法である。これにより、効率的なアプリケーション分割が可能となり、多様なワークロードにおいてホストオンリーエグゼキューション比で平均 54.3% のスピードアップ、NDPオンリーエグゼキューション比で 45.4% のスピードアップを達成する。

ABSTRACT

Partitioning applications between NDP and host CPU cores causes inter-segment data movement overhead, which is caused by moving data generated from one segment (e.g., instructions, functions) and used in consecutive segments. Prior works take two approaches to this problem. The first class of works maps segments to NDP or host cores based on the properties of each segment, neglecting the inter-segment data movement overhead. The second class of works partitions applications based on the overall memory bandwidth saving of each segment, and does not offload each segment to the best-fitting core if they incur high inter-segment data movement. We show that 1) mapping each segment to its best-fitting core ideally can provide substantial benefits, and 2) the inter-segment data movement reduces this benefit significantly. To this end, we introduce ALP, a new programmer-transparent technique to leverage the performance benefits of NDP by alleviating the inter-segment data movement overhead between host and memory and enabling efficient partitioning of applications. ALP alleviates the inter-segment data movement overhead by proactively and accurately transferring the required data between the segments. This is based on the key observation that the instructions that generate the inter-segment data stay the same across different executions of a program on different inputs. ALP uses a compiler pass to identify these instructions and uses specialized hardware to transfer data between the host and NDP cores at runtime. ALP efficiently maps application segments to either host or NDP considering 1) the properties of each segment, 2) the inter-segment data movement overhead, and 3) whether this overhead can be alleviated in a timely manner. We evaluate ALP across a wide range of workloads and show on average 54.3% and 45.4% speedup compared to only-host CPU or only-NDP executions, respectively.

研究の動機と目的

  • メモリ中心のシステムにおけるホスト CPU と NDP 計算ユニット間のセグメント間データ移動によって引き起こされるパフォーマンス劣化を是正すること。
  • メモリバウンドセグメントを NDP ユニットにオフロードすることで得られる利点を損なう、データ移動に起因するパフォーマンス影響を同定および緩和すること。
  • アーキテクチャ的適合性とセグメント間データ移動オーバーヘッドの両方を考慮することで、ホストと NDP コア間の効率的なアプリケーション分割を可能にすること。
  • プログラマの関与なしに、さまざまな NDP システムアーキテクチャに適用可能な、透明性がありスケーラブルなソリューションを構築すること。

提案手法

  • コンパイラパスを用いて、セグメント間データを生成する命令を静的に同定し、必要なデータ転送を予測可能にする。
  • コンパイラが同定したデータ依存関係に基づき、ランタイムにおけるハードウェア支援を活用して、ホストと NDP コア間でデータを能動的に転送する。
  • 静的(コンパイラ)および動的(ランタイム)情報を統合し、計算的利点とデータ移動コストのバランスを取った知的で最適な分割意思決定を実現する。
  • セグメントレベルの特性(例:メモリアクセスパターン)と推定されるデータ移動オーバーヘッドを考慮し、各基本ブロックを最適な実行ユニットにマッピングする。
  • セグメント間データを生成する命令がプログラム実行の繰り返しにおいて一貫しており、信頼性の高い予測が可能であるという観察を活用する。
  • 論理レイヤーで特定のハードウェア詳細から抽象化することで、さまざまな NDP アーキテクチャへの柔軟な展開を可能にする。

実験結果

リサーチクエスチョン

  • RQ1ホストと NDP ユニット間のセグメント間データ移動が、メモリ中心のシステムにおけるアプリケーション分割のパフォーマンスにどのように影響を与えるか。
  • RQ2セグメント間データ移動が、メモリバウンドセグメントを NDP ユニットにオフロードすることによるパフォーマンス利点をどの程度低下させるか。
  • RQ3ホストと NDP コア間で能動的なデータ転送を実施することで、セグメント間データ移動に起因するパフォーマンスコストを軽減し、NDP の潜在的性能を最大限に引き出せるか。
  • RQ4プログラマの関与なしに、効率的で透明性がありスケーラブルなホストと NDP ユニット間のアプリケーション分割を実現できるか。

主な発見

  • ALP は、ホスト CPU のみでアプリケーションを実行した場合と比較して、平均 54.3% のスピードアップを達成しており、顕著なパフォーマンス向上を示している。
  • ALP は、NDP コアでのみアプリケーションを実行した場合と比較して、平均 45.4% のスピードアップを達成しており、NDP リソースの効果的利用を示している。
  • ALP が導入されない場合、セグメント間データ移動はパフォーマンス利点を最大で 56.3% 削減し、ホストオンリーエグゼキューションと比較して遅延を引き起こす可能性がある。
  • 単にセグメント特性に基づくナーブな分割では、データ移動オーバーヘッドが是正されないため、平均で最大 9.5% のパフォーマンス低下が生じる。
  • ALP は、データ移動を能動的に管理することで、近似的に最適な分割を実現し、セグメントをその最適適合実行ユニットにマッピング可能にする。
  • この手法は幅広いワークロードで有効であるため、メモリ中心のシステム設計において広範な適用可能性を示している。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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