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

2パス限定投機システムによる難並列化ループの高速化

N/A
N/A
Protected

Academic year: 2021

シェア "2パス限定投機システムによる難並列化ループの高速化"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 73 回全国大会. 3A-6. 2 パス限定投機システムによる難並列化ループの高速化 十鳥弘泰. †. 大津金光. †. 横田隆史. †. 馬場敬信. †. † 宇都宮大学大学院工学研究科情報システム科学専攻   1. はじめに. 近年,マルチコアプロセッサを搭載したコンピュー タが普及しているが,複数のコアを十分に活用してプ ログラム単独の実行性能を高めるためには,プログラ ムの適切なマルチスレッド 化が必要である.特に,非 数値処理系のプログラムは,その複雑な制御構造によ りスレッドレベル並列性の抽出が困難とされている [1]. そこで,プログラムをとおして頻繁に実行されるルー プに対して制御依存解析を行い,ループの 1 イテレー ションを単位とした細粒度のスレッドレベル並列性を 抽出する.ループのうち,頻繁に実行される実行経路 (パス) を抽出し,それらを投機的にマルチスレッド 実 行することで,複雑な制御構造のループに対しても高 速化を達成できると考えた. 本稿では,複雑なループに有効な投機的マルチスレッ ド 実行方式である,2 パス限定投機方式と,同方式を 実現したアーキテクチャである 2 パス限定投機システ ム PALS[2] について述べる.そして実際のプログラム に対する最適化手法とその有効性について述べる.. 2 2 パス限定投機システム 2.1 2 パス限定投機方式 2 パス限定投機方式ではループの 1 イテレーション を 1 つのスレッド として実行する.ループにおけるパ スのうち,プログラムをとおして実行割合の高い上位 2 本のど ちらが実行されるかを予測し,投機的にマル チスレッド 実行することでループの高速化を達成する. 投機対象を限定することにより,2 本のパスに対する 投機スレッド コード を用意するだけでよく,イテレー ションにおける無用な命令コード の大幅な削除が可能 になる.また,パスの予測は二択となるため予測器の 構成も簡単になる. 2.2 システムの設計 2 パス限定投機方式では,ループの 1 イテレーション をマルチスレッド 実行の対象としているため,スレッ ド 制御にかかるオーバヘッドが実行性能に大きな影響 を与える.スレッド の起動やスレッド 間通信,投機失 敗時の回復処理等にかかるオーバヘッドが大きくなる と,マルチスレッド 実行の並列性が失われ,性能が大 きく低下する.そこで PALS では,(1) パスの予測, (2) 投機実行の制御,(3) 投機失敗時のプログラム整合 性の保証,以上をハード ウェアで行うことにより,投. Speed-up of Hard Parallelization Loops by Two-Path Limited Speculation System † Hiroyoshi Jutori, Kanemitsu Ootsu, Takashi Yokota and Takanobu Baba Department of Information Systems Science, Graduate School of Engineering, Utsunomiya University (†). 機実行にかかるオーバヘッド を最小限に抑える. 図 1 に PALS のハード ウェア構成を示す.図中の四 角はそれぞれハード ウェア機構を表しており,矢印は 機構間における通信の関係を表している. マル チ スレッド 制御機構 (Thread Management Unit: TMU) は内部にパス予測器を持つ.従来の汎 用プロセッサに相当しリング状に接続されたスレッド 機構 (Thread Unit: TU) に対して,TMU はスレッド 生成の指示と実行状態の管理を行う.TU は TMU から 受け取ったパス予測結果を基に,該当するパスの投機 スレッドコードを実行する.Memory Buffer (MB) お よび Load Shelter (LS) は,投機的なメモリアクセス を適切に処理するための機構である.PALS では,MB と LS を併せてメモリアクセス機構 (Memory Access Unit: MAU) と呼ぶ.TU と MB は 1 対 1 で接続され, TU は全てのメモリアクセスを MB に対して行う.ま た,隣接する MB 間は TU と同様の双方向通信を行う リング構造となる.LS は TU からの投機的ストアデー タを MB が保証するための補助的役割を担う記憶機構 であり,全ての MB と接続される. ঁ‫ॻش‬क़ख़॔ਃଡ ॹ‫ॱش‬ૡଛ ਑౪ৢੴ. ‫ق‬. ‫ق‬. 図 1: PALS のハード ウェア構成. 3. ベンチマークプログラムを用いた PALS の性能 評価. 本節では,SPEC CINT2000 ベンチマークのループ に対して 2 パス限定投機方式を適用する.ベンチマー クより,(1) 2 本以上のパスが存在する,(2) イテレー ション間に依存関係が存在する,以上 2 点の条件を満 たすループを選択する.そして,PALS をクロックレベ ルで模擬するシミュレータ上でプログラムを実行する.. 3.1 対象ループの構造 対象は,181.mcf の関数 dual feasible() 中のループ である.本ループは,入力データをもとに作られる木 構造のデータに対して,イテレーションごとに木の各. 1-11. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(2) 8 ઎. 情報処理学会第 73 回全国大会 ਯ ड़জ४ॼঝග. ५ॣ४গ‫ش‬জথॢග. ड़জ४ॼঝග $. l. 3. ,. 0. (. $. 7. ). $. w. l. 3. ,. 0. (. $. 7. ਈి৲ග. ). $. 7. ,. $. 7. ,. 3. o. v. d. d. u. /. .. ୵ഥ $. f. 2. ,. $. 7. ,. 3. 7. ,. 7. ,. $. $. 7. a. d. d. u. /. .. f. $. 3. ,. 0. (. 3. 2. d. $. 2. 7. 0. 7. d. d. u. /. .. f. 0. 3. 0. 4. 0. 5. 0. 6. 0. 7. 0. 8. 0. 9. 0. 1. 0. 0. 1. 1. 0. 1. 2. 0. 3. 4. ड़জ४ॼঝග. ५ॣ४গ‫ش‬জথॢග. ਈి৲ග. 図 3: 各スレッド コード の速度向上率 ル数と,マルチスレッド 実行でのサイクル数より算出 した.スレッド の起動は 2 クロックで行えるものとし, PALS における各ハード ウェア間の通信には 1 クロッ クかかるものとした.パス予測成功率は,約 96%と なった. TU1 台の場合は,マルチスレッド 実行にかかる処 理がすべてオーバヘッドとなるため速度向上率は低く なる.TU を 2∼4 台にした場合は,オリジナル版で はどれも約 80%となっており,台数による効果は確認 できない.スケジューリング版では,速度向上率は約 90%から約 97%となり,台数による効果が現れている. オリジナル版に比べると大幅な速度向上となっており, レジスタ同期待ち時間低減の効果が高いことが分かる. 最適化版では,TU3 台および 4 台の場合に顕著な速度 向上率を示し ,約 113%となった.ロード 命令に関す る最適化の効果が非常に高いことが分かる.. 5. おわりに. 本稿では,複雑な制御構造を持つループに対する有 効なマルチスレッド 実行のアプローチとして,2 パス 限定投機システム PALS による実行について述べた. そして,SPEC CINT2000 ベンチマークにおけるデー タ依存を含んだループを,PALS シミュレータ上でマ ルチスレッド 実行し,逐次実行に対してプロセッサ 4 台で最大約 1.1 倍の速度向上を達成することができた. PALS では,投機的なデータの整合性の保証により 他の命令に比べてメモリアクセス命令のコストが高く なる.今後は,整合性を保証した上で低コストなメモ リアクセスを実現するメカニズムについて検討する予 定である. 謝辞 本研究は,一部日本学術振興会科学研究費補助金 (基盤研 究 (C)20500047,同 (C)21500049,同 (C)21500050) およ び宇都宮大学若手萌芽的研究プロジェクトの援助による.. ア科学会: コンピュータソフトウェア,Vol.25,No.3, pp.3-43–3-48,2008.. ). w. 2. d. 図 2: 各投機スレッド コード におけるアドレス計算用 レジスタの位置の変化. 4. 2. 2. ઎. w. a. 0. 1. 8 ਯ. 1. 参考文献 [1] 中島浩: “非数値並列計算の動向と展望”,日本ソフトウェ. 7. ,. w. d. l. 7. 2. $. e. w. a. $. w. m. ਈి৲ග. ச২਱঱૨ >@. ノードへポインタを用いてアクセスし,読み出したデー タを使用した比較を行う.本ループでは,比較結果の 成否に対応してパスが 2 本存在している.また,ポイ ンタのアドレス計算に用いるレジスタがイテレーショ ン間の依存関係となっている.. 3.2 PALS での実行に適したコード の作成 本ループでは,アドレス計算用レジスタをイテレー ションの終端で更新し,直後のイテレーションの先頭 でのロードに使用する.このため,単純なマルチスレッ ド 化を適用した投機スレッド コード (以下,オリジナ ル版と呼ぶ) では,直前のイテレーションでの計算が 終わるまでロード を行うことができず,スレッド の並 列性をほとんど 得ることができない.そこで,同期待 ち時間を低減するため,リストスケジューリングをも とにしたコード スケジューリング [3] をオリジナル版 に適用する (以下,スケジューリング版と呼ぶ). PALS では MB を介したメモリアクセスを行うため, ロード 命令のコストは他の命令より高くなる.そこで, スレッド コード の先頭でアドレス計算用レジスタのコ ピーを行い,本来のアドレス計算より早くレジスタの 更新と次スレッドへの送信を行う.また,データの比較 に用いる変数は,ループの実行を通して同じ値が使わ れるが,アセンブリコードではイテレーションごとに メモリから値をロードしている.このため,このロー ド 命令を本ループの直前に行い,空いているレジスタ に値を格納しておくことでロード 命令を 1 つ削除する ことができる (以下,最適化版と呼ぶ). 図 2 に各投機スレッド コードにおけるアドレス計算 用レジスタの位置の変化を示す.図において,$7 がア ドレス計算用レジスタであり,lw 命令によりメモリか らデータをロード する.また,addu 命令は次のイテ レーションでアクセスするアドレスを計算する命令で あり,/.fwd は $7 の値を次のスレッドへ送信すること を表す.オリジナル版では,lw 命令と addu 命令の間 には命令が 15 存在するため,計 17 命令分の実行時間 が同期待ちとなる.スケジューリング版では,lw 命令 の直後に addu 命令を移動したため,これら 2 命令分 の実行時間が同期待ちとなる.最適化版では,レジス タをコピーする move 命令を追加し,lw 命令より前に addu 命令を移動することで,同期待ちは move と addu 命令の実行時間となる.. ५ॣ४গ‫ش‬জথॢග. 実行結果および考察. [2] 十鳥弘泰ほか : “2 パス限定投機方式を実現するマル チコアプロセッサ PALS の提案”,信学技報,Vol.109, No.319 (CPSY2009–46),pp.19–24,2009.. [3] 福田明宏ほか : “2 パス限定投機システムにおけるコード. 図 3 に各スレッド コード の速度向上率を示す.速度 向上率は,元のプログラムを逐次実行した際のサイク. 1-12. スケジューリング手法とその評価”,情報処理学会 第 73 回全国大会,講演番号 2H-9,2011 年 3 月 (発表予定).. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

ル(TMS)誘導体化したうえで検出し,3 種類の重水素化,または安定同位体標識化 OHPAH を内部標準物 質として用いて PM

 この論文の構成は次のようになっている。第2章では銅酸化物超伝導体に対する今までの研

攻撃者は安定して攻撃を成功させるためにメモリ空間 の固定領域に配置された ROPgadget コードを用いようとす る.2.4 節で示した ASLR が機能している場合は困難とな

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

また、JR東日本パス (本券) を駅の指定席券売機に

12―1 法第 12 条において準用する定率法第 20 条の 3 及び令第 37 条において 準用する定率法施行令第 61 条の 2 の規定の適用については、定率法基本通達 20 の 3―1、20 の 3―2

利用者 の旅行 計画では、高齢 ・ 重度化 が進 む 中で、長 距離移動や体調 に考慮した調査を 実施 し20名 の利 用者から日帰

従って,今後設計する機器等については,JSME 規格に限定するものではなく,日本産業 規格(JIS)等の国内外の民間規格に適合した工業用品の採用,或いは American