SC18のExhibitor ForumにおいてNECは新製品であるAurora Tsubasaのアプリケーション性能の高さを訴えるプレゼンテーションを行った。発表を行ったのはNECのMasashi Ikuta氏である。

  • NECのMasashi Ikuta氏

    SC18でAurora TSUBASAを発表するNECのMasashi Ikuta氏

NECは高い連続実行性能を持つベクタスパコンを作ってきた。しかし、ユーザは、高い連続実行性能は良いが、ベクタスパコンは大きくて高いし、特殊なコンピュータだからと敬遠する傾向があったという。このため、Aurora TSUBASAではベクタエンジン(VE)をPCIeカードのフォームファクタに収めて、高速でパワフルなのにコンパクトで経済的なベクタスパコンを作った。

  • Aurora TSUBASA

    NECのベクタスパコンの歴史とその延長にあるAurora TSUBASA。ハヤブサのように高速でパワフル,コンパクトで経済的 (このレポートのすべての図はNECのMasashi Ikuta氏の発表スライドを撮影したものである)

SX Aurora TSUBASAはx86サーバをHostとしてベクタエンジンをPCI Express経由で接続するという、NECとしては、新しいアーキテクチャを採用した。ハードウェアとしては、ベクタエンジンはNECの独自開発であるが、Host側は標準のx86サーバであり、コストも安くできる。

ソフトウェアは標準のx86 Linuxが使える。そして、自動ベクトル化コンパイラはNECがこれまで蓄積してきた技術を使えばよい。そうすると、ベクタエンジンはC/C++やFORTRANでプログラムでき、ユーザとしてはCUDAやOpenCLなどのGPU言語を覚える必要もないし、これまでにCやFORTRANで作った資産をそのまま使える。

インタコネクトはInfiniBandを使っており、VEとVEの間の直接通信をサポートしている。なお、これはNVIDIAのGPU Direct 3と同じ機能と思われる。

  • SX-Aurora TSUBASA

    SX-Aurora TSUBASAはx86サーバをホストにしてベクタエンジンをPCIeで接続する新アーキテクチャを採用。x86採用でコストダウンと標準Linuxが使えるようになった

PCIe経由でVEを接続となるとGPUと同じかと思われるが、GPUの場合はGPUで計算すべきカーネルが出てくるとGPUに制御を渡し、それが終わるとホストに戻るというファンクション単位のオフロードが行なわれ、頻繁にCPUとGPUの実行が切り替わる。これに対してAuroraアーキテクチャではVEでのアプリケーションの実行が始まると、その処理が終わるまでVEでの実行が続き、VEでは実行できないIOなどが出てくるとVEからホストに処理を依頼するという処理が行われる。このため、ホストとVEの間の処理の切り替え回数が少なく、GPUよりも効率が高い処理が行なえる。また、PCIeのトラフィックも少なくて済む。

  • Aurora TSUBASA

    GPUの場合はファンクション単位で処理を依頼するが、Auroraアーキテクチャでは、ホストはアプリケーション単位で依頼し、VQEはIOなどのVEで実行できない処理だけ一時的にホストに実行を依頼して処理を行う。このため、ホストとVEの切り替えの回数が少なくPCIeのトラフィックも少なくて済む

なお、Auroraでは、次の図に示すようにx86アプリケーションの中からVEで実行する部分だけをオフロードするVEO型やVEアプリケーションの中からx86で実行する部分を切り出すVH Callといった切り出しをすることもでき、個々のアプリケーションに適した切り出し方を選択することができる。

  • Aurora TSUBASA

    Auroraでは、この図のように、アプリケーションをすべてVEで実行する分担、アプリケーションをホストで実行し部分的にVEで実行する分担、アプリケーションをVEで実行し部分的にホストで実行する分担を選択することができる

Aurora TSUBASAのVEは、次の図のように、GPUと同じような外観になっており、真っ赤に塗られているところがスポーティである。外観はGPUに似ているが、前に説明したようにGPUとは動き方が違う。

プロセサは8コアを集積しており、チップ当たりのピーク演算性能は2.45TFlops、メモリバンド幅は1.22TB/sで、BF比は0.5である。

  • Aurora TSUBASA

    VEはGPUのような外観であるが、動き方はまったく異なる。このボードでピーク演算性能は2.45TFlops、メモリバンド幅は1.22TB/Sとなっている

プロセサチップは8個のコアを持ち、それらはソフトウェア制御のできる16MBのキャッシュに接続されている。コアから見た、このキャッシュのアクセスバンド幅は3TB/sである。そして、キャッシュから6個のHBM2メモリにつながっている。6個のHBM2を使っているので、メモリバンド幅は1.22TB/s、メモリ容量は24、または48GBである。

  • Aurora TSUBASA

    Aurora VEのブロック図。8個のコアを持ちピーク演算性能は2.45TFlops。6個のHBM2を持ちメモリバンド幅は1.22TB/s。BF比は0.5である

プロセサのSKUは10A、10B、10Cの3種がある。すべて8コアであるが、クロックとメモリが異なり、10Aは1.6GHzクロックで1.22TB/s、48MBのメモリを持つ。10Bはメモリは10Aと同じであるが、クロックが1.4GHzと低くなっている。10Cはクロックが1.4GHzでメモリは0.75GB/s、24GBの廉価版である。

  • Aurora TSUBASA

    Aurora VEは、10A、10B、10Cの3種のSKUがある

Aurora TSUBASAのプログラミング環境を次の図に示す。まず、コンパイラは自動ベクトル化と自動並列化の機能を備えている。そして、プログラミング言語としてはFortran、C、C++と並列処理用のOpenMP4.5が提供されている。また、MPI3.1、libc、BLAS、Lapackなどのライブラリが提供されている。さらにデバッガやトレースビューワーなどのツールがある。

Aurora TSUBASAでの実行は、ユーザから見るとホスト側でのプログラムの実行と変わらないが、必要に応じて自動的にVE側に転送されて実行される。

  • Aurora TSUBASA

    Auroraのプログラミング環境。コンパイラは自動ベクトル化と自動並列化機能を備えたFortran、C/C++、OpenMP4.5コンパイラが提供されている

次の表に提供されているライブラリの一覧を示す。このNEC Libは、Auroraアーキテクチャに最適化されたライブラリとなっている。表に見られるように、IntelのMKLよりも豊富なレパートリを備えている。

  • Aurora TSUBASA

    NECA LibとIntelのMKLの比較

NECの製品としては、大型のスパコンモデルのA500シリーズ、ラックマウントのA300シリーズ、タワーモデルのA100シリーズとフルレンジをカバーしている。A500は40℃の温水による水冷であるが、A300とA100は空冷となっている。

  • Aurora TSUBASA

    大型のスパコンモデルのA500シリーズ、ラックマウントのA300シリーズ、タワーモデルのA100シリーズが製品化されている

Aurora TSUBASAの性能であるが、次の図はIntelのSkylake 6148、KNL(Knights Landing)、NVIADIAのVOLTA V100 GPUと1ノード分の性能を比較したもので、左がHPL、右はSTREAM性能を比較した棒グラフである。

なお、Aurora VEとしては10Bの8プロセサを使い、SkylakeはXeon 6148 2ソケット、 KNLとV100は1ソケットであるがP/Nは記載されていない。

HPLではAuroraとSkylake、KNLは大差ないがV100は2.3倍の性能である。一方、STREAMではAuroraはSkylakeの約5倍と、V100を上回る最大のバンド幅を誇る。これはHBM2を6個搭載の威力である。

  • Aurora TSUBASA

    Aurora VE、Skylake、KNL、V100のHPLとSTREAMの性能比較。HPLではAuroraとSkylakeは同程度の性能。STREMではAuroraはSkylakeの5倍のメモリバンド幅を持つ

疎行列を扱うHPCGでは、AuroraはSkylakeの2.5倍の性能であり、消費電力あたりの性能では7倍と高効率である。ベクタのスキャッタ、ギャザーが効いているのであろうか?

  • Aurora TSUBASA

    SkylakeとのHPCG性能とHPCG性能/Wの比較。HPCG性能/WではAuroraはSkylakeの7倍の性能になっている

次の図はNAS ParallelベンチマークでのSkylakeとの比較である。性能では1.2倍から1.7倍で、性能/電力では2倍から2.7倍になっている。

  • Aurora TSUBASA

    NAS Parallelの中の3つのベンチマークでのSkylakeとの比較。性能は1.2~1.7倍、性能/電力は2~2.7倍となっている

P100 GPUとXeon 6130とのライブラリを使った乱数発生性能の比較ではAuroraが圧倒的に高性能で、倍精度浮動小数点の場合は、AuroraはXeon 6130の50倍の性能となっている。

  • Aurora TSUBASA

    AuroraとP100 GPU、Xeon 6130との乱数発生ライブラリの性能比較

実アプリケーションでの性能比較は、IntelのMKLのfinancial option pricingの例題を実行した場合で、AuroraはXeon Gold 6126(12コア)と比較して3.3倍高速である。右のグラフは縦軸はスループット、横軸をコア数としたグラフである。

  • alt属性はこちら

    IntelのMKLのfinancial option pricingの例題を実行した場合で、AuroraはXeon Gold 6126(12コア)と比較して3.3倍高速である

次のケースはCTスキャンのベンチマークの実行性能でAuroraはXeon Gold 6126に比べてコアあたりでは7.1倍速く、ソケットあたりで比較しても3.9倍速い。

  • Aurora TSUBASA

    CTスキャンのベンチマークの実行性能でAuroraはXeon Gold 6126に比べてコアあたりでは7.1倍速く、ソケットあたりで比較しても3.9倍速い

次はNECのマシンラーニングを使ってマルウェアを検出するケースで、Xeon Gold 6126と比較してコア当たりの学習のスループットは3.7倍で、ソケット当たりでは2.5倍の性能である。

  • Aurora TSUBASA

    NECのマシンラーニングでマルウェア検出の学習を行うケースで、Xen Gold 6126と比較して、コアあたり3.7倍、ソケットあたりでは2.5倍高速である

NECのSystem Invariant Analysis Technology(SAIT)を用いて複雑なシステムの異常を見つけるケースでは、Aurora VEはXeon Gold 6126 2ソケットと比較して2.2倍高速。

  • Aurora TSUBASA

    NECのSAITを用いてシステムの異常を見つけるケースでは、Xeon Gold 6126 2ソケットと比較して2.2倍高速

人間の体温調節応答と気象予報を基に熱中症リスクを計算するケースでは、Xeon Gold 6148 と比べてAurora VEは1.8倍高速である。

  • Aurora TSUBASA

    人間の体温調節応答と気象予報を基に熱中症リスクを計算するケースでは、Xeon Gold 6148と比べてAuroraは1.8倍高速である

ショットピーニング(小粒子を衝突させて金属表面などを研削する加工)のシミュレーションのケースではAuroraはXeon Gold 6148 と比較して2.4倍高速である。

  • Aurora TSUBASA

    ショットピーニングのシミュレーションのケースではAurora VEはXeon Gold 6148と比較して2.4倍高速

AIやビッグデータのアプリケーションでは、ディープラーニングではより高いコンピュート性能、統計的マシンラーニングではより高いメモリ性能が必要であり、汎用コンピュータを大きく上回る性能が要求される。

  • Aurora TSUBASA

    AIやビッグデータ処理では汎用CPUでは及ばないコンピュート性能、メモリ性能が要求される

FrovedisはNECが開発したSpark互換で高速なミドルウェアであり、Githubに公開されているオープンソフトウェアである。Sparkのプログラムを3行変更するだけで、Frovedisで動作させることができるという。

  • Aurora TSUBASA

    FrovedisはNECが開発したマシンラーニング向けのSpark互換のミドルウェアで、Githubで公開されている

Frovedisでは、次の図に示すように各種のプロセスがサポートされている。

  • Aurora TSUBASA

    Frovedisでは、この図に示すように各種のプロセスがサポートされている

次の図は、Frovedis+VEでマシンラーニングを行った場合とSprak+x86で同じマシンラーニングを行った場合の性能を3つのケースで比較したもので、Frovedis+VEは42.8倍から111倍と圧倒的に高い性能を示している。

  • Aurora TSUBASA

    Frovedis+VEとSpark+x86の性能比較。Frovedis+VEは42.8倍から111倍と圧倒的に高い性能を示している

次の図は、データフレームの処理を行う場合のFrovedis+VEとSpark+x86の性能を比較したもので、Group byの8.7倍からFilterの26.7倍と、これもFrovedis+VEの圧勝である。

  • Aurora TSUBASA

    データフレーム処理でのFrovedis+VEとSpark+x86の性能比較。これも8.7倍~26.7倍とFrovedis+VEの圧勝

Frovedis+VEとSpark+x86の性能の比較で、なぜ、これほどの大差が付くのかは分からないが、Xeon Gold 6126(12コア、2.6GHz/3.7GHz)との比較では、多くのアプリケーションでソケットあたりでは2倍、3倍の性能となっている。VEの演算能力とメモリバンド幅を考えると、この程度の差はあって当然という気はする。

しかし、このようなケースではx86だけでなく、GPUをアクセラレータとして付けるという構造を考えるユーザは多いと思われ、VEとGPUの性能比較を示して貰いたいところである。

また、Aurora TSUBASAはx86ホストとPCI ExpressインタフェースのVEで従来のベクタスパコンに比べてコストダウンしたはずであり、性能/コストについても言及してもらいたかった。