Topics
    イベント情報
    Menu

    NVIDIA GTC 2016 セッションレポート

    2016年10月17日


    POWER8 NVIDIA GPU性能評価事例

    NVIDIA主催 GTC Japan 2016 

    「IBM POWERを加速する最新NVIDIA GPUコンピューティング性能検証事例」
    セッションレポート

    講師:電気通信大学 量子科学研究センター 准教授 森下 亨 様

     2016年10月5日(水)開催

     

    morishita-prof-1 morishita-prof-2   

     

    極限環境における超高精度の行列x複素ベクトル計算

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

    「皆さんは、原子や分子を見たことがありますか?」との問いかけに始まって、1982年にIBMのチューリッヒ研究所のゲルト・ビンニッヒ(G. Binnig)とハインリッヒ・ローラー(H. Rohrer)が発明した走査型トンネル顕微鏡(STMとも呼ばれる実験装置)によって、原子を1つずつ見ることができるようになったエピソードが紹介されました。なお、STMの観測結果と信頼性の高さが認められ、1986年にビンニッヒとローラーは、ノーベル物理学賞を受賞しています。

    「原子・分子・光物理学は、原子や分子の性質や振る舞い、そしてそれらが光の中でどうなるかといったことを研究する学問分野です。構成する粒子同士や光(電磁場)との相互作用が良く分かっているとてもクリーンなシステムが研究対象です。とても高精度の実験ができるので、解析理論や計算理論についても高精度のものが要求されます。私たちは、原子や分子に大変強いレーザー光線を照射すると、どのような現象が起こるかを調べています。」

    ご専門の原子・分子・光物理学の簡単な解説のあと、強レーザーを照射した極限的な環境での原子や分子の研究におけるHPCシステムの性能の実測結果についてお話がありました。

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

    実際の原子や分子の中の電子の動きは、ストロボを使ったカメラの撮影と同じように、超短レーザーパルスを使って調べます。原子レベルの超高速の運動を調べるための超短レーザーパルスを発生させる装置には、高次高調波発生(HHG)装置やX線自由電子レーザー(XFEL)装置があります。私たちは、理論的な観点から、こうした巨大な装置を使った実験によって何が起きているかを探るという研究を行っています。」

    原子や分子のアト秒スケールという気が遠くなるような短い時間で起きる超高速現象を調べる実験装置が紹介され、実験データの解析に高精度の計算による分析が不可欠であるというお話がありました。また、日本には、さまざまな技術を結集して完成した自由電子レーザー(FEL)のSACLA(さくら:SPring-8 Angstrom Compact Free Electron Laser)があり、SACLAは、太陽の100億倍の明るさであるSPring-8の光の、更に10億倍の明るさのX線の超短レーザーパルスを発生させる巨大な実験施設です。

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

    原子や分子の超高速現象を高精度で調べるための計算手法を説明されました。解析する問題は多岐にわたり、問題によって適切な計算を行うため、絶えずコード開発を行っているそうです。また、高い精度の計算結果が要求されるので、高度なアルゴリズムが要求されます。高精度という観点から、これまでに300桁の計算を行ったこともあるそうです。

    「計算のプロトタイプとして、水素原子にレーザーパルスが照射された場合の計算における主要な部分を取り出してベンチマークに利用しました。NxNの行列がNL個あるような、ブロック対角の行列とNxNLの要素の複素数ベクトルをIT回繰り返し計算します。」

    計算の繰り返しごとにベクトルの再規格化を行うような、途中計算も入り、普段の研究での使用に近い環境でHPCシステムの性能の実測をされたとのご説明がありました。

    アト秒スケールでの原子・分子の振舞いを解析するHPCシステムのベンチマーク
    IBM Power System S822LC for HPCの性能検証~

     「現行システムの“Firestone”と 最新鋭の“Minsky”をベンチマークに使用しました。以下、行列をCPU で生成し、それを GPU に転送してGPUで行列ベクトル積を計算したケースと、CPUだけで計算したケースの時間を測定して比較しました。」

    report10  

    Firestone”は、NVIDIA の従来型GPU である K80 を搭載したサーバです。“Minsky”は、2016年9月末に発売されたばかりの、最新鋭サーバ:IBM Power System S822LC for HPCで、NVIDIAの最新GPUであるNVLink版 NVIDIA Tesla P100を搭載しています。今回のベンチマークで使用したリソースはCPUとGPUが各1個です。

     

    比較1:2000×2000が300個程度の小さな行列計算
    N=2000、NL=300、IT=1000(CPUからGPUへの転送回数は1回)

    「データのサイズはGraphics メモリ容量の16GBに収まります。GPUを使った計算では、行列とベクトルをすべて1回だけ GPUに転送し、多数回の行列ベクトル積をGPU で行いました。なお、複素数ベクトルは2列の実数行列として扱い、計算にはBLASのパッケージを使いました。」

    report20

    比較1:2000×2000が300個程度の小さな行列計算結果
    「行列ベクトル積は、GPUとGraphics memory の転送(またはCPUとDDR4 メモリの転送)に負荷がかかる計算です。“Minsky”では、CPUでの計算が11.51GFlops であったのに対し、GPUでの計算が約10倍の107.10GFLOPSという結果が出ました。K80を搭載した”Firestone” では計算速度がCPUの約4倍の47.51GFlpopsだったので、新しい”Minsky“ に搭載された NVLink版 NVIDIA Tesla P100 が高速化に大きく貢献していることがわかります。」

     

    比較2:大きな行列計算
    N=7000、L=500、T=1(CPUからGPUへの転送回数は500回)
    「データのサイズは、Graphics メモリには収まりません。そこで、GPU計算では、行列のブロックを1つずつ(計500回)GPU に転送して行列ベクトル積を行いました。これはCPUとGPU間の転送に負荷がかかる計算についてのベンチマークです。」

    report30

    比較2:大きな行列計算結果
    「CPUでの計算では、1つのブロックの行列が大きくなり、CPU側のキャッシュが有効に使えるようになると予想されます。実際、“Minsky”では比較1の11.51GFlopsを上回る23.86GFlopsを実現しました。GPUの計算では1回の転送で N2 個のオーダーの要素をGPUに送りN2 回のオーダーの演算量となるので、転送での負荷がとても大きいと考えられます。それにも関わらずGPU側での計算では、予想をはるかに上回る14.84GFLOPSという結果が出ました。CPUとGPUメモリ間のNVLinkによる高速転送が大きく貢献していると思われます。」

     

    比較3:NxNのM倍の計算における“Firestone”と “Minsky”の比較
    N=7000、NL=500、IT=1(CPUからGPUへの転送回数は500回)

    「特殊なケースではありますが、いくつかの独立したM個の電子状態に対する計算についてのベンチマークを行いました。これは、M個の複素ベクトルを 2M 列の実行列とした行列積の計算となります。」

    report40

    比較3:NxNのM倍の計算における“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と同様 N2 個のオーダーのデータを送りますが、GPU での計算量のオーダーが N2Mとなり M 倍増えるので、転送の負荷が相対的に小さくなるためと考えられます。」

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

     

    性能比較のまとめ

    1)小さな行列計算
    IBM Power8の最新鋭サーバの“Minsky”:IBM Power System S822LC for HPC とNVLink版 NVIDIA Tesla P100の組み合わせにより、CPUでの計算が11.51GFlops、GPUでの計算が約10倍の107.10GFLOPSという、大変良好な結果が得られました。

    2)大きな行列計算
    データ転送の負荷が非常に大きいと考えられるGPUの計算では、CPUとGPUの転送時間が課題になります。CPU-GPU間のNVLinkが実現する高速なデータ転送によって、GPU側が絶えず要求する大量データを満足に供給することができ、予想をはるかに上回る14.84GFLOPSという結果が出ました。

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

     

    NVIDIA GPU NVLink搭載!! HPCに最適な新製品IBM Power System S822LC for HPC の特別キャンペーン実施中!! キャンペーンに関する詳しい情報はこちらから!!

    HPCに最適な新製品IBM Power System S822LC for HPC の詳しい情報はこちらから!!

    VTが提供する、無料の稼働・性能検証環境「IBM POWER8 テストドライブセンター」に関する詳しい情報はこちらから!!