2010年2月21日日曜日

StreamGPU: CPU-GPU 協調動作において SLAに基づく適応的なウィンドウサイズ調節機構の提案

 CPU-GPU 協調動作において、お互いの干渉を受けるため、両者のレイテンシを満たす中で最大のウィンドウサイズを決定することが重要である。これを、システマティックに求める方法を考える。

[問題の前提]
SLA (レイテンシ, 結果スコアの精度など)に関してはレイテンシのみを対象

(1) 短いウィンドウサイズの局所的解析:低レイテンシが要求される
- レイテンシの上限が決まっている (例: 10ms)
- CPU で実行
(2) 長いウィンドウサイズの大局的解析:
- レイテンシの上限が決まっている (例: 5秒)
- GPU で実行

[実行環境]
- CPU (2コア) と GPU から構成されるシングルノード。
- GPU, CPU の性能は仮定しない
- 他のジョブは稼動していなく、占有可能

[解く問題]
上記の前提において、(1),(2)で定められたレイテンシを満たす最適なウィンドウサイズ (CPU側、GPU側)を決定する


[解決手法]
CPU 側で守るべきレイテンシを Lc, GPU 側で守るべき レイテンシをLg とし、この両者のレイテンシを満たす最適なウィンドウサイズを CPU, GPU 側で算出する手法を以下に提示する。

0. GPU のウィンドウサイズ Wg を固定する.

CPU, GPU 単体のパフォーマンスを与えられた評価環境においてテストし, 以下のようなデータを算出する。これらのデータから GPU が CPU の性能を上回るウィンドウサイズ Wcpu-gpuを求める。下記の1から6のステップは GPU のウィンドウサイズを固定させるが、このサイズは Wcpu-gpu 以上のサイズから開始する。下記の森田君の実験の場合は 450 が開始点となる。ただし、GPU 側のレイテンシ Lg があらかじめ与えられる。



1. CPU の Conflict が存在しない場合の GPU 単体の実行時間を TG0とする

2. GPU のウィンドウサイズ Wg を固定させて、CPU のウィンドウサイズ Wc を増加させたときの Tg と Tc を測定する。Tg はCPUでの計算やメモリ転送などの干渉を受けて増加する. 

3. 2 のデータを受けて、定義域をサイズ、値域を実行時間とする関数をそれぞれ Fg, Fc とし、その関数を非線形の回帰分析によって算出する。

4. Lg (CPU側で守るべきレイテンシ)を与えたときの最大の Wc (CPUのウィンドウサイズ)をステップ3 によって算出した関数 Fg を用いて, Lg = Fg(x) --> x = Fg-1(Lg) (-1 は逆関数) のように計算し、x を Wc とする。

5. ステップ4を用いて算出したWc と関数 Fc を用いて (Tc = Fc(Wc)) , Wcにおける実行時間 Tc を算出.

6. ステップ5を用いて算出した Tc が CPU側のレイテンシより下回っているかどうかを検査。
(6-1) 下回っている場合には CPU 側のウィンドウサイズはステップ4 によって得られた Wc とする
(6-2) 上回っている場合には CPU 側のウィンドウサイズWc を Fc-1(Lc) によって求めた値とする
下図においては(6-1) が上図、(6-2) が下図となる



0 件のコメント:

コメントを投稿