3.2 2 パス限定投機システムのハードウェア設計
3.4 SPEC ベンチマークを用いた性能評価
表 3.2: シミュレーションパラメータ スレッド生成 1サイクル
TMU 2レベル分岐予測を基にした2レベルパス予測 カウンタテーブルのビット長2
TU 4命令同時実行 アウトオブオーダ TU-TU間同時通信可能レジスタ数 4 MAU レイテンシ1サイクル
MB,LS各エントリ数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: 投機実行における予測成功率