Tsubasaのアプリケーション性能の高さを訴えるプレゼンテーションを行った。Ikuta氏NECは高い連続実行性能を持つベクタスパコンを作ってきた。ユーザは、高い連続実行性能は良いが、ベクタスパコンは大きくて高いし、特殊なコンピュータだからと敬遠する傾向があったという。TSUBASAではベクタエンジン(VE)をPCIeカードのフォームファクタに収めて、高速でパワフルなのにコンパクトで経済的なベクタスパコンを作った。Express経由で接続するという、NECとしては、新しいアーキテクチャを採用した。ハードウェアとしては、ベクタエンジンはNECの独自開発であるが、Host側は標準のx86サーバであり、コストも安くできる。自動ベクトル化コンパイラはNECがこれまで蓄積してきた技術を使えばよい。すると、ベクタエンジンはC/C++やFORTRANでプログラムでき、ユーザとしてはCUDAやOpenCLなどのGPU言語を覚える必要もないし、これまでにCやFORTRANで作った資産をそのまま使える。インタコネクトはInfiniBandを使っており、VEとVEの間の直接通信をサポートしている。3と同じ機能と思われる。TSUBASAはx86サーバをホストにしてベクタエンジンをPCIeで接続する新アーキテクチャを採用。x86採用でコストダウンと標準Linuxが使えるようになったPCIe経由でVEを接続となるとGPUと同じかと思われるが、GPUの場合はGPUで計算すべきカーネルが出てくるとGPUに制御を渡し、それが終わるとホストに戻るというファンクション単位のオフロードが行なわれ、頻繁にCPUとGPUの実行が切り替わる。これに対してAuroraアーキテクチャではVEでのアプリケーションの実行が始まると、その処理が終わるまでVEでの実行が続き、VEでは実行できないIOなどが出てくるとVEからホストに処理を依頼するという処理が行われる。このため、ホストとVEの間の処理の切り替え回数が少なく、GPUよりも効率が高い処理が行なえる。PCIeのトラフィックも少なくて済む。GPUの場合はファンクション単位で処理を依頼するが、Auroraアーキテクチャでは、ホストはアプリケーション単位で依頼し、VQEはIOなどのVEで実行できない処理だけ一時的にホストに実行を依頼して処理を行う。Callといった切り出しをすることもでき、個々のアプリケーションに適した切り出し方を選択することができる。TSUBASAのVEは、次の図のように、GPUと同じような外観になっており、真っ赤に塗られているところがスポーティである。外観はGPUに似ているが、前に説明したようにGPUとは動き方が違う。プロセサは8コアを集積しており、チップ当たりのピーク演算性能は2.45TFlops、メモリバンド幅は1.22TB/sで、BF比は0.5である。VEはGPUのような外観であるが、動き方はまったく異なる。このボードでピーク演算性能は2.45TFlops、メモリバンド幅は1.22TB/Sとなっているプロセサチップは8個のコアを持ち、それらはソフトウェア制御のできる16MBのキャッシュに接続されている。コアから見た、このキャッシュのアクセスバンド幅は3TB/sである。キャッシュから6個のHBM2メモリにつながっている。6個のHBM2を使っているので、メモリバンド幅は1.22TB/s、メモリ容量は24、または48GBである。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の廉価版である。TSUBASAのプログラミング環境を次の図に示す。コンパイラは自動ベクトル化と自動並列化の機能を備えている。プログラミング言語としてはFortran、C、C++と並列処理用のOpenMP4.5が提供されている。MPI3.1、libc、BLAS、Lapackなどのライブラリが提供されている。デバッガやトレースビューワーなどのツールがある。TSUBASAでの実行は、ユーザから見るとホスト側でのプログラムの実行と変わらないが、必要に応じて自動的にVE側に転送されて実行される。Auroraのプログラミング環境。コンパイラは自動ベクトル化と自動並列化機能を備えたFortran、C/C++、OpenMP4.5コンパイラが提供されている次の表に提供されているライブラリの一覧を示す。Libは、Auroraアーキテクチャに最適化されたライブラリとなっている。表に見られるように、IntelのMKLよりも豊富なレパートリを備えている。LibとIntelのMKLの比較NECの製品としては、大型のスパコンモデルのA500シリーズ、ラックマウントのA300シリーズ、タワーモデルのA100シリーズとフルレンジをカバーしている。A500は40°Cの温水による水冷であるが、A300とA100は空冷となっている。GPUと1ノード分の性能を比較したもので、左がHPL、右はSTREAM性能を比較した棒グラフである。KNLとV100は1ソケットであるがP/Nは記載されていない。HPLではAuroraとSkylake、KNLは大差ないがV100は2.3倍の性能である。STREAMではAuroraはSkylakeの約5倍と、V100を上回る最大のバンド幅を誇る。これはHBM2を6個搭載の威力である。VE、Skylake、KNL、V100のHPLとSTREAMの性能比較。HPLではAuroraとSkylakeは同程度の性能。STREMではAuroraはSkylakeの5倍のメモリバンド幅を持つ疎行列を扱うHPCGでは、AuroraはSkylakeの2.5倍の性能であり、消費電力あたりの性能では7倍と高効率である。ベクタのスキャッタ、ギャザーが効いているのであろうか?SkylakeとのHPCG性能とHPCG性能/Wの比較。ParallelベンチマークでのSkylakeとの比較である。性能では1.2倍から1.7倍で、性能/電力では2倍から2.7倍になっている。Parallelの中の3つのベンチマークでのSkylakeとの比較。6130の50倍の性能となっている。6126(12コア)と比較して3.3倍高速である。右のグラフは縦軸はスループット、横軸をコア数としたグラフである。6126に比べてコアあたりでは7.1倍速く、ソケットあたりで比較しても3.9倍速い。6126と比較してコア当たりの学習のスループットは3.7倍で、ソケット当たりでは2.5倍の性能である。2ソケットと比較して2.2倍高速。VEは1.8倍高速である。比較して2.4倍高速である。6148と比較して2.4倍高速AIやビッグデータのアプリケーションでは、ディープラーニングではより高いコンピュート性能、統計的マシンラーニングではより高いメモリ性能が必要であり、汎用コンピュータを大きく上回る性能が要求される。AIやビッグデータ処理では汎用CPUでは及ばないコンピュート性能、メモリ性能が要求されるFrovedisはNECが開発したSpark互換で高速なミドルウェアであり、Githubに公開されているオープンソフトウェアである。Sparkのプログラムを3行変更するだけで、Frovedisで動作させることができるという。FrovedisはNECが開発したマシンラーニング向けのSpark互換のミドルウェアで、Githubで公開されているFrovedisでは、次の図に示すように各種のプロセスがサポートされている。Frovedisでは、この図に示すように各種のプロセスがサポートされている次の図は、Frovedis+VEでマシンラーニングを行った場合とSprak+x86で同じマシンラーニングを行った場合の性能を3つのケースで比較したもので、Frovedis+VEは42.8倍から111倍と圧倒的に高い性能を示している。Frovedis+VEとSpark+x86の性能比較。byの8.7倍からFilterの26.7倍と、これもFrovedis+VEの圧勝である。データフレーム処理でのFrovedis+VEとSpark+x86の性能比較。6126(12コア、2.6GHz/3.7GHz)との比較では、多くのアプリケーションでソケットあたりでは2倍、3倍の性能となっている。VEの演算能力とメモリバンド幅を考えると、この程度の差はあって当然という気はする。このようなケースではx86だけでなく、GPUをアクセラレータとして付けるという構造を考えるユーザは多いと思われ、VEとGPUの性能比較を示して貰いたいところである。ExpressインタフェースのVEで従来のベクタスパコンに比べてコストダウンしたはずであり、性能/コストについても言及してもらいたかった。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。