実アプリケーションによるチップマルチベクトルプロセッサの性能評価
佐藤義永 1， 撫佐昭裕 2， 江川隆輔 1， 滝沢寛之 1， 岡部公起 1， 小林広明 1
1 東北大学， 2 日本電気株式会社
yoshiei@sc.isc.tohoku.ac.jp，a-musa@bq.jp.nec.com, {egawa, tacky, okabe, koba}@isc.tohoku.ac.jp
概要：本研究では，ベクトル型スーパーコンピュータで利用されるアプリケーションに内在する高い並列性とスレッド内・スレッド間のデータ参照の局所性に注目し，複数のベクトルコアによってスレッドの並列処理を可能とする，チップマルチベクトルプロセッサ(CMVP)を検討している．本報
告では，実アプリケーションを用いて CMVP の性能評価を行い，複数コアが実現する高い演算性能とベクトルキャッシュが実現する高い実効メモリバンド幅の双方の効果により，これまでよりも非常に高い実効性能を達成可能であることを明らかにする．

1 はじめに半導体加工プロセスの微細化により，プロセッサに搭載可能な演算ユニットは年々増加している．しかし，プログラムに含まれる命令レベル並列性の限界から，単一コアの演算ユニットを増加するだけでは著しい性能向上は得られなくなってきている．そこで，スレッドレベル並列性に基づき，複数スレッドを同時処理可能なチップマルチプロセッサ(CMP)の研究が盛んに行われている．しかし，スカラプロセッサでは既にその効果が実証されて一方で，ベクトルプロセッサの CMPはまだ研究段階である．

図 1 . CMVP の構成

タ共有を可能とする共有ベクトルキャッシュで構成さ

本報告では，複数のコアを搭載するベクトルプロセれる．プロセッサの最大演算性能はコア数に比例してッサ(チップマルチベクトルプロセッサ，CMVP)につ増加させることができる．
共有ベクトルキャッシュはkいて検討する．CMVP は複数のコアを搭載することで個のサブキャッシュによって構成されており，各サブベクトル演算性能の飛躍的な向上が期待できる．一方，キャッシュが 1 つのメモリポートに直結されている．

メモリバンド幅は，物理的限界のためこれ以上の向上

この構成により，データをメインメモリから共有ベクが困難である．したがって，マルチコア化により演算トルキャッシュにインターリーブ転送することが可能

性能に対する相対的なメモリバンド幅である B/F が大となり，メモリアクセス時間を隠蔽することができる．

幅に減尐する．B/F の減尐によってアプリケーションメインメモリから送られるデータを共有ベクトルキャの実行効率は低下することが報告されており[1]，コアッシュに保存し，次回アクセス時には共有ベクトルキ数を増加し，演算能力のみを向上するだけではメモリャッシュから各コアへ直接データを転送する．さらに，バンド幅がボトルネックとなり，マルチコア化によるキャッシュミス時のアドレス情報管理を行う Missスケーラビリティが得られない恐れがある．これまで

Status Handling Register (MSHR)を各サブキャッシの研究からベクトルプロセッサにキャッシュメモリュに搭載する．ロード命令はメインメモリへアクセス(ベクトルキャッシュ)を搭載することで B/F 低下の影響が緩和可能であることを実証しており，同機構をCMVP に用いることでスケーラビリティの向上が期待できる．本報告では，実アプリケーションによるCMVP の性能評価を行い，ベクトルプロセッサのマルする前に MSHR を確認し，既に先行するロード命令が同一アドレスへアクセスを行っている場合にはデータの到着を待つ．結果として冗長なメモリアクセスを削減でき，実効メモリバンド幅が向上する．各コアと共有ベクトルキャッシュ間の通信は，k 個のクロスバスチコア化による性能向上の可能性を示す．

イッチを用い，高いメモリバンド幅を実現する．

2 チップマルチベクトルプロセッサ

3 性能評価本報告で検討する CMVP の構成を図 1 に示す．プロセッサは，複数のベクトルコアと，コア間でのデー

本評価では，コア数が 1 コアから 16 コアまで増加

した場合の，アプリケーション実効性能のスケーラビリティとベクトルキャッシュの効果をシミュレーションにより評価する．メインメモリとプロセッサ間のメモリバンド幅はコア数によらず一定の値で固定とする．
従って，コア数増加に伴い，1 コアあたりのメモリバンド幅は減尐し，1 コアでは 4B/F，2 コアでは 2B/F，16 コアでは 0.25B/F まで減尐する．評価にはベクトルプロセッサのタイミングシミュレータを用い，キャッ図 2. アンテナ解析プログラムによる性能評価

シュ容量 1MB，サブキャッシュ数 32，MSHR エント
リ数 8,192 とする．評価用アプリケーションにはアンテナ解析プログラム[2]と姫野ベンチマーク[3]を用いる．アンテナ解析プログラムは FDTD 法を用いたシミュレーションプログラムである．姫野ベンチマークはポアッソン方程式をヤコビの反復法で解く際の主要ループで構成されたベンチマークプログラムである．
アンテナ解析プログラムの実行結果を図 2 に示す．

図 3. 姫野ベンチマークによる性能評価

このプログラムは，メモリアクセス数に比べて演算数8コア時では28.5%，16コア時では6.4%まで低下する．

が多く，メモリバンド幅がボトルネックになりにくい

これは，姫野ベンチマークのメモリアクセスが多いとという特徴がある．そのため，キャッシュを用いないいう特徴から，キャッシュによるデータ再利用の効果場合でもコア数増加に伴い実効性能は向上する．しかのみでは，コア数増加による B/F 低下の影響を補うこし，8 コア(B/F=0.5)以上では性能が低下し始める．性とができず，ポートコンフリクトによる遅延時間を隠能低下の原因として，コア数増加により各コアからの蔽できないためである．

メモリアクセス要求が同時に同一のメモリポートに集

4 まとめ

中し，メモリポートで競合が頻繁に生じる結果，実効メモリバンド幅が低下することが考えられる．メモリバンド幅が十分に高い場合には隠蔽可能であったポー
トコンフリクトによるロード遅延時間の増大が，コアあたりのメモリバンド幅が低下したことにより，隠蔽不可能となったために，実効性能が低下した．一方，キャッシュを用いる場合は，16 コア(B/F=0.25)においても高いスケーラビリティが得られる．コア毎の実行効率では 1 コア時 83.7%に対して，16 コア時でも78.9%と高く保つことができる．これは，各コアで利用されるデータを再利用することで，実効メモリバンド幅が向上し，コアあたりの B/F 低下の影響が緩和される結果，高い実効性能が実現できたためである．
次に，姫野ベンチマークの結果を図 3 に示す．このプログラムはメモリアクセスが多く，メモリバンド幅がボトルネックになりやすいという特徴がある．そのため，キャッシュを用いない場合では，コア数増加に伴う B/F 低下の影響を受けるため，コア数を増加させても性能は向上しない．一方，キャッシュを用いる場
合では，4 コア(B/F=1.0)までは性能向上が得られるが，8 コア以上(B/F=0.5 以下)では， キャッシュを用いているにも関わらず性能が低下する．コア毎の実行効率は，1 コア時 49.9%に対して，4 コア時では 49.1%，

本報告では，CMVP の有効性を実アプリケーションにより評価した．CMVP は，複数コアを搭載することで，ベクトル演算性能を飛躍的に向上させ，さらにベクトルキャッシュを用いることで実効メモリバンド幅を高く保つことが可能であることが示された．しかし，
8 コア以上では，コア数増加に伴うコアあたりの B/F低下により，キャッシュを用いているにも関わらず実行効率が低下する場合もあることが分かった．今後，キャッシュ構成やプログラム最適化などによる効率的なデータ転送について検討し，より高いスケーラビリティを有する CMVP を実現する．

参考文献[1] H. Kobayashi, et al., “Implication of Memory Performance in Vector-Parallel and Scalar Parallel HEC,”High Performance Computing on Vector Systems 2006,
Springer-Verlag, pages 21-50, 2006.
[2] Y. Takagi, et al., “Study of High Gain and Broadband
Antipodal Fermi Antenna with Corrugation,” In: Proceedings of 2004 International Symposium on Antennas and Propagation, vol. 1, pages 69-72, 2004.
[3] Himeno benchmark.
http://w3cic.riken.go.jp/HPC/himenoBMT/