フィックスターズSC16報告会

ソリューション第二事業部 𠮷藤尚生

@フィックスターズ大崎本社

注意

今日の内容は、一部を除いて
発表者個人の考えに基づきます。

共著者や会社の総意ではありません。

今日の内容

  1. SC16ワークショップで発表した内容
  2. 背景とか成果とか詳しく
  3. 今期のHPCGの結果について
  4. 今後の展望

SC16ワークショップで発表した内容

今日の内容

  1. SC16ワークショップで発表した内容
  2. 背景とか成果とか詳しく
  3. 今期のHPCGの結果について
  4. 今後の展望

概要

題名
Implementation and evaluation of data-compression algorithms for irregular-grid iterative methods on the PEZY-SC processor
(参考和訳:非正規格子反復法向けデータ圧縮アルゴリズムのPEZY-SCプロセッサーにおける実装と評価)
著者
  • Naoki Yoshifuji (Fixstars)
  • Ryo Sakamoto (Fixstars, present: PEZY Computing)
  • Keigo Nitadori (RIKEN AICS)
  • Jun Makino (Department of Planetology, Kobe University)
投稿先ワークショップ
IA3 2016 - 6th Workshop on Irregular Applications: Architectures and Algorithms

論文&資料の場所

ワークショップ論文(4ページ)
DOI 10.1109/IA3.2016.15
arXiv論文(7ページ)
arXiv:1612.00530
発表資料
fixstars.github.io/sc16workshop/presentation/

※いずれも英語です

背景とか成果とか詳しく

今日の内容

  1. SC16ワークショップで発表した内容
  2. 背景とか成果とか詳しく
  3. 今期のHPCGの結果について
  4. 今後の展望

個人的に思うこと

この世界は
疎結合である

疎結合?

密結合
疎結合

行列で書き直すと

密結合
1.26.87.68.74.02.79.67.8
5.40.32.98.55.98.42.96.9
7.14.95.65.20.30.62.58.2
9.88.14.51.69.15.90.11.5
1.53.02.67.50.76.74.70.3
9.31.58.19.51.00.84.83.1
5.68.23.98.33.21.55.55.8
2.02.36.45.03.10.39.20.2
疎結合
1.26.8 8.7 2.7
5.40.32.98.55.9
4.95.65.20.3
9.88.14.51.69.15.90.1
3.02.67.50.7 4.70.3
9.3 9.5 0.84.8
8.33.21.55.55.8
6.4 3.1 9.20.2

※値=各要素間の相互作用の強さ

相互作用を計算するには?

相互作用量=要素感の重み×相手の強さ

合計=Σ要素感の重み×相手の強さ

→ \(y = Ax\)の形に直せる

疎行列・ベクトル積(SpMV)

つまり?

世界を加速させるには
SpMVが速いのが良い!

※例外:重力多体問題&ニューラルネットワーク

SpMVはなぜ遅い?

メモリ帯域が遅すぎる
(演算速度に対して)

どういうこと? (0)

疎行列の表現方法

疎行列 ELL形式
列番号 非ゼロ数
26 -1 1 26 -1 1 0 1 3 3
-1 26 -1 1 -1 26 -1 1 0 1 2 4 4
-1 26 -1 1 -1 26 -1 1 1 2 3 5 4
1 -1 26 -1 1 1 -1 26 -1 1 0 2 3 4 6 5
1 -1 26 -1 1 1 -1 26 -1 1 1 3 4 5 7 5
1 -1 26 -1 1 1 -1 26 -1 1 , 2 4 5 6 8 , 5
1 -1 26 -1 1 1 -1 26 -1 1 3 5 6 7 9 5
1 -1 26 -1 1 1 -1 26 -1 1 4 6 7 8 1 5
1 -1 26 -1 1 -1 26 -1 5 7 8 9 4
1 -1 26 -1 1 -1 26 -1 6 8 9 1 4
1 -1 26 1 -1 26 7 9 1 3

右側全てを読む必要がある

どういうこと? (1)

SpMVで、メモリから読む量

種類1要素[byte]個数
8合計非ゼロ数(nm)
列番号4合計非ゼロ数(nm)
非ゼロ数4行数(n)
ベクトル8行数(n)

n:行数、m:平均非ゼロ数

\(12n(m+1)\) [byte]

どういうこと? (2)

SpMVの演算量

\[ y_i = \underbrace{a_{i0} \times x_0 + a_{i2} \times x_2 + ...}_{m個} \]

種類1行あたり[flop]合計[flop]
×mnm
m-1n(m-1)

n:行数、m:平均非ゼロ数

\(n(2m-1)\) [flop]

どういうこと? (3)

  • 読む量:\(12n(m+1)\) [byte]
  • 演算量:\(n(2m-1)\) [flop]

→\(6 \frac{1+1/m}{1+0.5/m}\) [byte/flop]

6 [byte/flop]
※平均非ゼロ数は1より十分に大きい

どういうこと? (4)

Q. SpMV(6[byte/flop])の計算で
PEZY最高性能(1.5[TFLOP/s])を出すには?


A. 6 × 1.5 = 9[TB/s]読む必要

どういうこと? (5)

最近のメモリ性能
(1チップあたり)
種類TB/s
DDR40.025
GDDR50.100
HBM20.256
HMC20.480
SpMVに必要なのは?9.000

現状認識

今の計算機でSpMVを
素直に速くするのは
無理!!

ということで

疎行列の読む
データ量を減らす手法
を提案した

どれぐらい減る?

HPCGベンチマークの場合

なにもしない
336[byte/行]
提案手法
13[byte/行]

理論的には約26倍の高速化

※実測値は約3倍

今期のHPCGの結果について

今日の内容

  1. SC16ワークショップで発表した内容
  2. 背景とか成果とか詳しく
  3. 今期のHPCGの結果について
  4. 今後の展望

HPCGとは

前章で述べたこと
世界は疎結合だ
そんな世界の工学的な問題
疎行列の線形一次方程式

疎行列の線形一次方程式を速く解いたら勝ち

注意

HPCGの専門家じゃないので
感想しか書いてません

(みなさん議論しましょう!)

2016年11月期の結果

名称TFLOP/s
1603
2天河2580
3Oakforest-PACS396
4神威太湖之光371
5Cori355

京&Oakforest-PACSおめでとうございます!

アーキテクチャ&コア数

名称アーキコア数
1SPARC705k
2天河2KNC3120k
3Oakforest-PACSKNL557k
4神威太湖之光SW2601010650k
5CoriKNL632k

全体的な感想

  • 物量で殴る(天河2、神威太湖之光)
  • B/Fを上げる(京、KNL)

しかないのでは?

個別の感想

前回からさらに約10%高速化されてる
天河2
高速化やってたけど間に合わなかったらしい(BoFで担当者が言ってた)。
Oakforest-PACS、Cori
MCDRAM強いんだなぁ
神威太湖之光
Top500の性能にしては低いので頑張って欲しい

今日の内容

  1. SC16ワークショップで発表した内容
  2. 背景とか成果とか詳しく
  3. 今期のHPCGの結果について
  4. 今後の展望

今後のこと

  • 行列の圧縮を他のアーキテクチャに適用する
  • PEZYの最大規模スパコンShoubuで計測する

募集

フィックスターズは、HPCもそれ以外でも
「高速化」が得意です。

手元のこのプログラム速くならないかな?
ご相談ください
高速化の仕事たのしそう!
一緒に働きましょう!
return 0;