
NEC SX-Aurora TSUBASAは、 NEC SXアーキテクチャファミリーのベクトルプロセッサです。[ 1 ] [ 2 ]これまでのSXスーパーコンピュータとは異なり、SX-Aurora TSUBASAはPCIeカードとして提供され、NECでは「ベクトルエンジン」(VE)と呼ばれています。[ 2 ] 8枚のVEカードをベクトルホスト(VH)に挿入できます。ベクトルホスト(VH)は通常、Linuxオペレーティングシステムを実行するx86-64サーバーです。 [ 2 ]この製品は2017年10月25日のプレスリリースで発表され、NECは2018年2月に販売を開始しました。[ 3 ]この製品はSX-ACEの後継製品です。
SX-Aurora TSUBASAは、地球シミュレータースーパーコンピュータの基盤となっているベクトルコンピュータシステムであるNEC SXシリーズおよびSUPER-UXの後継機です。そのハードウェアは、PCI Express (PCIe)インターコネクトを介して接続されたベクトルエンジン(VE)を備えたx86 Linuxホストで構成されています。[ 4 ]
高いメモリ帯域幅(0.75~1.2 TB/s)は、PCIe カードのフォームファクタで実装されたシリコンインターポーザ上の8 つのコアと 6 つのHBM2メモリ モジュールによって実現されています。 [ 5 ] VE のオペレーティングシステム機能は VH にオフロードされ、主に VEOS を実行するユーザー スペース デーモンによって処理されます。[ 6 ]
クロック周波数 (1.4 GHz または 1.6 GHz) に応じて、各 VE CPU は8 つのコアを持ち、倍精度で2.15 または 2.45 TFLOPSのピーク性能を発揮します。このプロセッサは、シリコン インターポーザ上に 6 つの HBM2 モジュールを実装した世界初のプロセッサで、合計 24 GB または 48 GB の高帯域幅メモリを備えています。これは、x86_64 サーバーである Vector Host (VH) によってホストされる、標準的なフル レングス、フル ハイト、ダブル ワイド PCIe カードのフォーム ファクタに統合されています。サーバーは最大 8 つの VE をホストでき、クラスタ VH は任意の数のノードに拡張できます。[ 1 ] [ 7 ] [ 2 ]
バージョン2 ベクトルエンジン[ 8 ]
バージョン1 ベクトルエンジン
Vector Engine のバージョン 1.0 は16 nm FinFETプロセス ( TSMC製) で製造され、3 つの SKU でリリースされました (後続バージョンでは末尾に E が追加されます)。[ 9 ]
8 つの SX-Aurora コアのそれぞれには、64 個の論理ベクトルレジスタがあります。[ 10 ]これらは、パイプラインと 32 倍並列 SIMD ユニットの組み合わせとして実装された 256 x 64 ビットの長さです。レジスタは、並列実行可能な 3 つの FMA 浮動小数点乗算および加算ユニット、固定小数点演算を処理する 2 つの ALU 算術論理ユニット、および除算と平方根パイプに接続されています。[ 10 ] FMA ユニットとその 32 倍並列性のみを考慮すると、ベクトル コアは 1 サイクルあたり 192 回の倍精度演算を実行できます。[ 10 ]ベクトル レジスタの 1 つの倍精度スロットのスペースに 2 つの単精度値がロードされる「パックド」ベクトル演算では、ベクトル ユニットは倍精度と比較してクロック サイクルあたり 2 倍の演算を実行します。
各コアには、スカラー処理ユニット(SPU)が搭載されており、ベクトル命令以外の命令を処理します。
SX-Aurora TSUBASAプロセッサのメモリは、チップオンウェーファーオンサブストレート技術を用いてCPUと同じパッケージに実装された6つの第2世代HBM2高帯域幅メモリモジュールで 構成されています。プロセッサモデルによって、HBM2モジュールは4ダイまたは8ダイの3Dモジュールで、それぞれ4GBまたは8GBの容量を持ちます。したがって、SX-Aurora CPUは24GB または48GB のHBM2メモリを搭載しています。大容量HBM2モジュールを搭載したモデルは、1.2TB /sのメモリ帯域幅を備えています。[ 11 ]
ベクトルエンジンの各コアは 、ベクトルレジスタとSPUのL2キャッシュに直接接続されたライトバックキャッシュである16MBの「ラストレベルキャッシュ」(LLC)を共有します。LLCのキャッシュラインサイズは128バイトです。LLCにおけるデータ保持の優先順位はソフトウェアである程度制御でき、プログラマはキャッシュに保持する変数や配列を指定できます。これはNEC SX-ACEのAdvanced Data Buffer(ADB)と同様の機能です。
NECは現在、SX-Aurora TSUBASA ベクトルエンジンを4つのプラットフォームに統合して販売しています。[ 12 ] [ 9 ]
VHノード内では、VEはPCIeを介して相互に通信できます。SX-Auroraで構築された大規模並列システムでは、相互接続としてPeerDirect構成のInfinibandが使用されます。
NECはかつて、SX-Aurora TSUBASAベクターエンジンを搭載した5つのプラットフォームを販売していた。
A500シリーズを除き、全機種とも空冷式で、A500シリーズは水冷式も採用しています。
ベクトルエンジン(VE)のオペレーティングシステムは「VEOS」と呼ばれ、ホストシステムであるベクトルホスト(VH)に完全にオフロードされています。[ 14 ] VEOSは、以下のカーネルモジュールとユーザースペースデーモンで構成されています。
VEOSはVE上でのマルチタスクをサポートしており、VE libcではほぼすべてのLinuxシステムコールがサポートされています。[ 15 ]オペレーティングシステムサービスをVHにオフロードすることで、レイテンシが増加する代わりにOSジッターがVEから遠ざかります。[ 15 ] VEオペレーティングシステム関連のパッケージはすべてGNU General Public Licenseの下でライセンスされており、 github.com /veos-sxarr-nec
NECは開発者および顧客向けにソフトウェア開発キット(SDK)を提供しています。このキットには独自の製品が含まれており、NECから購入する必要があります。SDKの内容は以下のとおりです。
NEC MPIも独自の実装であり、MPI-3.1標準仕様に準拠している。[ 19 ]
VE オフロード C-API を使用することで、VE を特定のホストカーネル機能のアクセラレータとして使用するハイブリッドプログラムを作成できます。[ 20 ] VE オフロードは、ある程度 OpenCL や CUDA に似ていますが、よりシンプルな API を提供し、カーネルを通常の C、C++、または Fortran で開発し、VE 上のほぼすべてのシステムコールを使用できるようにします。VEOの Python バインディングは、github.com /SX-Aurora /py-veoで入手できます。
1. NEC Numerical Library Collectionは、数値シミュレーションプログラムの開発を支援する数学ライブラリのコレクションです。