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比であり、メモリアクセスが多いアプリケーションに対してもかなりの性能が期待できる。
次の図は、A300-8というサーバのブロックダイヤであるが、2個のXeon CPUにPCI Expressスイッチを経由して8台のベクトルプロセサが接続されている。なお、この図のそれぞれのPCIeリンクはGen 3.0の×16で、バンド幅は16GB/s(双方向の合計は32GB/s)である。
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の位置付けであるが、Xeonサーバは使用する言語は標準であるが、性能も普通である。一方、GPGPUは性能は高いがCUDAやOpenCLのような特殊な言語を使う必要がある。これに対してSX-Auroraのベクトルエンジン(VE)は標準の言語でプログラムでき、高性能であることが特徴であるという。
x86のLinux環境では、Linuxの豊富なアプリケーションやツール、周辺装置などが使え、一方、VE側ではNECベクトルスパコンの高性能が得られるというのが狙いである。
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のボトルネックは発生しないという。
(次回は12月7日に掲載します)