• 検索結果がありません。

SPEC ベンチマークを用いた性能評価

3.2 2 パス限定投機システムのハードウェア設計

3.4 SPEC ベンチマークを用いた性能評価

表 3.2: シミュレーションパラメータ スレッド生成 1サイクル

TMU 2レベル分岐予測を基にした2レベルパス予測 カウンタテーブルのビット長2

TU 4命令同時実行 アウトオブオーダ TU-TU間同時通信可能レジスタ数 4 MAU レイテンシ1サイクル

MBLS各エントリ数32 4ウェイセットアソシアティブ

LRU 1次キャッシュ サイズ16Kバイト

命令・データ分離 レイテンシ2サイクル メインメモリ レイテンシ100サイクル ハードウェア機構間通信 単方向送信レイテンシ 1サイクル

値定義命令は,スレッド間において依存関係が存在するレジスタを最後に更新す る命令である.この命令を実行した後,TUは更新したレジスタの値を後続スレッ ドのTUへ送信する.また,値使用命令は,スレッド間において依存関係が存在す るレジスタを最初に使用する命令である.この命令を実行するためには,先行す るスレッドから当該レジスタの値を受信していなければならない.本手法は,値 定義命令をできる限り投機スレッドコードの前方へ移動し,値使用命令をできる 限り後方へ移動する.これにより,値定義命令と値使用命令の間隔が狭まり,同 期待ち時間の低減が期待できる.

3.4.1 評価結果

図3.18に,プロセッサ4台によってSPEC CINT2000ベンチマークプログラム を並列実行した場合の,逐次実行に対する速度向上比を示す.実行割合の高い以 下の5つのループを評価対象ループとして選択した.

164.gzipの関数fill window()

181.mcfの関数primal bea mpp()

181.mcfの関数dual feasible()

181.mcfの関数sort basket()

300.twolfのnew dbox()

速度向上比は,PALSによる元のプログラムの逐次実行にかかるサイクル数を,

マルチスレッド実行にかかるサイクル数で割ることにより求める.性能向上比が1 を超えた場合に高速化を達成できたと言える.図3.18における‘non-optimization’

は,最適化を行わず,単純に並列化を行ったプログラムである.‘optimization’は,

ループ展開,レジスタリネーミング,および,コードスケジューリングのコード最 適化を施した[34][35].ループ展開においては,プログラムコード作成前にループ 展開をした場合の実行サイクル数の見積もりを行った上で,最小の実行サイクル 数を見積もったループ展開数によって投機スレッドコードを作成した.

また,図3.19に,投機実行時のパス予測成功率を示す.1度目の予測が成功し たスレッドの数を,並列実行の対象としたループの全イタレーション数で割るこ

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

normalized speed-up ratio

non-optimization

optimization

図 3.18: 並列実行によるプログラムの速度向上比

とにより算出している.最適化後の投機スレッドコードにおいては,ループ展開 を適用しているため,数イタレーション分の予測を一度に行っていることと等し くなり,予測成功率は著しく低下する.

評価結果より,コード最適化を適用した181.mcfを並列実行したとき,最大で約 1.55倍の性能向上を達成することができた.181.mcfにおいては#1パスの実行割 合が非常に高かったため,ループ展開を適用しない場合に,1度目の予測が成功し た割合である予測成功率が94%に達した.このため,ループ展開を適用した場合 においても,#1パスが連続して実行されることが多いことにより予測が成功する 回数が増え,高い性能向上を達成できたものと考えられる.一方,300.twolfにお いては,予測成功率が45%と非常に低い結果となり,逐次実行に対する性能向上 比が0.4倍となった.

この予測成功率の原因として,金海らの研究では,実行パスに含まれる分岐命 令の予測成功率が低いことを示した[36].一般に,プロセッサにおける分岐予測器 の予測成功率は90%を超えることが多い.その一方,予測の成功しない分岐命令 は満遍なく存在しているのではなく,ごく一部の予測困難な命令によって全体の 予測成功率が引き下げられる.300.twolfでは,この予測困難な分岐命令がパスに 含まれていたため,パスの予測においても失敗が多くなった.

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

prediction accuracy

non-optimization

optimization

図 3.19: 投機実行における予測成功率