SC18のExhibitor ForumにおいてNECは新製品であるAurora Tsubasaのアプリケーション性能の高さを訴えるプレゼンテーションを行った。発表を行ったのはNECのMasashi Ikuta氏である。
NECは高い連続実行性能を持つベクタスパコンを作ってきた。しかし、ユーザは、高い連続実行性能は良いが、ベクタスパコンは大きくて高いし、特殊なコンピュータだからと敬遠する傾向があったという。このため、Aurora TSUBASAではベクタエンジン(VE)をPCIeカードのフォームファクタに収めて、高速でパワフルなのにコンパクトで経済的なベクタスパコンを作った。
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と同じ機能と思われる。
PCIe経由でVEを接続となるとGPUと同じかと思われるが、GPUの場合はGPUで計算すべきカーネルが出てくるとGPUに制御を渡し、それが終わるとホストに戻るというファンクション単位のオフロードが行なわれ、頻繁にCPUとGPUの実行が切り替わる。これに対してAuroraアーキテクチャではVEでのアプリケーションの実行が始まると、その処理が終わるまでVEでの実行が続き、VEでは実行できないIOなどが出てくるとVEからホストに処理を依頼するという処理が行われる。このため、ホストとVEの間の処理の切り替え回数が少なく、GPUよりも効率が高い処理が行なえる。また、PCIeのトラフィックも少なくて済む。
なお、Auroraでは、次の図に示すようにx86アプリケーションの中からVEで実行する部分だけをオフロードするVEO型やVEアプリケーションの中からx86で実行する部分を切り出すVH Callといった切り出しをすることもでき、個々のアプリケーションに適した切り出し方を選択することができる。
Aurora TSUBASAのVEは、次の図のように、GPUと同じような外観になっており、真っ赤に塗られているところがスポーティである。外観はGPUに似ているが、前に説明したようにGPUとは動き方が違う。
プロセサは8コアを集積しており、チップ当たりのピーク演算性能は2.45TFlops、メモリバンド幅は1.22TB/sで、BF比は0.5である。
プロセサチップは8個のコアを持ち、それらはソフトウェア制御のできる16MBのキャッシュに接続されている。コアから見た、このキャッシュのアクセスバンド幅は3TB/sである。そして、キャッシュから6個のHBM2メモリにつながっている。6個のHBM2を使っているので、メモリバンド幅は1.22TB/s、メモリ容量は24、または48GBである。
プロセサの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のプログラミング環境を次の図に示す。まず、コンパイラは自動ベクトル化と自動並列化の機能を備えている。そして、プログラミング言語としてはFortran、C、C++と並列処理用のOpenMP4.5が提供されている。また、MPI3.1、libc、BLAS、Lapackなどのライブラリが提供されている。さらにデバッガやトレースビューワーなどのツールがある。
Aurora TSUBASAでの実行は、ユーザから見るとホスト側でのプログラムの実行と変わらないが、必要に応じて自動的にVE側に転送されて実行される。
次の表に提供されているライブラリの一覧を示す。このNEC Libは、Auroraアーキテクチャに最適化されたライブラリとなっている。表に見られるように、IntelのMKLよりも豊富なレパートリを備えている。
NECの製品としては、大型のスパコンモデルのA500シリーズ、ラックマウントのA300シリーズ、タワーモデルのA100シリーズとフルレンジをカバーしている。A500は40℃の温水による水冷であるが、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個搭載の威力である。
疎行列を扱うHPCGでは、AuroraはSkylakeの2.5倍の性能であり、消費電力あたりの性能では7倍と高効率である。ベクタのスキャッタ、ギャザーが効いているのであろうか?
次の図はNAS ParallelベンチマークでのSkylakeとの比較である。性能では1.2倍から1.7倍で、性能/電力では2倍から2.7倍になっている。
P100 GPUとXeon 6130とのライブラリを使った乱数発生性能の比較ではAuroraが圧倒的に高性能で、倍精度浮動小数点の場合は、AuroraはXeon 6130の50倍の性能となっている。
実アプリケーションでの性能比較は、IntelのMKLのfinancial option pricingの例題を実行した場合で、AuroraはXeon Gold 6126(12コア)と比較して3.3倍高速である。右のグラフは縦軸はスループット、横軸をコア数としたグラフである。
次のケースはCTスキャンのベンチマークの実行性能でAuroraはXeon Gold 6126に比べてコアあたりでは7.1倍速く、ソケットあたりで比較しても3.9倍速い。
次はNECのマシンラーニングを使ってマルウェアを検出するケースで、Xeon Gold 6126と比較してコア当たりの学習のスループットは3.7倍で、ソケット当たりでは2.5倍の性能である。
NECのSystem Invariant Analysis Technology(SAIT)を用いて複雑なシステムの異常を見つけるケースでは、Aurora VEはXeon Gold 6126 2ソケットと比較して2.2倍高速。
人間の体温調節応答と気象予報を基に熱中症リスクを計算するケースでは、Xeon Gold 6148 と比べてAurora VEは1.8倍高速である。
ショットピーニング(小粒子を衝突させて金属表面などを研削する加工)のシミュレーションのケースではAuroraはXeon Gold 6148 と比較して2.4倍高速である。
AIやビッグデータのアプリケーションでは、ディープラーニングではより高いコンピュート性能、統計的マシンラーニングではより高いメモリ性能が必要であり、汎用コンピュータを大きく上回る性能が要求される。
FrovedisはNECが開発したSpark互換で高速なミドルウェアであり、Githubに公開されているオープンソフトウェアである。Sparkのプログラムを3行変更するだけで、Frovedisで動作させることができるという。
Frovedisでは、次の図に示すように各種のプロセスがサポートされている。
次の図は、Frovedis+VEでマシンラーニングを行った場合とSprak+x86で同じマシンラーニングを行った場合の性能を3つのケースで比較したもので、Frovedis+VEは42.8倍から111倍と圧倒的に高い性能を示している。
次の図は、データフレームの処理を行う場合のFrovedis+VEとSpark+x86の性能を比較したもので、Group byの8.7倍からFilterの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で従来のベクタスパコンに比べてコストダウンしたはずであり、性能/コストについても言及してもらいたかった。