SX-Aurora TSUBASAの科学技術計算ライブラリ
Numeric Library Collectionのご紹介
2019年12月12日
日本電気株式会社
緒方 隆盛

目次
1. SX-Aurora TSUBASAの概要
2. Numeric Library Collectionのご紹介





NLC の特長
HeteroSolver
Stencil Code Accelerator
SBLAS
ロードマップ

3. まとめPCIeカード型ベクトルエンジン（VectorEngine）

 新開発ベクトルプロセッサ
 PCIe規格準拠
PCI Express Gen3. x16

4Linux OS

Application

x86 サーバ

ベクトルエンジン
(VE)

PCIe

© NEC Corporation 2019

 GPGPUと異なる実行モデル、Fortran/C/C++の標準環境
 演算性能：2.45TF(倍精度)，4.91TF(単精度) メモリ帯域 1.22TB/s
 メモリ容量 48GBSX-Aurora TSUBASA
ベクトルエンジンの超高性能を、デスクトップタワーから、大規模データセンタ対応モデルまで幅広くご提供し、利用・適用範囲を大幅に拡大

データセンタモデル

 データセンタ・計算センタでの巨大処理
 例：大規模AI・ビッグデータ、大規模シミュレーションなど
 高性能・高スケーラビリティ・
低導入/低運用コスト

オンサイトモデル

 製造業などのシミュレーション、AI・ビッグデータ利用
 例：大規模需要予測、製造シミュレーションなど

エッジモデル AI・ビッグデータのシステム組込用途
 例：店舗毎の需要予測、医療画像等
 プログラム開発者向け

5© NEC Corporation 2019

A500シリーズ

64VE搭載A300シリーズ

2VE搭載

4VE搭載

A100シリーズ

1VE搭載

8VE搭載

Numeric Library Collectionの特長
Numeric Library Collection(NLC)は科学技術計算で頻出する機能をベクトルエンジン向けに最適化した数学ライブラリのコレクションです。
▌特長 ベクトルエンジン向けに高度に最適化
 幅広い機能を網羅• 線形代数、フーリエ変換、疑似乱数生成、統計機能、...

 デファクトスタンダードのライブラリを提供• BLAS、LAPACK、ScaLAPACK オンラインマニュアルを提供▌NLCに含まれるライブラリ
 ASL
 BLAS / CBLAS LAPACK ScaLAPACK HeteroSolver
 Stencil Code Accelerator
 SBLAS
6© NEC Corporation 2019

新機能追加

他社ライブラリ製品との比較
NLCは他社ライブラリ製品より豊富な機能を提供
今後はディープラーニング向けの機能を拡充予定
NLC

MKL

CUDA







基本演算、連立一次方程式、固有値方程式など







フーリエ変換Real-to-Real (DCT, etc.)ラプラス、ウェーブレット変換



疑似乱数生成

多変量解析、回帰分析など



ソート



特殊関数



微分・積分など



ステンシル計算



その他

統計変換

線形代数

密行列計算

基本演算、連立一次方程式、固有値方程式など

疎行列計算

ディープラーニング
7© NEC Corporation 2019 w/o MPI

 w/o MPIHeteroSolver -1/3疎行列連立一次方程式直接法ソルバ
ベクトルエンジン(VE)とベクトルホスト(VH)が連携して求解▌疎行列直接法解法の処理

A𝒙𝒙 = 𝒃𝒃

 前処理

• 疎行列Aを分析 ベクトル性能を出しにくい 数値分解処理• LU分解、LDLt分解

 求解処理• 解xを算出▌VE-VH連携を使った最適化

行列 A

消去木

 ライブラリ内部で前処理に必要なデータをベクトルホスト(VH)に転送して実行
VH

8A, 𝒃𝒃VE© NEC Corporation 2019

前処理
VHcall
数値分解処理求解処理

𝒙𝒙

HeteroSolver -2/3ベクトル化に不向きな前処理をベクトルホスト(VH)で実行▌VE-VH連携による性能改善の効果
Xeon
VEのみ利用on VE

VE + VH

on VH

0

on VE

0.1
前処理

0.2

0.3
0.4
Elapsed Time [sec]

数値分解処理

0.5

0.6

求解処理

使用したライブラリ

実行マシン

Xeon

Intel MKL PARDISOXeon Gold 6148 x 2 sockets

VEのみ利用HeteroSolver 試作版

VE + VH

HeteroSolver(Skylake 2.4 GHz, 40 cores)

SX-Aurora TSUBASA(1.4 GHz, 8 Cores)

使用した行列: https://www.cise.ufl.edu/research/sparse/matrices/Simon/raefsky3.html
9© NEC Corporation 2019

HeteroSolver -3/3HeteroSolverの利用によりSkylake(40コア)より高速に求解が可能に▌ベンチマーク
OpenMP with MPI (4 processes)

2.5x
2.0x
1.5x
1.0x
0.5x
0.0x

(MKL=1)

Speedup Ratio(MKL=1)

Speedup Ratio

OpenMP2.5x
2.0x
1.5x
1.0x
0.5x
0.0x

Matrix Name
HeteroSolverMKLMatrix Name
HeteroSolver

MKL

実行マシン
HeteroSolver

SX-Aurora TSUBASA (1.4 GHz, 8 Cores)

MKL

Xeon Gold 6148 x 2 sockets (Skylake 2.4 GHz, 40 cores)

使用した行列: SuiteSparse Matrix Collection (https://sparse.tamu.edu/)からダウンロード
10© NEC Corporation 2019

Stencil Code Accelerator▌ステンシル計算の応用分野
 科学技術シミュレーション• 流体解析
• 熱伝導解析• 電磁場解析など

 信号処理• 音響、ソナー• レーダ、無線通信など

 画像 / 3Dデータ処理• 画像編集・加工• データ圧縮• 認識• 医療診断 (生検, CT, MRI, …)など

 機械学習• ディープラーニング (CNN)

11© NEC Corporation 2019

©Columbia Univ.

Stencil Code Accelerator: コード例 -1/2▌ステンシル計算の例
real :: a(0:ni+1,0:nj+1)
real :: b(1:ni,1:nj):
do itr=1,maxitr:
do j=1,nj
do i=1,nib(i,j)=0.25*( &a(i ,j-1) &+a(i-1,j ) &+a(i+1,j ) &+a(i ,j+1))
end doend do:a(:,:)=b(:,:)
end do12© NEC Corporation 2019

ラプラス方程式𝜕𝜕𝜕𝜕𝐴𝐴+𝐴𝐴 = 0𝜕𝜕𝑥𝑥 2𝜕𝜕𝑦𝑦 2離散化
有限差分

𝑏𝑏𝑖𝑖,𝑗𝑗 =j+2

1
𝑎𝑎+ 𝑎𝑎𝑖𝑖−1,𝑗𝑗 + 𝑎𝑎𝑖𝑖+1,𝑗𝑗 + 𝑎𝑎𝑖𝑖,𝑗𝑗+1
4 𝑖𝑖,𝑗𝑗−1

j+1
jj-1
j-2
i-2i-1ii+1i+2

Stencil Code Accelerator: コード例 -2/2▌ステンシル計算の例 – SCA利用
real :: a(0:ni+1,0:nj+1)
real :: b(1:ni,1:nj)
real,parameter :: c(5)=(/ &0.25,0.25,0.0,0.25,0.25/):
do itr=1,maxitr:
call sca_compute_with_1x1ya_s( &ni,nj,1, &ni+2,nj+2,a(1,1), &ni,nj,b(1,1),c,0.0):a(:,:)=b(:,:)
end doラプラス方程式𝜕𝜕𝜕𝜕𝐴𝐴+𝐴𝐴 = 0𝜕𝜕𝑥𝑥 2
𝜕𝜕𝑦𝑦 2離散化
有限差分

𝑏𝑏𝑖𝑖,𝑗𝑗 =j+2

1𝑎𝑎+ 𝑎𝑎𝑖𝑖−1,𝑗𝑗 + 𝑎𝑎𝑖𝑖+1,𝑗𝑗 + 𝑎𝑎𝑖𝑖,𝑗𝑗+1
4 𝑖𝑖,𝑗𝑗−10.25

j+10.25

j0.00.250.25

j-1j-2i-213© NEC Corporation 2019i-1ii+1i+2

Stencil Code Accelerator: ステンシルの形状
56ケースものステンシル形状に対応した機能を提供▌ステンシルの形状
 対応しているステンシルの形状

 各形状について以下のサイズに対応• {X,Y,Z}-方向•1• {XY,XZ,YZ}-平面•2• {XY,XZ,YZ}-軸方向•3• {XY,XZ,YZ}-対角方向• XYZ-立体• XYZ-軸方向

14© NEC Corporation 2019•4

Stencil Code Acceleratorの性能
SCAの利用によりXeon Skylake(40コア)より6.3～10.2倍も高速▌ベンチマーク結果
 ステンシルの形状: XYZ-軸方向, サイズ 1～4

 科学技術計算での頻出ケース

 データサイズ: 1024 x 1024 x 1024
 プロセッサ:• Aurora 1.584 GHz, 8コア• Xeon Gold 6148 x 2 ソケット
(Skylake 2.4 GHz, 40コア)

0GFLOPS (Single Precision)
200

400

600

800

1000

7.1x

1x1y1za
2x2y2za
3x3y3za

1200

1400

1600

7.5x
7.4x

2000

10.2x

4x4y4za
Aurora (1.584GHz,8Cores)

1800

Xeon Gold 6148x2 (2.4GHz,40Cores)

GFLOPS (Double Precision)
0

100

200

300

400

6.3x

1x1y1za
2x2y2za
3x3y3za

500

6.3x

600

6.5x

4x4y4za
Aurora (1.584GHz,8Cores)

700

7.1x

Xeon Gold 6148x2 (2.4GHz,40Cores) 上記性能は、ベクトルレジスタをキャッシュとして利用しメモリ負荷を削減することにより達成
15© NEC Corporation 2019

800

SBLAS
疎行列ベクトル積の機能を新規に追加、MKLより1.2倍～3.7倍高速▌ベンチマーク結果
3.7x

3.6x

3.4x

1.3x

1.2x

実行マシン
SBLAS

SX-Aurora TSUBASA (1.4 GHz, 8 Cores)

MKL

Xeon Gold 6132 x 2 sockets (Skylake 2.6 GHz, 56 cores)

使用した行列: SuiteSparse Matrix Collection (https://sparse.tamu.edu/)
16© NEC Corporation 2019

NLCの製品ロードマップ
より高性能で、汎用的で、使いやすくするために機能強化を継続

2020年2月

ASL:

高度にベクトル化・共有メモリ並列化したソート機能を追加

FFTW3インタフェース:
Guruインタフェース対応

17

2020年7月頃

スクリプト言語対応【プレビュー公開】:

計画中

AI向けライブラリ:

計画中

ASL:

© NEC Corporation 2019

PythonからNLCを利用する機能

ディープラーニングまたは統計的機械学習向けの機能強化
線形代数機能の使いやすさを改善するためのAPI拡張

Aurora Forum Website
製品マニュアル・技術情報はAurora Forum Websiteにて公開中
 URL - https://www.hpc.nec/
Aurora ForumJoin
18© NEC Corporation 2019

まとめ
▌NLCは、他社ライブラリ製品より幅広い機能を提供しています。
▌HeteroSolverは、VE-VH連携を使って性能改善しています。
▌ステンシル計算は、SCAの利用により劇的に計算時間を短縮できます。
▌製品マニュアル・技術情報は、Aurora Forum Webサイトに公開しています。

19© NEC Corporation 2019