×
最新の人気コンテンツ情報をまとめた
メールマガジンをお届けします

ページトップへ
電気通信大学 量子科学研究センターの森下 亨 准教授が、極限環境下の大規模・超高精度科学技術計算におけるIBM POWER8の性能検証事例を発表されました。
本記事はその事例が発表されたセミナーのレポートです。


タイトル:「IBM POWERを加速する最新NVIDIA GPUコンピューティング性能検証事例」
講師:電気通信大学 量子科学研究センター  森下 亨 准教授
開催:2016年10月5日(水)
主催:NVIDIA


理論原子・分子・光物理学の研究における大規模で超高精度の計算

電気通信大学の森下准教授は、理論原子・分子・光物理学を専門に研究されています。最近の研究の対象は、アト秒(10のマイナス18乗秒)という非常に短い時間スケールに起こる原子や分子の振舞いについてです。GPU2016では、森下准教授が実際の研究に使っている行列・ベクトル計算について、最新鋭のIBM POWER8サーバを使った性能の実測結果を報告されました。


原子・分子・光物理学は、原子や分子の性質や振る舞い、そしてそれらが光の中でどうなるかといったことを研究する学問分野です。構成する粒子同士や光(電磁場)との相互作用が良く分かっているとてもクリーンなシステムが研究対象です。とても高精度の実験ができるので、解析理論や計算理論についても高精度のものが要求されます。私たちは、原子や分子に大変強いレーザー光線を照射すると、どのような現象が起こるかを調べています。
現在の最先端の研究では、強いレーザーを使って原子や分子の中で電子が100アト秒(10のマイナス16乗秒:1京分の1秒)の周期で回っている超高速現象を写真撮影することを考えています。

100 アト秒がどのくらい短い時間かを考える1つの例を見ましょう。日本で最速のコンピューターの1つの『京コンピューター』の性能は、10PFlops(1秒間に10の16乗回)の浮動小数点演算を行うことが可能です。これは見方を変えると、1回の演算に要する(平均の)時間は100アト秒(10のマイナス16乗秒)になります。つまり、『京コンピューター』が1回の演算を行う(平均の)時間に起こる自然界の現象を調べるという、超高速・超高精度の研究を行っているのです。


理論的研究では、原子や分子の状態や運動を記述する量子力学の基礎方程式である、シュレーディンガー方程式を数値的に解きます。この方程式は偏微分方程式で表され、電子が原子や分子の中、また、レーザー場の中でどのように振る舞っているか記述します。しかし、偏微分方程式のままでは計算機(コンピューター)で扱いにくいために、行列の形で表します。(これを行列形式といいます。)原子や分子の量子力学的状態は複素数のベクトルで表され、その状態の時間依存性は実数の正方行列によって特徴付けられます。原子や分子の中の電子の時々刻々と動く様子は、行列xベクトルの積を何度も何度も繰り返すことによって解析されます。

原子・分子の振舞いを解析するHPCシステムのベンチマーク ーー最新鋭のIBM Power System S822LCを使った性能検証

現行システムの“Firestone”(*1)と 最新鋭の“Minsky”(*2)をベンチマークに使用しました。
行列をCPU で生成し、それを GPU に転送してGPUで行列ベクトル積を計算したケースと、CPUだけで計算したケースの時間を測定して比較しました。
計算のプロトタイプとして、水素原子にレーザーパルスが照射された場合の計算における主要な部分を取り出してベンチマークに利用しました。NxNの行列がL個あるような、ブロック対角の行列とNxLの要素の複素数ベクトルをT回繰り返し計算します。計算の繰り返しごとにベクトルの再規格化を行うような、途中計算も入る、普段の研究での使用に近い環境でHPCシステムの性能を実測しました。

(*1) Power Systems S822LC for High Performance Computing/ Model 8335-GTA
(*2) Power Systems S822LC for High Performance Computing / Model 8335-GTB


“Firestone”は、NVIDIA の従来型GPU である K80 を搭載したサーバです。“Minsky”は、2016年9月末に発売されたばかりの、最新鋭サーバ:IBM Power System S822LCで、NVIDIAの最新GPUであるNVIDIA Tesla P100を搭載しています。システム構成は CPUとGPUが各1個です。

  • HPCシステム比較1:小さな行列計算環境
N=2000、L=300、T=1000(CPUからGPUへの転送回数は1回)
データのサイズはGraphics メモリ容量の16GBに収まります。GPUを使った計算では、行列とベクトルをすべて1回だけ GPUに転送し、多数回の行列ベクトル積をGPU で行いました。なお、複素数ベクトルは2列の実数行列として扱い、計算にはBLASのパッケージを使いました。


  • HPCシステム比較1:小さな行列計算結果
行列ベクトル積は、GPUとGraphics memory の転送(またはCPUとDDR4 メモリの転送)に負荷がかかる計算です。“Minsky”では、CPUでの計算が11.51GFlops であったのに対し、GPUでの計算が約10倍の107.10GFLOPSという結果が出ました。K80を搭載した”Firestone” では計算速度がCPUの約4倍の47.51GFlpopsだったので、新しい”Minsky“ に搭載された Pascal が高速化に大きく貢献していることがわかります。
---
  • HPCシステム比較2:大きな行列計算環境
N=7000、L=500、T=1(CPUからGPUへの転送回数は500回)
データのサイズは、Graphics メモリには収まりません。そこで、GPU計算では、行列のブロックを1つずつ(計500回)GPU に転送して行列ベクトル積を行いました。これはCPUとGPU間の転送に負荷がかかる計算についてのベンチマークです。


  • HPCシステム比較2:大きな行列計算結果
CPUでの計算では、1つのブロックの行列が大きくなり、CPU側のキャッシュが有効に使えるようになると予想されます。実際、“Minsky”では比較1の11.51GFlopsを上回る23.86GFlopsを実現しました。GPUの計算では1回の転送で N² 個のオーダーの要素をGPUに送りN² 回のオーダーの演算量となるので、転送での負荷がとても大きいと考えられます。それにも関わらずGPU側での計算では、予想をはるかに上回る14.84GFLOPSという結果が出ました。CPUとGPUメモリ間のNVLinkによる高速転送の効果が大きく貢献していると思われます。
---
  • HPCシステム比較3: “Firestone”と “Minsky”の比較
N=7000、L=500、T=1(CPUからGPUへの転送回数は500回)
特殊なケースではありますが、いくつかの独立したM個の電子状態に対する計算についてのベンチマークを行いました。これは、M個の複素ベクトルを 2M 列の実行列とした行列積の計算となります。


  • HPCシステム比較3: “Firestone”と “Minsky”の比較結果
“Firestone” では、
M=100:195.53GFlops
M=500:245.45GFlops
M=1000:212.31GFlops
“Minsky” では、
M=100:261.53GFlops(1.34倍)
M=500:445.41GFlops(1.81倍)
M=1000:483.90GFlops(2.28倍)
となりました。M を大きくすると、GPU での計算のパフォーマンスの向上がみられました。これは比較2と同様 N² 個のオーダーのデータを送りますが、GPU での計算量のオーダーが N²Mとなり M 倍増えるので、転送の負荷が相対的に小さくなるためと考えられます。

HPCシステムとしてのIBM POWER8性能比較のまとめ

IBM POWER8 とNVIDIA Tesla P100を組み合わせた、実際の研究に近い環境における計算速度の実測値は、小規模な計算と大規模な計算のどちらにおいても、大変良好な結果が得られました。

1)小さな行列計算
NVIDIA Tesla P100を搭載したIBM POWER8の最新鋭サーバの“Minsky”:IBM Power System S822LCにより、CPUでの計算が11.51GFlops、GPUでの計算が約10倍の107.10GFLOPSという結果が出ました。

2)大きな行列計算
データ転送の負荷が非常に大きいと考えられるGPUの計算では、CPUとGPUの転送時間が課題になります。CPU-GPU間の高速メモリアクセスを実現する、NVIDIAのNVLinkが高速の転送を実現し、予想をはるかに上回る14.84GFLOPSという結果が出ました。

3)性能のチューニング
限られた時間でのベンチマーク作業であったために、比較3のデータは、チューニング途中のものです。さらにチューニングを行うことで、パフォーマンスの改善が見込まれます。

こちらもチェック

最新鋭のIBM Power System S822LCを使った、さらに詳しい性能検証事例の紹介セミナーが2016年12月19日に開催されました。