NECは、SC17で新ベクトルスパコンである「SX-Aurora TSUBASA」を発表した。昨年、一昨年のSCでは、後2年とか後1年とか天井から吊り下げたリングに大書して期待を煽っていたが、やっと登場という感じである。

次の図に示すように、カードに搭載されたベクトルプロセサと銘打っており、ハイエンドのディスクリートGPUと見まがうケースに覆われたPCIeカードとなっている。ここにベクトルコアが8個集積されたベクトルエンジンチップが搭載されており、ピーク演算性能は2.45TFlopsとなっている。ピーク演算性能ではハイエンドのNVIDIAやAMDのGPUに及ばないが、メモリバンド幅は1.2TB/sとNVIDIAのV100の0.9TB/sを上回る。

その結果、メモリバンド幅と演算性能の比であるB/F比はほぼ0.5となる。これは京コンピュータと同じB/F比であり、メモリアクセスが多いアプリケーションに対してもかなりの性能が期待できる。

  • NECの新ベクトルスパコンの心臓部であるAuroraチップを搭載するPCI Expressボード

    NECの新ベクトルスパコンの心臓部であるAuroraチップを搭載するPCI Expressボード。ハイエンドGPUと見まがう外観である (この連載のすべての図は,SC17におけるNECの百瀬氏の発表スライドを撮影したものである)

次の図は、A300-8というサーバのブロックダイヤであるが、2個のXeon CPUにPCI Expressスイッチを経由して8台のベクトルプロセサが接続されている。なお、この図のそれぞれのPCIeリンクはGen 3.0の×16で、バンド幅は16GB/s(双方向の合計は32GB/s)である。

  • SX-Aurora TSUBASAではXeon CPUを使いLinux OSを動かしている

    SX-Aurora TSUBASAではXeon CPUを使いLinux OSを動かしている点が従来のNECのスパコンとは異なる

SX-Aurora TSUBASAの特徴は、そのメモリバンド幅である。プロセサあたり1.2TB/s、ベクトルコア1個あたり150GB/sという高いメモリバンド幅をほこる。そして、これまでのSXスパコンで使われていたFortranやC/C++コンパイラが使え、OpenMPや自動ベクトル化、自動並列化が使える。これはNECスパコンの現在のユーザにとってはうれしい。

そして、SX-Aurora TSUBASAの新しいところは、x86 CPUが付いており、x86上のLinuxが使える点である。従来のNECのスパコンでは、NECが開発したSuper UXと呼ぶUnixベースのOSを使っていたのであるが、SX-Aurora TSUBASAではXeon CPUとLinuxに変わった。

  • SX-Aurora TSUBASAの特徴

    SX-Aurora TSUBASAの特徴は、メモリバンド幅が1.2TB/sと大きいこと、NECのこれまでのコンパイラやOpenMPが使えること、そしてx86上のLinuxが使えることである

SX-Auroraの位置付けであるが、Xeonサーバは使用する言語は標準であるが、性能も普通である。一方、GPGPUは性能は高いがCUDAやOpenCLのような特殊な言語を使う必要がある。これに対してSX-Auroraのベクトルエンジン(VE)は標準の言語でプログラムでき、高性能であることが特徴であるという。

  • SX-AuroraのVE

    SX-AuroraのVEは、標準の言語でプログラムでき、GPUを超える性能を持つ

x86のLinux環境では、Linuxの豊富なアプリケーションやツール、周辺装置などが使え、一方、VE側ではNECベクトルスパコンの高性能が得られるというのが狙いである。

  • Linux側ではLinuxのアプリやツール、そしてx86用の周辺装置が使える

    Linux側ではLinuxのアプリやツール、そしてx86用の周辺装置が使える。そして、x86/Linuxから高性能のベクタエンジンが使える

GPGPUの場合は頻繁にx86 CPUとGPUのやり取りが必要になるが、Auroraでは、VEがアプリケーションの実行を始めると、I/OやネットワークなどのLinux OS機能を使う必要がなければ連続してアプリケーションの実行を行うことができる。VE側ではVE OSというOSがあり、VE側のメモリの獲得、解放などはx86 CPUを使う必要は無いようである。

VEは6個のHBM2メモリを搭載している。それぞれのHBM2メモリは8スタックの最大容量のものであり、48GBのメモリ容量となっている。NVIDIAのV100は4スタックの4GBのHBM2を4個搭載しているので、メモリ容量は16GBである。これと比べると、Auroraは3倍のメモリを持っている。これは16GB DIMM 3枚分であり、DIMMを使うサーバと比べてもそれほど見劣りしないメモリ容量である。

当然、48GBでは足りないアプリケーションもあるが、48GBのメモリがあれば、かなり多くのアプリケーションをこの上に載せることができ、CPU側とは独立に処理を行うことができると思われる。また、どうしても48GBでは容量不足の場合は、DMAでCPUメモリをアクセスすることもできる。

この大容量とAuroraアーキテクチャがあいまって、GPUの場合に比べて、CPU-VE間のやり取りが減り、一般にPCIeのボトルネックは発生しないという。

  • Auroraでは、VE側でほとんどの処理を実行してしまうので、CPUとのやり取りが減り性能を高めやすい

    GPGPUの場合は、CPUメモリとのデータのやり取りが多く、処理性能を高めにくい。Auroraでは、VE側でほとんどの処理を実行してしまうので、CPUとのやり取りが減り性能を高めやすい

(次回は12月7日に掲載します)