3

TSUBAME 2.0 始まる
TSUBAME 1. 0 から2.0 への長い道のり（後 編 ）

星間水素原子ガス乱流のGPU 計算
ー TSUBAME1.2 の 120 GPU で 11.5 TFlops ー高速フーリエ変換とGPU

TSUBAME 2.0 始まる
TSUBAME 1.0 から2.0への長い道のり（後編 ）松岡 聡 ** 東京工業大学

学術国際 情 報センター

TSUBAME2.0 は我が国初のマルチペタフロップスのスーパコンピュータであり、GPUの積極的な活用、高度にスケーラブルで高バンド幅なノードやネットワークのデザイン、さらにSSD 等の新世代のI/Oデバイスの活用など、種々の新ハードウェアやソフトウェアの技術を採 用している。TSUBAME2.0 は実運用を11月初旬に開始した；本 稿後篇では、その直前に行われた種々のベンチマークを取り上げる。特に、Linpackに代表される密行列系の計算主体のベンチマークと、ASUCA 気象計算（流体）に代表される疎行列系のメモリ・ネットワークバンド幅が主体のベンチマークはマシンの全く異なる側面の限界を探る。
幸いにもTSUBAMEは両方で記録的な性能を達成した：2010 年 11月のTop500 では世界 4 位にランクされ、またGreen500 においては「世界一電力効率が良い運用スパコン」であることが認定された。
また、ASUCAも気象計算としては世界記録を達成した。これらはTSUBAME2.0 のスパコンとしての単なる性能だけではなく技術的先進性をも示すものである。

TSUBAME2.0 の産声

1

い現 象が起こる。例えば、ジョブのスケジューリングにおいて、そのアルゴリズムの一 部にジョブ数 nに対しO（ n 2 ）の複 雑 性がたまたまあった場合、ジョブ数が100 倍になれば一万倍のオーバーヘッ
ドが顕 在 化する。

TSUBAME2.0 にとっての最初の試練はLinpackやその他のマシン全体

無論計算機科学的にも設計したスパコンの性能がどこまで出るのか、を使 用するベンチマークであった。実はスーパーコンピュータにとって逆に何がオーバーヘッドになっているのか、を探るのは学術的に重要で稼働初期の段階で大規模ベンチマークを数々行うことは、以下の理由ある。より重要なのは、大規模なアプリケーションを通常運用では困によって大変重要な事なのである。

難なマシン全体を使う環境で動作させ、科学的な成果を得ることであるのは言うまでもない。

（1）
TSUBAME2.0 などの大 規 模スパコンを構 成するコンポーネンツ

そのような様々な目的をもって、TSUBAME2.0 の運用開始の11月1日

数は通常のPCと比 較すると数千 倍にものぼる。単 純に計算を司直前の10 月後半、マシンがその産 声を上げた直後に幾つかの大 規模

るCPU/GPUのソケット数でも、パソコンは1-2 個であるのに対し、ベンチマークが行われた。

TSUBAME2.0 は7000 以上である。メモリもパソコンの数ギガバイ

01

トに対し、TSUBAME2.0 のCPUとGPUの全てのメモリを合算すると（a）
Linpack--- 有名なスパコンの性能リストであるTop500[1]において

約 100テラバイトと、数万倍である。これらが高負荷時にきちんと用いられるベンチマークである。基本的には大規模な密行列のLU

長時間同時に動作することを確認するのは、安定運用には大変重分解を行う。計算の複 雑性はn× nの行列に対し、計算の複 雑さ要である。マシンの故障率はコンポーネンツ数にほぼ比例するので、は 2/3 n3 + O（n2 ）であるので、マシンのメモリに入り切る、なるべく

例えば一万倍のコンポーネンツ数ならば、約10 年に一度しか故障し大きな行列にする方が通信オーバーヘッド等が隠れて効率が良くな

ないパソコンと同じ信頼性ならば、一日に約三回は障害が発生する

る。結果としてトップレベルのスパコンではn= 数百万となり、結果ことになる。

的に演算用のCPU/GPUを通常のアプリケーションでは生じない超（2）
同様に、果たして種々の設計性能値がきちんと満たされているか、

高負荷をかけて長時間計算を行うこととなる。密行列系におけるというのは単純な稼 働性にも勝り重要である。複雑なスパコンの直接法による演算であるので、反復計算と異なりO（1019~20 ）回の総場合、特定の条件であるコンポーネンツが動作はするが、性能値を演算数のうち一つでもエラーがあると最後の残差による検 算にお満たしていない場合、そこが速度的律速となって大規模並列アプリ

いて全体がエラーとなり、結果として無効となる。逆にネットワーク

ケーション全体の性能を大幅に引き下げる可能性がある。例えばに対する負荷はO（n2 ）なので、計算負荷と比較して相対的には低く、

TSUBAMEのネットワークを構成するInfinibandは幾つかの速度規

スパコンに「見合った」高速ネットワークならばそのオーバーヘッド

格があり、下位互換性を保証する為に自動的に相互のネットワーク

は 10%以下 程 度である。メモリバンド幅も比 較的要求されない。

の端点の速度に合わせるようになっている。しかしながら、何かの一方 Gigabit Ethernetなどの「遅い」ネットワークの場 合はネッ

異常事態が一瞬生じ、両方の端点が低速の規格で合意してしまう

トワークのオーバーヘッドは計算を圧倒する。

と、通信は問題なく起こるが、速度が数分の一になってしまう。このLU分 解 を行う実 際 のソフトウェアは 規 定されていないもの

ような事態が起こらない・あるいは起きても検出されてすぐに本来の、多くのスパコンで は 大 規 模 並 列 Linpackを行うHPL（ Highの速度に修復する、ことを確認する必要がある。

Performance Linpack）[2]を用いる。しかしながらTSUBAME2.0で（3）
また、大 規 模なスパコンの運 用には多 数のセンサーによる監視

は、ヘテロジニアス（性質や性能の違うCPUやGPUなどを用いる）版のや、ソフトウェアによる資 源 配 分などが必 要になるが、多くの場 合LinpackアルゴリズムをHPLに適用し改造した二つの特別バージョン

アルゴリズムの複 雑 性により、小規 模マシンにおいては起こらなを用いた。一つはLinux OS上で松岡研究室がTSUBAME1以前から

研究を続けきたHeterogeneous HPL[3]であり、もう一つは米マイクロソフト社との共同研究で開発されたWindows HPC 用のLinpack

TSUBAME2.0 の Linpackである。二つはヘテロジニアス性に対応する為には異なるアプロー--- 世界トップのグリーンスパコンへチをとっており、どちらがより優 位になるかがGPUコンピューティン

2

グの進化にとって意味のある結果となることが期待された。
また、スパコンの電力性能をランキングするGreen500[4]の為に、

TSUBAME2.0 の初期配備および初期テストを完了した10 月中旬から

正確な電力計測も同時に行い、グリーンスパコンとしての研究成果

ベンチマークが開 始された 。まずは（ a）の二つのLinpackが開始さの実証を目指した。

れた。初期テストでは生じない高負荷のLinpackテストにより、種々の（b）
GPU 版 ASUCA---ASUCAは気象 庁が次世代の予報を実現するた（予測された）細かい障害が明らかになり、それらを逐一解消していった。

めに開 発を続けている超 並列計算 機 用の気 象コードである。東先に述べたように、このような高負荷稼働の安定化は実運用のために

工大 GSICの青木研究室は、ASUCAの高性能・マルチGPU 版を開非常に重要である。その後、交代でLinuxおよび WindowsHPCにての発することに成 功した[5][6]。主な計算カーネルは差分法による移ベンチマークが行われた。両者とも非常に性能が接近していたが、最流計算であり、Linpackと異なり非常に高いメモリバンド幅やネット

終的にはLinux 上の松岡研究室のHeterogeneous Linpackが僅かにワークバンド幅を要求する。この種類のアプリケーションにおいて

上回った
（図 1）
。なお、異なる条 件下ではマイクロソフトのアルゴリズ

高性能を得るのは、従来は地球シミュレータ等のスパコン専用アームが上回る可能性は十分あったことは付け加えておく。

キテクチャのベクトル計算機の独壇場であったが、前編で記したと結果として、Top500 用のLinpack 計測では1.192ペタフロップスの性おりGPUは汎 用性アーキテクチャなるも通常のCPUと異なり高い能を得た。これは理論ピーク性能の約 52%であり、通常のCPUにおけ

メモリバンド幅とベクトル処理機能を備えており、TSUBAME2.0 にる70-90%と比較すると低い。しかしながら、これによって「GPUの実移植されれば世界トップレベルの気 象コードの実 行 性 能が期 待

行性能はCPUマシンよい低い」と結論づけるのは大きな誤りであり、こされた。実際、TSUBAME2.0 は地球シミュレータの約 6 倍のメモリの性能差は実は別な理由による：バンド幅を持ち、ASUCAの新世代の解法と共に記録的な解像度とサイズの気象シミュレーションがリアルタイムに可能となることが

1. まず、
現状のNVIDIA Fermi GPUは幾つかの人工的な性能的なボトル

TSUBAME1.2 における結果と性能モデリングから期待された。

ネックがあり、Linpackの実行時に主要な計算カーネルとなる密行列（c）
その他、調達の性能要件を満たすべく種々のベンチマークや、種々の積（所謂 Level 3 BLAS）の実行性能が理論値と比較して 70-75%の基本的な性能確認が行われた。

程 度となる。このボトルネックはグラフィックスの実行時や、あるい

図 1 TSUBAME2.0 のLinpack 実行の様子
約 250 万 2 の行列のLU 分解を行い、ほぼ 2.4 時間で計算を終え、2010 年 11月のTop500 において世界 4位となる平均 1.192ペタフロップスの性能を得ている。
残差計算で検 算を行い、結果が規定誤 差以下になっていることに注意されたい。

02

TSUBAME 2.0 始まる
TSUBAME 1.0 から2.0 への長い道のり（後 編）

はGPUがベクトル計算機として期待される高バンド幅プロセッサとしての実行時には顕在化しない。一方、通常のCPUの効率は近年の研究とアーキテクチャの進歩により90%以 上となることが知られており、
ここで15-20%の差が生じる。この効率の差は本質的ではなく、次世代のGPUのアーキテクチャおよびアルゴリズムの進歩により解消されることが期待される。
2. Heterogeneous Linpackにおいては、CPUはBLASの計算に寄与していない。しかしながら、Top500 の結果においては使 用されなくてもCPUの理論性能を加算する必要がある。TSUBAME2.0 のそれ
ぞれの計算ノードの2CPU（Intel Xeon Westmere 2.93Ghz）および
図 2 2010 年 11月 Green500 における
「世界一電力効率が良い運 用スパコン」特別賞の証書

TSUBAME 2.0 世界ランキング
スパコン２大リスト（2010 年 11 月発 表時 ）3GPU
（NVIDIA Tesla M2050）において、全体のピーク性能におけるCPUの寄与率は8%以上であり、それが損失となる。
（無論、
GPUやネットワークとの通信に参加しないCPUが寄与するアルゴリズムもその進歩により考えられる。実際 TSUBAME1.2 の際にはそのようなアルゴリズムが用いられていた[3]。
）3. 今回 用いたHeterogeneous LinpackではGPUを行列積 計算エンジンとして用いており、CPUのメモリに在する部分行列をGPUにスト

The Top 500

リーム的に転送し、行列積を計算後ストリーム的に送り返している。

ベンチマーク絶 対性 能、ペタフロップス

1 位 ： 2.566 ： 中国防 衛大 Tianhe 1-A（11）通常のアプリケーションでは大きさnの行列に対し行列積の計算コ
ストはO
（n3）
、転送のオーバーヘッドはO（n2 ）なので、nを十分大きく

2 位 ： 1.758 ： 米国オークリッジ国立研究 所
Cray Jaguar（81）すれば転送コストは十分隠れるが、HPLにおいては負荷分散の為に

3 位 ： 1.271 ： 中国深圳国立スパコンセンター
Dawning Nebulae（13）ドが生じる。

n= 数百 ~ 千程度の小行列を用いており、無視できないオーバーヘッ

4 位 ： 1.192 ： 日本 東 工大 /HP/NEC TSUBAME2.0（2）

これらの理由により、合算で 30%程度のオーバーヘッドがHPLでは生

5 位 ： 1.054 ： 米国ローレンスバークレー国立研究 所
Cray Hopper（30）じる。これはハードウェアアーキテクチャとソフトウェア・アルゴリズム

6 位 ： 1.050 ： 仏 CEA 国立研究 所 Bull Bullx（97）の進歩により十分解決できるものであり、我々のを含み今後の研究開

7 位 ： 1.042 ： 米国オークリッジ国立研究 所
IBM Roadrunner（16）発活動が期待される。

33 位 ： 0.1914 ： 日本原子力研究開発機構 / 富士通（95）（日本 2 位）（緑字はGreen500ランク）

2010 年11月に発 表されたTop500リストにおいて、TSUBAME2.0 は
世界 4 位にランクされた。これはTSUBAME1における7 位より高く、かつ日本の 2 位のマシンの性 能と比 較して約 6 倍の性 能を示した。
また、Top500 の性 能とその際の消費電力をベースにランク付けされThe Green 500

るGreen500 においては、実行時に1243.80KWを記録し、指標としてベンチマーク電 力性 能、メガフロップス/W

1 位 ：1684.20： 米国 IBM 研究 所 BlueGene/Q
プロトタイプ（116）
2 位 ： 958.35 ： 日本 東 工大 /HP/NEC TSUBAME2.0（4）3 位 ： 933.06 ： 米国 NCSA Hybrid Cluster 実 験 機（403）
4 位 ： 828.67 ： 日本 理研

京（170）

5-7 位： 773.38 ： ドイツ ユーリッヒ大等
IBM QPACE SFB TR（207-209）
10 位 ： 636.36 ： 日本 環 境研（102）

2 位 +：1448.03： 日本国立天 文台 Grape-DR（ 383）

03

用のスパコンとしては世界最高位であることが認定された（図 2）。
この 結 果は 技 術 的 には 大きな 意 味を持 つ。現 行 の 規 則で は、Top500とGreen500 で同時に高位ランクとなることは困難である。実際、Top500 の上位ランクは実運用のスパコンで占められており、一方Green500 の上位ランクは小規模かつプロトタイプ・あるいは特 殊ア
プリケーション分野の特 殊なマシンである（図 3）。唯一 TSUBAME2.0
だけがTop500とGreen500の世界5位以内にランキングされているが、Top500 のトップマシンがGreen500 の上位にランクされるのは以下の（日本 3 位）

（12 月末に追 加）

958.35 Flops/Wを得て、2010 年11月の発 表時に世界 2 位、かつ実 運

理由で困難である：（赤字はTop500ランク）

図 3 TSUBAME2.0 の2010 年 11月発 表時のTop500,
Green500リストとの順位（2010 年末に改 定版のリストが出され、国立天 文台のGrape-DRが 2+ 位 : 1448.03 、Top500 383 位である
ことが発 表された。
しかしながら、TSUBAME2.0 の「運 用スパコン世界一」のステータスに変化はない。
）（ 1）Top500 の上位マシンは数十～数百億 円の価 値がある運 用スパコンであり、結果として運用には必要だが、性能電力比を悪化させる種々の要因を装備として抱える。例えば、運用スパコンは汎用の計算に必 要な大きなメモリ量が必 要だが、これはTop500 の性 能

それが基 本的に律速になっていないスパコンにおいては、絶対的なメ

向上にはあまり寄与しない。しかしながら、DRAMの電力 消費 量

モリ・ネットワークバンド幅と、それをどの程 度 実アプリケーションでがスパコンに占める割 合はかなりで、数十%に達する。逆に性能活用できているかが基 本 的な支 配 項目である。つまり、どの程 度の電力比を上昇させたければ、なるべく少ないメモリのマシンが有 利

ピーク性能があろうと基 本的には全く関係なく、重要なのは絶対的なとなり、（Green500 の上位マシンはことごとくそうであるが ）汎用

バンド幅とその利用効率のみなのである。むしろ、SXなどのクラシッのスパコンとしては問題が大きい。

クなベクトルアーキテクチャでは密 行 列 系の計算 重 視のアプリケー（2）
Top500 の上位ランクの獲 得はセンターや国家の威信をかけたもションに対してはそのバンド幅に見合う計算性 能が確保できず、そののであり、性能やランキングを少しでも上げる事はその他の全ての性 能が低く抑えられてしまう。しかしながら、絶 対ピーク性 能に対し目的を無 視しても行われることである。結果として、絶 対 性 能をては、その律速がどこにあれ（元々絶対性能が低い為）見せかけの計算得るためにはチューニングでも性 能 電 力比を犠 牲にする。一方、効率が良くなる。

Green500 で上位ランクを得るには、単純にTop500 に掲載されれここでの問 題はそれによってマシンの優 劣を論ずる間 違った議 論

ば良い；よって、絶対性能を犠牲にし、Top500 のランクが大幅に下がしばしば展 開されることであるが、上 記の理 由によってそれはがっても問題ない。これらの相反する要求を満たすのは困難である。

正しくない。前 編にあったように、GPUはソケットあたり・及び消費（3）
Top500 の上位マシンのLinpackの行列サイズは上記のようにn=電 力あたり計 算性 能・メモリバンド幅とも高い：倍 精度 演 算におい数百 万に達し、プロセッサ数も十万規 模となる。一方アルゴリズて、同 一ノードで比 較すると演 算性 能は 7 倍以 上であり、メモリバン

ムとマシンの特 性により、Linpackは小 型のマシンの方が効 率がド幅も同 様に 6-7 である。つまり、CPUとの比 較ではTSUBAMEは同高いことが示される。よって、大型のマシンはLinpack 性能を得る

世代のx86プロセッサのクラスタから鑑みれば 3 万ソケットのマシンのは本質的に不利となる；例えば、単一ノードの実行と比較するとに相当し、CPUコア数 換 算では 20 万コア近くに達する。これはオー

5-10%のペナルティがあることが我々を含む幾つかの研究で明らか

クリッジ国立研 究 所の、2010 年 6 月まで世界一 位であった、20 万以になっている[3]上ものx86 CPUコアで構 成されているCray Jaguar スパコンと計算
速 度・メモリバンド幅 両方で同規 模とみなせるが、実際は Jaguarは

これらのペナルティにも関わらずランクインしたことが大きく評価され

TSUBAME2.0 のCPUと比 較してさらにメモリの実 行バンド幅が遅い

たのが 2010 年 11月において「世界一電力効率が良い運 用スパコン」

旧世代のCPUを用いているので、むしろ不利となる。

特別賞が与えられた要因であり、その研究的バックグラウンドとしては

ASUCAのベンチマークはこれらの技 術項目を確認するのに重要でJST-CREST のUltra Low Power HPC（ULP-HPC）など、の継続的な基あった。特に、気象計算に代 表される差 分 法による移流 計算はメモ

礎研究の成果であると言えよう。

リバンド幅が支配要素となるので、（1）十分に絶対バンド幅を得られる
か（2）CPUと比較して上記のメモリバンド幅 6-7倍程度の速度差を反実アプリケーションにおける性能・メモリバンド幅--- GPU 版 ASUCAによる世界最高性能の高バンド幅
気象アプリケーション

3

映した性能差が得られるか、また（3）
気象アプリケーションの大規模実行において、Jaguarとの性能比較はどうか、が重要なポイントとなった。
ASUCAアプリケーションの詳 細は前 号の[5]に譲るが、結 果としてGPU版ASUCAは最大3990GPUで実行され[6]、非常に良好な弱スケー
リング性（ノード数の増加に比例して問題を増大したときの性 能向上

Top500 におけるはスパコンの性能の重要な性能指標であるが、メモ比 ）を示し、単 精度で145Teraflops 、倍 精度でも76.1TeraFlopsを記

リバンド幅やネットワークバンド幅が支 配 的なアプリケーションに対

録した
（図 4）
。
今までの世界記録はWRFというASUCAに似たアルゴリ

してはあまり有 効な指 標とならない。流 体 構 造 系に代 表される多くズムがベースの米 国の先 進 的 気 象アプリケーションをJaguarで動 作の実アプリケーションにおいては、それらの実行時においてどの程度のさせたときに達成された約 50Teraflops（倍精度）であり、それを大幅にメモリ・ネットワークバンド幅が達 成されるかが実性 能に対して支配上回ったこととなる。また、ソケットあたりの倍精度演算の性能比もほ的であり、結果としてマシン全体が達成しうる合算バンド幅が非常に重ぼ 6 倍と、CPUとのメモリバンド幅の差の理論値をほぼ踏襲し、設計値要となる。近年のスパコンアーキテクチャでは、計算性能に対する両の正しさを示した（ 図 5）。

バンド幅の比 率は物理的な制 約により低下の一方である。また歴 史
的にはCrayのXシリーズ、NECのSXなどの所謂「ベクトルスーパーコン
ピュータ」は、大 規模 並列計算が困難だった時 代に、これらのアプリ
ケーションにおいて高性能を得るために設 計された高バンド幅アーキ
テクチャであり、絶対ピーク性能に対して高い計算効率を誇った。
ここで指摘すべき技術的な要点は、「マシンのピーク性能に対する効率」は基 本的にはこれらのバンド幅重視のマシンにおいてはミスリー
ディングな指標であることにある。十分な計算性能が確保されており、

04

TSUBAME 2.0 始まる
TSUBAME 1.0 から2.0 への長い道のり（後 編）

ドプログラミングが必要となる。密行列系でもGPUはプログラムの書
き方に性能がセンシティブなので、チューニングを注意深く行なわなくてはならない。幸いネットワークはフルバイセクションなので比較的最高性能が出やすいが、I/Oに関してはLustreのストライプサイズを最適に選択したり、局所 I/Oを行うSSDとの有効な使い分けが必要となる場
合もある。
全体を鑑みると、
TSUBAME2.0 のような超メニーコア・マルチスレッド・ベクトルの大量のコア群に小規模な低レーテンシスカラーコアが接続されたアーキテクチャは今後ポストペタやエクサフロップスの主流となるであろう。無論将来的にはそれらが一つのチップ内で高バンド幅に接続され、かつメモリは共有されるであろう。現状のGPUプログラムはPCI-e

図 4 ASUCAのベンチマーク。
弱スケーリングでは 3990GPUまで
ほぼ線 形に性能向上している。

接続のハード上・ソフト上の区別（例えばCUDAにおけるホスト対デバイ
スの分離されたプログラミングとメモリ転送の必要性）を抱えているが、今回取り上げたベンチマークや、今後 TSUBAME2.0 で予定されている
更なる大 規模アプリケーションの実行およびベンチマークはそれらの可能性を先取りし、単なるFLOPSの尺 度で測るのではない、真のペタ
フロップスアプリケーションとして種々の記録を達成し、その本来の科学的成 果もあいまって世の中をリードしていくことが大いに期 待される。また、4 年後に来たる数十ペタフロップスのTSUBAME3.0 や、他機関に入るであろう中間的なスパコンの設計に大いに役立つであろう。
参考文献[1] The Top500 Supercomputing Sites http://www.top500.org/[2] A. Petitet, R. C. Whaley, J. Dongarra, A. Cleary. "HPL - A Portable
Implementation of the High-Performance Linpack Benchmark

図 5 ASUCAのベンチマーク。
ソケットあたりの倍 精度時の性能差はほぼ 6 倍と、理論値の差通りとなっている。

for Distributed-Memory Computers v.2.0", http://www.netlib.
org/benchmark/hpl/[ 3] Endo, T.; Nukada, A.; Matsuoka, S.; Maruyama, N.Linpack
evaluation on a supercomputer with heterogeneous accelerators,
Proc. IEEE Parallel & Distributed Processing (IPDPS) 2010, the終わりに：今後のペタスケール
アプリケーションへの期待

4IEEE Press, Apr. 2010, pp.1-8.
[4] The Green 500 http://www.green500.org/[5] 下 川 辺、青 木「 次 世 代 気 象モデル のフルGPU 計 算」TSUBAME
E-Scinece Jounal, vol. 2, 東 京 工業 大学 学 術国 際 情 報センター、
2010 年11月、pp.9-13.

種 々 の ベンチマ ー ク お よ び マシン の 初 期 デバ ッ グ が 終 了 後 、[6] T. Shimokawabe, T. Aoki, C. Muroi, J. Ishida, K . Kawano, T.

TSUBAME2.0 は予定通り11月1日から運用が開始された。すでに多く

Endo, A. Nukada, N. Maruyama, and S. Matsuoka. "An 80-Foldのユーザーが連日種々のアプリケーションを動かしており、通常の最大Speedup, 15.0 TFlops, Full GPU Acceleration of Non-Hydrostatic

アロケーションである5000CPU、1200GPU級の大規模アプリケーション

Weather Model ASUCA Production Code", Proc. 2010 ACM/IEEEの実行も珍しくない。また、
超高速 I/Oを行えるSSDやLUSTRE 並列ファ

Supercomputing, The ACM Press, Nov. 2010, pp.1-11.

イルシステムの特 性を生かしたデータ中心のアプリケーションも見られ、TSUBAME1.2 時代から明らかな飛躍が見られており、ユーザーの評
判も大変良い。
しかしながら、TSUBAME2.0 の真の価値を生かすには、通常のスパ
コンには見られない特質をハード・ソフト共に有効に活用しなくてはならない。高メモリバンド幅を達成するにはGPUの利用は必須であるが、大規模アプリとして通信が絡むと、
MPIとCUDA、
CPUとGPUのハイブリッ05

星間水素原子ガス乱流のGPU計算― TSUBAME1.2の120GPUで11.5 TFlops ―村主 崇行 ** 京都大学

次世代研 究者育成センター

銀河において、星間水素原子ガス乱流の駆動源となっている
水素原子ガスの相転移にもとづく熱的不安定を研究するために、３次 元流 体シミュレーションを行った。
シミュレーション結果を可視化するとともに、塊検出・スペクトル解 析を行い、超音速・圧縮性乱流と、標準的な非圧縮性乱流が階層構造をなす星間乱流のありさまを明らかにした。この階層構造を発見できるだけの高解像度シミュレーションが可能になったのは、TSUBAMEのようなGPU 並列計算機がもたらした膨大な演算力のおかげといえる。

はじめに

1

学際大規模情報基盤共同利用について

2

僕の仕事を説明する、お気に入りの造語がある。
「安楽椅子宇宙飛行

まず、東京工業大学の計算機を利用することができたいきさつに触れ士」だ。これまで人類が探査機を送り込んだのは、せいぜい太陽系のたい。学際大規模情報基盤共同利用・共同研究拠点という、スーパー内側まで。となりの恒 星ですら、現 場に行って証 拠を集めることは、コンピュータを有する全国の８大学がつくるネットワーク型拠点がある。

しばらくできそうにない。この制 約を超えて宇宙のことを知るには、

私はその公募型共同研究という枠組に、平成２１年度の試行段階から

地 球 周辺というたった一点での観 測から得られる証 拠と、科 学の法

お世話になって、東京工業大学のTSUBAMEを利用してきた。

則をもとに慎 重に推 理を組み立てていく。法 則をもとにいかにゆた

公募型共同研究には、私と、長崎大学 先端計算研究センター超並

かな構 造が生まれ、それがさまざまな制 約のもとでどのように観える列部門長 准教授の濱田剛の共同研究として申し込んだ。濱田さんのかを知る上で、コンピューターシミュレーションは大いに力になる。

のグループは長崎大学で GPUクラスタDEGIMA（ DEstination of GPU

たゆまぬ計算 能 力の進 歩が可能にした、最 近の高 解 像 度・三 次 元

Intensive Machines）の開発・運用を推進している。また京都大学にも、シミュレーションのムービーは、安 楽 椅 子に居ながら宇宙を旅してい村主が中心となって構築した小規模なGPUクラスタ TenGU（Tenmon

る気分にしてくれる。

GPU Cluster）がある。学際型共同研究として異分野の多くの研究者

今回僕が TSUBAMEを利用して取り組んだのは、恒星の質量を決めと共同してコード開発・研究に当たれたことはたいへん有意義な経 験るメカニズムの研究だ。銀河系には1cm3 あたり水素原子 約 1個といであった。特性の異なる複数の計算機を研究の段階に応じ使い分けらうとても低密度の星間ガスがあり、これがある大きさの塊に分裂し収れたことも大変便利であった。また東京工業大学のみなさんや、東京

縮することで恒星が生まれる。もしこの大きさが１桁小さければ、恒星大学のJHPCN 担当者様方も親切で、技術的サポートや事務的サポーの核融合反応は始まらず、暗い星ばかりになる。もし１桁大きければ、トを的確かつ迅速にいただくことができた。

星はあっという間に核融合しつくしてブラックホールばかりになってしまうだろう。何故星間ガスは、銀河に輝く星々が満ち、とある惑星には生命が誕生するような、ちょうどのサイズに分裂するのだろうか。それを決めているのが、水素原子ガスの熱的不安定にともなう乱流 --- 今

星間乱流のシミュレーション

回の研究テーマだ。

3星間水素原子ガスは、わずかに含んでいるCO 分子などが輻射を放つことで冷却されたり、まわりの恒星から温められたりするため、現在本研究に応募するに当たっていくつかテーマを用意していたが、本稿での銀河の環境では２つの安定相を持つ。水には気体（水蒸気）と液体

紹介するのはこのうち「分子雲形成領域における、２相水素ガスの乱の２つの相があり、冬の寒い日に息を吐くと、水蒸気が無数の水滴にか流状態の数値シミュレーションと解析」で、はじめにの項でも述べたよ

わるように、星間水素原子ガスも、超新星爆発などの衝撃をきっかけ

うに、多岐にわたる宇宙物理学のテーマのなかでも、星間物質の研究として、温かく低密度の相から冷たく高密度の塊を何千個も、一気に形に貢献するものだ。

成する。このダイナミックな現象を通じて、それぞれの塊がやがて恒星銀河において恒星・惑星系が生まれる場である星間物質で観測されとなるときの明るさ、色、寿命が決まっていくのだ。むろん、このあと星ている乱流は圧縮性、非等方的であり、加えて輻射平衡を考慮した水が生まれ、惑星系を持つまでにはもっと沢山の過程がある。謎も多い。

素原子ガスの状態方程式は理想気体とは大きく異なり、100 倍程度密宇宙が相手の推理はとうぶん終わりそうにない。

度の違う2 相が共存する乱流状態である（Field et al, 1969[1]）。にも06星間水素原子ガス乱流のGPU 計算― TSUBAME1.2 の120 GPUで 11.5 TFlops ―かかわらず観測される乱流の速 度スペクトルは、一様、非圧 縮、等方を仮 定するKolmogorovスペクトル（速 度 場の冪 指 数αv =11/ 3）とよく一致している。ただしKolmogorovからの有意なずれ（α v =3.87± 0.11）を観測した報告もある（ Chepurnov et.al. 2010[2]）。この乱流の解明は星間現象を理 解する上でのグランドチャレンジの１つといえ、これまでにも10003 規模の解像度のシミュレーションが行われているが、計算機の能力のため、追跡できる時間が限られていた。GPU

これは、このガスの音速が約 秒 速 10kmであることを意味する。これの高い演算能力を活用することで、同じ解像度のまま、長時間にわたっは地 球を脱出するロケットの速さよりも速い！しかし、この音速をもって乱流をシミュレートできるようになり、平衡状態のより詳しい情報をてしても、1パーセク（約 3.62 光 年）を横 切るのには十万年を要する。

引き出せるようになる。

この研究で想 定した計算空間（図 1）は一 辺 20パーセクであり、乱 流

シミュレートすべき式は、以下の加熱・冷却項を含んだ流 体力学の基礎方程式、Navier-Stokes方程式である。

の平 衡 状 態を観 察するため、音 波が 8 往 復する程 度の時間をシミュレートした。じつに1600 万年間に相当するシミュレーションを行ったことになる。
開発した流体コードの特性を列挙すれば、MPI GPU Full-Godunov
2nd order MUSCL 3-dimensional uniform mesh Navier-Stokes
equations solverとなろうか。Godunov法とは古くロシア人数学者
Godunov（1959）[5]によって提案された手法で、またvan Leer（1979）[6]らの努力によって確立されたその高次精度版がMUSCL法である。
そのアイデアは、ある平面を境界に左右の物理量が一定という初期

ここで、加 熱 項Γと冷 却 項Λは、星 間 環 境で 考 慮すべき様々な加条件（Riemann問題）は解析的に解くことができるので、各メッシュ境

熱・冷却過程（e.g. Koyama & Inutsuka 2000[3]）をもとに、Inoue &界でこの解をあてはめてやろうというものである。超音速流に特有の衝Inutsuka（2008）[4]が提案した次のフィッティング式をもちいる。

撃波面をシャープに捉えるには欠かせない処方である。そのかわり演算数は１メッシュ、
１ステップあたり約3000flopも必要だが、そこはGPUの性能が活かせるというものだ。
むろんこのコードはMPI 経由で多数のGPUを並列に利用して計算を行うことができる。これに加え、故障率の高いマシンや、キューの実行時

定数がいくつか出てきたが、星間物質のスケールで典型的な物理量を間に制限があるマシンでも長時間の計算が行えるよう、シミュレーション

使って無次元化をおこなっている。つまり、の内部状態を適宜出力してそこから復帰できるチェックポインティング

図1
東工大のGPUスパコン
TSUBAMEを利用して行った
14403 のシミュレーションの
可視化 。

07

機能をつけた。またムービー作成のための不可逆 圧 縮データ出力機

費せず、かつディスクアクセスを最小限に抑えたまま、スペクトル解 析

能を、東京工業大学の青木尊之教授のアドバイスも得て実装した。

や塊検出、可視化などを行うアルゴリズムが必要であった。

コード開 発やチューニングはおもに長 崎 大 学 DEGIMAで行った。

例えば、塊検出というデータ解析では、ある密度の閾値を決め、それ

DEGIMAでは約 800× NVIDIA GT200 GPU 型 演 算 器が利 用可能でより密度の大きいセルの連結成分をすべて検出し、おのおの高密度塊あり、うち576 個はInfiniBandで連結されていた。単 精度ピーク演算（Clump）とその周辺を取り巻くガス（Veil）について密度、音速、相対性能は 514.9TFlop/sであり、最大1769'4720スレッドを同時実行可能

速 度などの物理 量を求め、その統 計 解 析を行う必要がある。連結成であった。また総ビデオメモリは約 460GB 、総ビデオメモリ帯域幅は分の検出には、素朴に考えると3 次元データへのランダムアクセスが必

64.454TB/sであった。DEGIMAでは、上記 約 12803 の解像度のシミュ

要に思える。我々は以上の解析を、（データの2 次元断面）×（定数倍）

レーションにおいて40.91Tﬂopsの実 効性能を達成した。

しかメモリに持たずに、全データを2 回シーケンシャルアクセスしただ

つぎに東 工 大の GPUスパコンTSUBAMEを使って長 時 間 計 算をけで行うアルゴリズムを開発した。これにより、パソコンでも、解析対

進 め た 。期 間 は 7/6 -7/9 、7/ 20 -7/ 23 、8/ 20 - 8/ 24 の 3 回、の べ

象データをディスクに置いたまま、実 用上問題のない時間で解 析がで10 日で あった。利 用したhpc1tes2 キューで は、120 個 の NVIDIA

きるようになった。

GT200 GPU 型 演 算器が利用可能であり、単 精度ピーク演 算性 能は

この解析の結果、Cold Neutral Medium（CNM: 冷たい高密度の星

124.2TFlop/s 、また最 大122’880スレッドを同時実行可能であった。

間ガス塊）の速度は確かにCNMの音速より速い。しかし、CNMは周囲

総ビデオメモリは 480GB 、ビデオメモリ帯域 幅は合 計 1.224TB/sでを不安定相の気体に取り巻かれている。その音速よりはCNMの速 度あった。また利用負担金は１３万２千円であった。これにより14403 のは遅い、という状況が分かった。塊の運動は本質的にこの不安定相の解像度で、約 8 sound crossing timeの計算ができ、乱流スペクトルを

気体内部での亜音速乱流なので、塊の挙動は非圧縮 Kolmogorov 乱

解析する上で十分な量のデータが得られた。また約 200 枚の可視化用流で説明できるのではないか、との示唆を得た（図 2）。

のデータを得た。また実効演算性能は11.5Tflopsであった。

この部分を検証するために、TSUBAMEで行った14403 の解像度のシ
ミュレーションのスペクトル解 析を行った。これに際しても、膨大な 3

解 析と可視化

4

次元データのフーリエ解析を直接行う困難を避けるため、次のようなアルゴリズムを開発した。つまりまずディスクに保存されたスナップショッ
トを1回シーケンシャルアクセスし、その間に各方向への2 次元投影を作成する。次にその投影された速度を2 次元フーリエ変換する。最後に 2 次元のスペクトルから、天文観測で用いられている手法を模して 3

本研究のシミュレーションではこれまでにない大解像度を達成したこ

次元スペクトルを再構築する。このアルゴリズムを採用することで、スとから、その出力データ量も膨大なものとなり、その解析および可視化

ペクトル解 析の所要時間を短縮できた。また、地 球という一点から、のためのあらたなツール群を開発したことを述べておきたい。例えば天を2 次元球面として観測せざるを得ないという制限のある天文観測

１つのスナップショットのサイズは約 60GBであり、典型的なパソコンと比較・検証する上でも有意義なデータを得た。

のメモリに収まらない。そこでデータの2 次元断面程度のメモリしか消図2
塊検出解 析の結果 。
検出された塊の質量を横軸に、検出された塊（Clump ）の、
外部（Veil ）に対する速 度をプロットしたもの。Clumpの速 度は、Clump自身の音速を基準にして測ると超音速 運 動になっているが、Veilの音速を基 準にすればあくまで亜音速 運 動（Mach 数 <1）であることがわかった。

08

星間水素原子ガス乱流のGPU 計算― TSUBAME1.2 の120 GPUで 11.5 TFlops ―解析の結果、シミュレートされた乱流の冪は、超音速乱流領域、
Kolmogorov様領域、数値的散逸領域の3重構造を示した（図 3）。全体
としての冪はChepurnov et.al. 2010の速度・密度スペクトル（α v=3.87±0.11）（αε=3.0±0.1）と誤差の範囲内で一致した。超音速領域
は比較的softer, Kolmogorov様領域は比較的harderである。これらのことから、Chepurnov et.al.のような非Kolmogorov的観測は超音速領域とKolmogorov領域の重ね合わせとして説明できるかもしれない、という示唆を得た。
このデータの可視化にあたっても、ハードディスクに置いたまま、1回あるいは数 回のシーケンシャルアクセスのみで、流 体速 度、密度、
化学状 態、温 度など、さまざまな物理 量を可視化できるプログラムを開発した。これにより、熱 不安定性を引き起こしている衝撃波面が激
しくゆらぎ、強い噴出流が間欠的に突きあげる乱流のありさまが明らかとなった（図 1）。
また、大 規 模データの可視化を得意とする京都大学小山田研と共

図 3 速 度スペクトル解 析結果とそのフィット。

同研究により、40 面タイルドディスプレイを利用した大画面・高解像度の可視化を行った（図 4）。さらにTSUBAMEで実行した計算を、青木尊之教授と協力してムービーにし、TSUBAMEの広報活動等に活用していただいた。
分子雲形成領域における、2 相水素ガスの乱流 状 態の数値シミュ
レーションについては、その後も現在に至るまで、物理条件を変えた計算や、追加のデータ解析解析を行ったりしながら研究を進めている。

流 体から磁気流 体へ

5

以 上の流 体コードの開発・運 用経 験をふまえ、8 月ごろより磁気流 体
コードを開発開始した。磁気流 体力学は電離気体、プラズマの挙動を記述する基 本方程式のひとつである。宇宙物理学では降 着円盤、

図 4 京都大学小山田研と共同で行った、
40 面ディスプレイによる可視化 。

諸々のジェット現象、太陽、地球磁気圏まで、さまざまな天体現象の活動に磁場が不可欠な役割を果たしている。また磁気流 体力学は地上助的研究としての所要時間にとどめつつ、本研究で必要となるようなでのプラズマ制御、たとえば核融合炉の研究などにも使われている。

コード（とくに、流 体コードの開 発からまなんだもの）を簡 潔に生 成

GPGPUを使うことで、いままでにない高解像 度・高速の磁 気流 体力できる道 具を、との拘束 条 件のもとで、簡易的なコード・ジェネレー

学シミュレーションが可能になれば、これらの学問をも活性化するし、

タcprbを 設 計した。
（https://github.com/nushio3/cprb）cprb はまた太陽フレアの予測、人工衛星の防御などを通じて人類の生活にもHaskellで書かれており、ruby 風の文法で、C++のコードをメタプログ

直接の利益をもたらすだろう。

ラミングできる。現在のコードはcprbを使って書いているが実に快 適

現在のバージョンは時間・空間二 次精度のコードで、磁 気流 体力学のリーマン・ソルバーとしてHLLDを採 用した（Miyoshi & Kusano09である。並列プログラミングのための新しい手法を模 索する上での一歩となったと考えている。

2005[7]）。現在は磁気流体コードの開発を続けるかたわら、開発中の僕が磁気流 体コードを使ってぜひ解き明かしたいと思っているのはコードを用いてテストを行っており、流体力学や磁気流体力学のMHD

原始惑星系円盤における放電現象。宇宙の雲のつぎは宇宙の雷とい衝撃波がきちんと解けることを確認している段階である。
（ 図５）

うわけだ。実は僕は氷ダストどうしの衝突による放電 ---ようは、地上

多数 GPU 向けの流体コードを開発、運用した経験から、素朴なコーで起きているのと同じメカニズムの雷が、原始惑星系円盤でも起こりドを書いていては行 数があまりに多くなってしまって大 変である一方、うるのではないか、という研究をしたことがある（Muranushi,2010 [8]）。

C++/CUDAによる抽象 化をしようとしても、C++の抽象 化能 力の枠

また原始惑星系円盤において、Resistive MHDの素過程のみから放電

内では、限界があることもわかってきた。そこで、あくまでも研究の補を引き起こすメカニズムとしてInutsuka-Sano（ 2005）[9]が提案されていた。この論文においては、当メカニズムはone-zoneモデルで説明されていたが、最近 Okuzumiにより、3 次元的に不安定を引き起こしうる謝辞

ことが予言された。ぜひこれをシミュレートしてみたい。そのためには村主崇行は京都大学次世代研究者育成センターから研究の支援をいResistive 磁気流体力学シミュレーションが必要で、ゆくゆくはダストとただいている。濱田剛さん、
青木尊之さんほかコード開発に当たってアか化学反応も考慮していく必 要がある。3 次 元、高解像度シミュレー

ドバイスをいただいた方々には深く感謝したい。またこの研究は学際ションが必要なので、ぜひこれからも自作のコードでGPU並列計算機

大 規模情報基盤 共同利用・共同研究拠 点にかかわる皆様のご協力の性能を引き出して行きたい。

のおかげで実現できた。記して謝意を表す。
参 考文 献[1] Field G. B., Goldsmith D. W., Habing H. J., (1969), AstrophysicalJournal Letters, 155, L149+[2] Chepurnov A., Lazarian A., (2010), Astrophysical Journal, 710,
853
[3] Koyama, H., & Inutsuka, S. (2000), Astrophysical Journal, 532, 980[4] Inoue, T. & Innutsuka, S. (2008), Astrophysical Journal, 687:303310[5] Godunov, S. K. (1959), Matematicheskii Sbornik, 47, 271-306[6] van Leer, B. (1979) Journal of Computational Physics 32, 101-136[7] Miyoshi & Kusano, Journal of Computational Physics 208 (2005)
315–344[8] Muranushi, T. (2010), Monthly Notices of the Royal Astronomical
Society. 401, 2641–2664[9] Inutsuka & Sano, The Astrophysical Journal, Volume 628, Issue 2,
pp. L155-L158 (2005)

図 5 磁気流 体コードの衝撃波問題のテスト。
Miyoshi & Kusano 2005[7]のFig. 8. に対応 。
を左側、（ρ, p, v x , v y, v z , B y, Bz ）=（1, 1, 0, 0, 0, 1, 0）を右側、（ρ, p, v x , v y, v z , B y, Bz ）=（0.125, 0.1, 0, 0, 0, -1, 0）
Bx = 0.75 を初期条 件とし、t = 0.1まで積分したもので、図の解像度は 256メッシュ。

10

高速フーリエ変換とGPU
額田 彰 ** 東京工業大学

学術国際 情 報センター

高速フーリエ変換は現在マルチメディア分野から大規模シミュレーション分野に至るまで幅広い分野で利用されており、
常に高速化が求められている代表的な計算の一つである。TSUBAME2.0 では大々的にGPU が導入されている。
CPU で実行する場合と比べてGPU を使うと高速フーリエ変換の計算がどれくらい加速されるのかを紹介する。

はじめに

1

タで計算するような分子シミュレーションなどの大規模なアプリ
ケーションまでFFT は非常に幅広い分野で利用されている。
N 点 FFT を上に挙げた式通りに計算するとO（N2）の演算が必要になる。N = 512 の場合およそ 2,097,152 回の浮動小数点数演算が行われることになる。しかし上の式でY（ k ）を全て計算する場合にはFFT とは何かを正確に理解している人はあまり多くないであろう。

途中結果で共通する部分があるため実際に必要な計算量はNに大今の日本の若い人たちに「FFT って何の略なのか知ってますか？」

きく依存するが、一般にO（N logN）になる。N = 512 の場合でおよそと尋ねると「Final Fantasy Tactics」と答える人の方が多いような気24, 192 回だけで計算することができ、定義式通りに計算する場合のがする。これはスクウェア社が 1997 年に発売したゲームのようで、90 分の 1 くらいである。

実際にGoogle でFFT を検索するとこちらの関連するホームページがこのように浮動小数点数演算の数を最小化してしまうと、特に現圧倒的に上位を占めていた。私もFinal Fantasy シリーズはそれなり

在の高性能なCPUでは演算数よりも、計算の前にデータをメモリかに遊んできたが、Tactics はやったことがない。もちろん私がここでら読み込む操作と計算の後にデータをメモリに書き込む操作が実行

紹介するFFT はこれのことではなく、高速フーリエ変換（Fast Fourier

時間のほとんどを占めるようになる。このためFFT の計算は一般的

Transform）のことである。

にはメモリアクセスがボトルネックと言われている。TSUBAME 2.0に搭載されているCPU（ Westmere-EP, 2.93GHz, 6コア）のメモリ

高速フーリエ変換2

バンド幅（メモリ転送速度）は理論最大性能で 32GB/s であるが、これでもFFT の計算には十分ではない。
TSUBAME 2.0 の計算ノードには 2 個のCPUが搭載されているが、それに加えて 3 個のGPUが搭載されている。スーパーコンピュータにはものすごく大きなディスプレイ画面が必要なのでビデオカード

高 速フーリエ変 換とは以 下の数 式で定 義されるようなN 個の入 力

もたくさんある・・・・というわけではない。これらのGPU はCPU

データX（k）からN 個の出力データY（k）への数値変換である。

と同じように計算資源として用意されているのである。3Dゲームなどに欠かせないGPU であるが、中で何をやっているのかについてはあまり知られていない。綺麗な画面を表示するために実はものすご
く沢山の演算が行われている。画面描画処理は普通の計算と違って待ってはくれない。決められた時間内に１枚の画面の計算を終えな

何だか難しい数式であるが、それほど難しいことを計算しているわ
けではない。具体的な用例を挙げると、物理空間や時間方向のN 個

11ければならない。このためGPU は非常に多くの演算を同時に実行できるようになっている。

のサンプル点から各周波数の成分がどれくらいかを求めるというも

このような高 性 能でしかも安 価な計 算 資 源を画 像 処 理 以 外ののである。より身近な例ではMP3 プレイヤーなどに使われている技用途にも使おうという動きは何年も前からあった。GPU を利用し術がある。CD などに収録されている音楽データを圧縮する時に、どた汎用計算ということでGeneral Purpose computing on Graphicsの周波数成分（＝音の高さ）が大きいのかを調べている。人の耳は強Processing Units を略してGPGPUと呼ばれている。初期は目的の計

い周波数成分があるとその周りの弱めの音が聞き取りにくいという算を画像処理プログラムとして実行するというもので画像処理の枠性質を利用して、それならなくても同じではないか？ということで組みに無理やり組み込んでいたために効率があまり出ていなかった。

ばっさりカットすることでデータサイズを圧縮している。このよう最近になってGPUベンダもGPGPU を意識したGPU を設計するようなマルチメディア系の小規模な用途だけでなくスーパーコンピューになった。GPUによる高速な動画エンコードのような使い方も既に今では珍しくない。GPU 用のプログラム開発も以前と比べると格段かを示している。それぞれのFFT ライブラリで実際に何回の演算をに簡単になり、研究者やソフトウェア開発者を中心にGPU の利用が実行したかは不明なのでFFT では慣例としてN 点 FFT の演算数を 5N

普及して来た。特にNVIDIA 社のCUDA という統合開発環境はGPU

logN として扱う。

プログラムの開発にC 言語を拡張したプログラミング言語を採用

まずCPU を使用するFFT ライブラリとしてはFFTW ライブラリ3.1.2

しており現在のGPGPUの主流になっている。CUDA はNVIDIA 社のとIntel MKL ライブラリ10.2.5 がある。どちらもTSUBAME 2.0 環境

GPU 専用の開発環境であるが、各社製 GPU やマルチコアCPU を対に用意されている。マルチスレッドに対応しており、1 個のCPU の 6

象とした共通のプログラム言語としてOpenCL というものも策定さ

コア全てを使用した場合の性能を表示している。次にGPUを使用すれている。

るFFT ライブラリとしてNVIDIA 社が提供するCUFFT ライブラリ3.1

グラフィックス処理は通常あまり高い精度を必要としないので単の性能を表示している。このライブラリはCUDA ツールキット3.1

精度の浮動小数点数演算を用いている。このためCPU で動かしてに付属するものである。そして最後のNukadaFFT は名前から推測でいたプログラムをGPU に移植する場合には精度に関する問題が度々きるかと思うが私が開発しているFFT ライブラリである。

議論になっていた。最近のGPUはGPGPU 用途のために倍精度演算

FFTW ライブラリとMKL ライブラリの性能はほぼ同じである。細もサポートするようになったため、この精度問題は解決されている。

かい実装は異なるのであるが、最終的にはメモリへのアクセス速度

GPUの長所は高い演算性能だけではない。大量のデータをチップで性能が決まっている。

内に転送するための高いメモリバンド幅も備えている点が従来の演

CUFFT ライブラリとNukadaFFT ライブラリの性能には大きな差

算アクセラレータと大きく異なる点である。GPU（TeslaM2050）のがある。CUFFT ライブラリは単精度の性能はとても高いのであるが、メモリバンド幅は約 150GB/s とCPUの 4 倍以上になる。そこでGPU

倍精度の方はまだ十分な最適化が行われていないようである。

でFFT の計算をすればCPU の時の 4 倍以上の性能が出せるのではな
いだろうか？

メモリバンド幅の理論値ではGPU はCPUの 4.6 倍くらいである。
ところがFFT の計算性能では 7 倍もの性能差がある。これは理論値と実際の転送速度の間に大きな差があるからである。GPU のメモリ

CPU と GPU を使った FFT の性能

3

バンド幅は約 150GB/s であるが、FFT の計算をしているときの転送レートは 82GB/s 程度しかない。このように理論最大性能より低くなっている理由は幾つかある。Tesla M2050 のメモリはエラー訂正機能を持っている。メモリへ読み書きする際にデータ本体に加えてエラー訂正用の符号を転送しているためメモリバンド幅を余計に消それでは早速性能を見てみよう。図 1 はTSUBAME 2.0 に搭載される

費してしまう。メモリへの書き込み操作は読み込み操作と比べるとCPUまたはGPUでFFT を計算した場合の性能である。性能を示す単

少し遅くなるという性質がある。FFT の計算の場合にはメモリアク位としてGFLOPS（ギガフロップス）を用いている。これは１秒あた

セスの 50%が書き込み操作になるのでメモリアクセス効率がかなりりに何ギガ（10 億）回の浮動小数点数演算を実行することができた

低下してしまう。また単純にメモリをコピーするだけの場合と比べ

図1
このグラフは 128 点 FFT,256 点 FFT,512 点 FFTを
65,536 組、倍 精度で計算する場合の性能（GFLOPS）である。
Intel MKL ライブラリ10.2.5とFFTW ライブラリ3.1.2 は6コアのCPU（Westmere-EP, 2.93GHz）で、
NVIDIA CUFFT ライブラリ3.2 とNukadaFFT ライブラリ1.0 はGPU（NVIDIA Tesla M2050）を使 用している。

12

高速フーリエ変換とGPU

るとFFT の計算を行っているとどうしてもメモリアクセス効率が低いている自動チューニング手法は難しいものではない。考えられる

下してしまう。CPU の場合も同様である。単純なメモリコピーを行

全てのプログラムのバリエーションを自動的に生成して、それらをうときでもその転送スピードは 20GB/s 以下になるが、FFT の計算を片っ端から実行してみて一番速かったものを選んでいるだけである。

しているときは 12GB/s にも満たないのである。

この自動チューニングにかかる時間は入力サイズや使用するGPU
やCPU などに依存するが、大抵の場合 1 分以内に完了する。一般的

自動チューニング

4

なFFT の利用方法としては同じ入力サイズでのFFT の計算を何回も繰り返すので初回のこの自動チューニングにかかる時間は問題にならないだろう。また自動チューニングの結果はファイルに保存されるので次回実行時からは自動チューニングが必要ない。
GPU を使う場合に自動チューニングが必要という訳ではない。ラ

GPU 製品の種類はとても多い。CUDA に対応するNVIDIA 社のGPU

イブラリを提供するような場合を除けば利用するGPU のモデルはかはGeForce シリーズ、Quadro シリーズ、Tesla シリーズ、ION シリー

なり限られるだろう。FFT のように入力データのサイズに大きく依ズ や モバイルGPUを 含 め る と 既 に 100 種 を 超 え て い る。主 要 な存するのであれば自動化した方が効率がよいが大抵は手作業で最適

CUDA 対応 GPU の仕様を表 1 に記載した。GPUの性能は年々向上化を行うことも可能である。

し続けており、プロセッサコア数や演算性能、メモリバンド幅などはGPU のモデルによって様々である。GeForce シリーズはコンシューマ向けのゲーム用 途のGPUである。一 方 Teslaシリーズはハイパ
フォーマンス用途を前提としていて、倍精度演算性能を強化してい

おわりに

るし、
メモリ容量も大きく、メモリのエラー訂正機能も搭載している。

5

もちろんTSUBAME 2.0 に搭載されているのはこのTesla シリーズの方である。

GPU によるFFT の計算の現状を紹介した。TSUBAME 2.0 に搭載されFFT の計算を実行するGPU プログラムは一つだけではない。高いているCPUとGPUで比較した場合、GPU を使うことによって約 7 倍性能を実現するためには入力サイズに対応したプログラムを用意すの速度向上が得られている。これはFFT に限ったことではない。他る必要があるし、同じ入力サイズの場合でも色々な最適化パラメーにも流体計算などのメモリアクセスがボトルネックになる計 算にタがあり、それらのパラメータの組み合わせの数だけのプログラムも高いメモリバンド幅を持つGPU は適している。もちろんGPU はのバリエーションが考えられる。ではその中でどれが一番速く計算演算量が多い計算も得意である。今後も色々なアプリケーションができるのであろうか？実はGPU のモデルによって異なる。

GPU 化されていくことであろう。

私がNukadaFFT ライブラリの主要な部分を開発していた頃はま

NukadaFFT ライブラリは今でも頻繁にアップデートが繰り返されだTesla M2050 もGeForceGTX 480 も存在してなかったため、主にている。最新版は以下のURL から入手可能であるので興味がある方

GeForce GTX 280 を使っていた。それなのにTesla M2050 のようなは是非試していただきたい。

新しいGPU でも高い性能を実現できているのはなぜだろうか？これ

http://matsu-www.is.titech.ac.jp/˜nukada/nufft/

は自動チューニング機能を実装しているからなのである。ここで用

表 1 主要なCUDA 対応 GPU の仕様。

13

謝辞
本研究の一部は科学技術振興機構（JST ）の 戦略的創造研究推進事
業（CREST ）『ULP-HPC:次世代テクノロジのモデル化・最適化による超低消費電力ハイパフォーマンスコンピューティング』、Microsoft
Technical Computing Initiative “HPC-GPGPU: Large-Scale Commodity
Accelerated Clusters and its Application to Advanced Structural
Proteomics”、NVIDIA CUDA Center of Excellence Program、及び科学研究費補助金若手研究(A)22680002 によるものである。
参考文献[1] 青木尊之, 額田彰. 『はじめてのCUDAプログラミング』, 工学社, 東
京, 2009 年11 月.
[2] Akira Nukada and Satoshi Matsuoka.Auto-Tuning 3-D FFT Library
for CUDA GPUs. In Proceedings of the ACM/IEEE conference on
Supercomputing (SC09), Portland, ACM, Page 1-10, November
2009.

● TSUBAME e-Science Journal No.3
2011 年 2 月 25日 東京工業大学 学術国際情報センター発行 ©
ISSN 2185- 6028
デザイン・レイアウト：キックアンドパンチ
編集： TSUBAME e-Science Journal 編集室
青木尊之 渡邊寿雄 関嶋政和
ピパットポンサー・ティラポン 深山史子
住所： 〒 152-8550 東京都目黒区大岡山 2-12-1-E2-1
電話： 03-5734-2087 FAX：03-5734-3198
E-mail：tsubame_j@sim.gsic.titech.ac.jp
URL： http://www.gsic.titech.ac.jp/

14TSUBAME 共同利用サービ ス『みんなのスパコン』TSUBAMEは、
当初は主に東工大学内の研究・教育のために利用されておりましたが、
平成 21 年 7 月よりTSUBAME 共同利用サービスを開始し、学術・産業・社会へと広く貢献しております。

課題公募する利用区分とカテゴリー
共同利用サービスには、「学術利用」、「産業利用」、「社会貢献利用」の3つの利用区分があり、さらに「成果公開」と「成果非公開」のカテゴリーがあります。現在は 随時申請を受け付けており、申請課題は厳正な審査の下、採択の可否を決定します。採択課題の利用期間は当該年度末までです。
東工大学内のみならず、より多くの方にTSUBAMEサービ スを提供
他大学や公的研究機関の研究者の 学術利用［有償利用］

TSUBAME

共同利用とは…

民間企業の方の 産業利用［有償・無償利用］
その他の組織による社会的貢献のための 社会貢献利用［有償利用］

共同利用にて提供する計算資源
共同利用サービスの利用区分・カテゴリー別の利用課金表を下に示しました。
TSUBAME 2.0
における計 算 機 資 源の割 振りは口 数を単 位としており、1口は標 準 1ノード
（12 CPUコア,
3GPU, 55.82GBメモリ搭載 ）の 3000 時 間 分（≒約 4ヵ月）
相当の計算 機 資 源です。
この計算機 資 源は、1000 CPUコアを1日半とか、100 GPUを3.75日といった利用も可能です。
利用区分

利用者

制度や利用規定等

カテゴリー

利用課金

学術利用

他大学または研究機関等共同利用の利用規定に基づく

成果公開

1口：100,000 円

産業利用

民間企業を中心としたグループ「先端研究施設共用促進事業」に基づく非営利団体、公共団体等共同利用の利用規定に基づく

社会貢献利用

成果公開
成果非公開

トライアルユース（無償利用）
1口：100,000 円
1口：400,000 円

成果公開

1口：100,000 円

成果非公開

1口：400,000 円

産業利用トライアルユース制度（先端研究施設共用促進事業）
共同利用サービスの「産業利用」は、東京工業大学学術国際情報センターが実施する文部科学省先端研究施設共用促進補助事業を兼ねております。その中のトライアルユース制度
では、初めてTSUBAMEを利用する民間企業の方に限り、無 償での利 用（1利用期間は最長
1 年間、2 回まで）が可能です。この制度でスパコンTSUBAMEの敷居を下げることで、より多くの方にスパコンの魅力を体験していただいております。

お問い合わせ●東京工業大学 学術国際情報センター 共同利用推進室●e-mail tsubame@gsic.titech.ac.jp Tel. 03-5734-2085 Fax. 03-5734-3198
詳しくは http://www.gsic.titech.ac.jp/tsubame/をご覧ください。