nvidia プロセッサによる最適化高速計算 及び省電力グラフ …nvidia...

37
NVIDIA プロセッサによる最適化高速計算 及び省電力グラフ探索 藤澤克樹 中央大学& JST CREST 2013730GTC Japan 2013

Upload: others

Post on 02-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • NVIDIA プロセッサによる最適化高速計算及び省電力グラフ探索

    藤澤克樹

    中央大学& JST CREST

    2013年7月30日

    GTC Japan 2013

  • •世界最高レベルの性能を持つ最適化ソルバー(グラフ探索(最短路、幅優先等), 半正定値計画問題(SDP), 混合整数計画問題(MIP)) の開発 •グラフ問題等の良質な近似解を高速に探索する高性能最適化基盤の開発

    •高精度線形代数演算ライブラリ:線形代数演算は問題規模が大きくなれば数値的に不安となるので, 高精度ライブラリをアクセラレータにより高速化する

    巨大 SDP のデータ構造

    IP に対する分枝操作

    高精度線形演算ライブラリの開発と高速化

    スーパーコンピュータ

    上の大規模グラフ処理基盤での実行

    大規模グラフデータ 数理計画問題 並列化支援 高精度量子化学計算

    超大規模ネットワークにおける高速探索技術の開発

    超大規模最適化問題に対する高速計算システムの構築と評価

    数千万頂点のグラフ(1スレッドあたりのメモリ要求量1Gbytes)

    に対して、同時に数百万スレッド単位での最短路計算

    疎性の追求と前処理さらに並列計算の適用(大規模スレッド並列&CPU + GPU による高速化)変数と制約条件 100 万以上

    前処理による変数の削除と並列計算の適用(大規模スレッド並列) 整数変数10万以上

    http://en.wikipedia.org/wiki/File:IEEE_754_Double_Floating_Point_Format.svg

  • 数理計画問題(最適化問題)とポストペタスパコン • 非常に応用が広範(企業、社会、公共政策) 高性能なソルバーを作ること自体が最適化問題

    • センサーデータによる最適化問題の複雑&巨大化

    • 半正定計画問題(SDP)と混合整数計画問題(MIP)が2大注目数理計画問題

    • 汎用ソルバーの必要性(個別の問題に対する仮定やチューニングは効果が低い)

    • 入力は疎データと密データの混合 – 疎データ:多数のCPUコアによる処理(浮動小数点演算性能に非依存:密データへ変換)

    – 密データ:GPU 系による処理

    – 理論的性能限界等からボトルネック箇所を特定

    – 数値演算能力とメモリバンド等のトレードオフ関係を把握

    – 計算量とデータ移動量の正確な推定、疎性やサイズなどのデータ特性と性能値の見極め

    • 計算量とポストペタスパコンでの想定:

    – 計算量O(n3) 数百万程度, O(nlogn) 10億以上

  • 内点法アルゴリズムの並列計算による超大規模半正定値計画問題の解決

    半正定値計画問題(SDP)は現在最も注目されている数理最適化問題の一つ • 組合せ最適化、データマイニング、量子化学,制御分野など非常に幅広い応用を持っている

    • 高速かつ安定した反復解法である内点法アルゴリズムが存在している

    • SDPARA は現在開発&公開を行なっている大規模な SDP に対する並列ソルバー • 内点法アルゴリズムには2つの大きなボトルネックが存在 ⇒ 大規模な並列化

    • ELEMENTS ⇒ 線形方程式系の行列(SCM)の生成 : メモリバンド幅依存 • CHOLESKY ⇒ SCMに対するコレスキー分解 : 倍精度浮動小数点演算依存

    • ELEMENTS :ノード内の NUMA 関係の情報を読み取り、自動的に最適な processor affinity や memory interleaving の設定を行う ⇒ MPI + OpenMP による2段階並列計算⇒ 東工大 TSUBAME 2.0 1360ノード(16,320 CPU cores) での高いスケーラビリティ

    • CHOLESKY : 通信と計算のオーバーラップ&多数 GPU による並列計算 ⇒ 東工大 TSUBAME 2.0 4080 GPUs(NVIDIA M2050) での大規模分散並列化 ⇒ 浮動小数点演算1.018 PFlops の達成と世界最大規模の SDP(233万制約超)を初めて 解くことに成功した

  • 構造最適化問題

    データマイニング 組合せ最適化問題

    システムと制御 量子化学

  • 主・双対パス追跡内点法 (実装)

  • TSUBAME 2.0 System Configuration

    1360 nodes, 2720 CPUs, 4080 GPUs (NVIDIA M2050)

  • Cholesky factorization of Schur complement matrix

    • For symmetric and positive semidefinite matrix

    • Time complexity is O(m3)

    • Ex. Matrix (1.48million x 1.48 million) ≒ 1.0 Exa(1018) Flops

    • Our implementation is based on pdpotrf function

    (ScaLAPACK library) and HPL Library for TSUBAME 2.0

    • ScaLAPACK and HPL library employ the 2-D block-cyclic distribution for Cholesky factorization

    – In ELEMENTS , we directly computes all elements of the 2-D block-cyclic distribution of the SCM

    Parallel Computation for CHOLESKY

  • Data Decomposition in Cholesky

    • The dense matrix B(m x m) is uniformly distributed with 2D Block-Cyclic distribution with block size nb(= 1024)

    • CHOLESKY algorithm consists of mb(=⌈m/nb⌉) steps.

    • MPI processes conceptually composes a 2D grid(ex. 6 (=2 x 3), 4080(=68 x 60) processes)

    • Can use 4080GPUs in parallel!!

    m

    nb=1024

    Matrix distribution on

    6 (=2x3) processes

  • ScaLAPACK の Cholesky 分解のブロック分割

    並列計算を行う

  • N

    nb

    Matrix distribution on

    6 (=2x3) processes

    B B’

    Each process has a

    “partial-matrix”

    L’

    L

    ''' LLBB

    • The k-th step proceeds as follows: We need mb(=⌈m/nb⌉) steps. 1. Diagonal block factorization

    2. Panel factorization Compute L by GPU DTRSM 3. Panel broadcast and transposition 4. Update: the most computation-intensive part

    B‘ = B‘– L x L‘ We need call GPU DGEMM function on GPU once.

    For Accelerating CHOLESKY by using massively parallel GPUs, we need optimization techniques to overlap computation, PCI-Express communication and MPI communication.

  • Parallel Algorithm of Cholesky Factorization Version 1: No overlapping

    • Diagonal block factorization Panel factorization Panel broadcast and transposition

    • Update: Each process updates its own part of the rest matrix, taking the corresponding part of L and Lt(trace of L). Then B‘ = B‘– L x Lt(Lt ) is computed.

    Update: B‘ = B‘– L x Lt(Lt )

  • Parallel Algorithm of Cholesky Factorization Version 2: GPU computation and PCIe communication are overlapped

    • Diagonal block factorization Panel factorization Panel broadcast and transposition

    • Update: Each process updates its own part of the rest matrix, taking the corresponding part of L and Lt(trace of L). Then B‘ = B‘– L x Lt(Lt ) is computed.

  • Parallel Algorithm of Cholesky Factorization Version 3: GPU computation, PCIe communication, and MPI

    communication are overlapped

    • Diagonal block factorization Panel factorization Panel broadcast and transposition

    • Update: Each process updates its own part of the rest matrix, taking the corresponding part of L and Lt(trace of L). Then B‘ = B‘– L x Lt(Lt ) is computed.

  • Parallel Algorithm of Cholesky Factorization Version 4: GPU computation, PCIe communication, and MPI

    communication are overlapped

    • Diagonal block factorization Panel factorization Panel broadcast and transposition

    • Update: Each process updates its own part of the rest matrix, taking the corresponding part of L and Lt(trace of L). Then B‘ = B‘– L x Lt(Lt ) is computed.

    Producer of panel L

  • Performance of CHOLESKY on TSUBAME2.0 Quadratic assignment problems (QAP)

    1.018PFLOPS(DP) with 4080GPUs!!

  • インターネットマップ

    交通(時空間)ネットワーク

    スモールワールドやスケールフリー性などの特性を持つ超巨大グラフ(1兆点以上)上での 高速探索技術(アルゴリズム、実装技術、高速計算)

    防災計画策定 交通・災害復興・ 避難・ロジスティクス

    ソーシャル ネットワーク解析 エネルギー・省電力

    大規模グラフ解析:緊急に取り組むべき課題と実社会へのインパクト

    ニューラルネットワーク

    サイバーセキュリティ ソーシャルネットワーク

  • 全米横断の最短路: 2400万点, 5800万枝 約2秒で計算(3W) サンディエゴから北東部のメーン州までの最短路

    (赤:最短距離、青:最短時間): http://opt.indsys.chuo-u.ac.jp/

  • • 演算はレジスタで行われる – メインメモリへのアクセスはコスト大 → キャッシュメモリで改善

    メモリアクセスに必要な電力 >> 演算に必要な電力

    • 1個のデータ移動に必要な電力は、1個のデータの演算に必要な電力の100倍になることもある。 – 必要以上にデータ移動させたら負け – 今後は既存のアルゴリズムの一大転換が必要(高速性と省電力性の両立)

    – 今後のスパコンの主要なアプリケーションの一つはビッグデータ処理(グラフ解析等も含む)

  • Graph500 (http://www.graph500.org/) 超大規模グラフの探索能力で計算機を評価する新しいベンチマーク

    現在の指標 TEPS(Traversed Edges Per Second) 多様な応用分野 (Cybersecurity, Medical Informatics, Social

    Networks, Data Enrichment, Symbolic Networks)

    三つのカーネル concurrent search(Breadth First Search : BFS) optimization (Single Source Shortest Path) edge-oriented (Maximal Independent Set)

    超大規模グラフへの適用 省電力性を競う Green Graph500 ベンチマーク

    http://green.graph500.org/

    • 人工的に生成した Kronecker Graph に対する幅優先探索 (BFS) 性能 – 平均次数が 16 (=m/n) の重みなし無向グラフ(平均次数 32 の有向グラフとして扱う)

    – パラメータ SCALE を用いてグラフ規模を 点数 2SCALE 枝数 2SCALE + 4 と決定する

    – 例)SCALE30 のとき、10 億点 172 億枝の無向グラフ(有向:344 億枝)

    • メインメモリに対する質(速度)・量の両面への厳しい要求 – 高速化だけでなく、省メモリ化も十分に考慮する必要がある

    Input parameters • SCALE • edgefactor (=16)

    Graph Generation

    Graph Construction

    BFS Validation results 64 iterations

  • A: 0.57, B: 0.19

    C: 0.19, D: 0.05

    • TEPS(traversed edges per second)

    • • concurrent search,

    • optimization (single source shortest path)

    • edge-oriented (maximal independent set) •

  • Graph CREST

    Data Enrichment

    ペタ(1000兆)バイト級データ

    例) Maritime Domain Awareness

    ・Hundreds of Millions of Transponders

    ・Tens of Thousands of Cargo Ships

    ・Tens of Millions of Pieces of Bulk

    Cargo

    ・May involve additional data

    Five Business Areas --- Graph500

    24 Copyright 2012 Graph CREST

    Symbolic Network

    例) Human Brain Project :人間の脳

    890億個のニューロンとその接続 100兆枝

    2023年エクサスパコン上に再現

    Cybersecurity

    150億ログエントリー / 日

    Full data scan required

    Medical Informatics

    患者数 5千万 x 20 ~ 200 項目 / 患者 = 数十億データ

    Entry resolution important

    Social Networks

    例)

    データ量に上限無しの状態

  • 幅優先探索

    • 始点からの距離(何本の枝で到達できるか)を計算する

    始点

    Frontier

    入力 出力

    未探索点を探す

  • Hybrid Approach for Parallel BFS [beamer2011]

    frontier neighbors

    frontier neighbors

    forward-search backward-search

    Graph500 list (Nov. 2011) で 1 node (1 core) あたり最速の BFS 実装 • TEPS ratio: [SCALE 28] 5.126 GE/s (Rank 17)

    Machine: 4-way Intel Xeon E7-8870 2.4GHz, (40 cores) / 256 GB RAM 探索領域 (frontier) の大きさによって Top-down step と bottom-up step を切り替える

    [beamer2011] Scott Beamer et al.: Searching for a Parent Instead of Fighting Over Children, Tech. Rep. No. UCB/EECS-2011-117.

  • Graph500 の戦歴 Rank 1st 2010/11 2nd 2011/06

    1 SCALE36 / 7.0G / 8192 node SCALE38 / 18.47 G / 32768 node

    2 SCALE32 / 5.6G / 9544 node SCALE38 / 18.36 G / 32768 node

    3 SCALE29 / 1.3G / 128 node SCALE37 / 43.38 G / 4096 node

    Rank 3rd 2011/11 4th 2012/06

    1 SCALE32 / 253G / 4096 node SCALE38 / 3541G / 32768 node

    2 SCALE37 / 113G / 1800 node SCALE35 / 508G / 1024 node

    3 SCALE37 / 103G / 4096 node SCALE38 / 358G / 4800 node

    4 SCALE36 / 100G / 1366 node SCALE35 / 317G / 1366 node

    東工大 TSUBAME 2.0

    東工大 TSUBAME 2.0 (4位) 世界初の大規模 GPU 実装 Rank 5

    th 2012/11

    1 SCALE40 / 15363G / 65536 node

    2 SCALE39 / 10461G / 32768 node

    3 SCALE38 / 5848G / 15384 node

    4 SCALE40 / 5524G / 65536 node 京コンピュータ (TOP500 3位)

    Sequoia (TOP500 2位)

    MIRA (TOP500 4位)

    JuQUEEN (TOP500 5位)

    3rd List

    4th List

    4位

    東大 FX10 (3位)

    ※ SCALE の大きさが最重要

    東工大 TSUBAME 2.0

    上位は IBM BlueGene/Q が独占

  • in the Small Data category of the Green Graph 500

    Ranking of Supercomputers with

    64.119 M TEPS/ W on Scale 20

    on the first Green Graph 500 list published at the

    International Supercomputing Conference, June 18, 2013.

    Congratulations from the Green Graph 500 Chair

    No.1

    Chuo University’sGraphCREST-Tegra3

    is ranked

  • Graph Green500 List (June 2013)

    Graph500, GreenGraph500

    Graph500

    BFS 性能「 TEPS ratio( Traversed edges per second)」 で評価人工的に生成した Kronecker Graph に対する 64 回の BFS を計算.

    入力パラメ ータ SCALE, edgefactor(= 16) で , 点数 n= 2SCALE , 枝数 m= edgefactor ·n を決定.

    各 BFS の終了時に , 計算結果である BFS 木を用いて検証を行い , TEPS 値を算出する .

    現在のルールでは, 64 回中 M edial の TEPS 値で評価を行い, 高い方がより高い順位となる .

    GreenGraph500

    有効電力あたりの BFS 探索性能「 GTEPS/kW 」 で評価測定機器の解像度が荒く う まく 測定できない場合, 指定した時間 BFS を繰り返し計算する energy loop を追加.

    RemotePDU: Omron RC3008

    • •

    Graph&Genera) on

    Graph&Construc) on

    BFS Valida) on

    安井 (中央大学, CREST ) メ モリ 階層構造を考慮した大規模グラフ処理の高速化 日本数式処理学会 19 / 31

    Rank MTEPS/W Site Machine Scale GTEPS Nodes

    1 64.12 Chuo University GraphCREST-Tegra 20 0.15 1

    2 53.82 Chuo University GraphCREST-Intel-NUC 23 1.08 1

    3 53.47 Chuo University GraphCREST-Mac-mini 24 1.94 1

    4 52.02 Chuo University GraphCREST-MBA13 23 1.23 1

    5 51.62 Chuo University GraphCREST-Retina15 24 1.99 1

    6 39.29 Changsha, China TH-IVB-FEP/C 26 9.74 1

    the Small Data category

    上位を独占

  • 大規模グラフ解析:5年後の目標と想定 超大規模ネットワークに対する探索アルゴリズムとクラスタリングアルゴリズム

    最短路(中心性), 最大フロー, PageRank, グラフ分割, 中心性, その他

    数理計画問題(SDP, MIP)

    グラフクラスタリング, 高速グラフレイアウト, グラフUI

    数百万頂点〜数兆頂点、数億枝〜数百兆枝からなる超大規模なグラフ解析

    242頂点 数PB以上のワーキングデータセット

    グラフ解析:例:890億個のニューロンとその接続100兆枝 ペタバイト級のストア領域:(2023年:エクサスパコン)

    数百万人の被災者の避難経路の計算では数千万頂点のグラフ(1スレッドあたりのメモリ要求量1Gbytes)に対して、同時に数百万スレッド単位で各被災者毎の最短路計算と各点の重要度判定

    5億頂点250億辺のグラフのインタラクティブな操作のための計算性能

    ベクトル・スカラープロセッサから成る不均質でかつ分散共有メモリから成る大規模並列環境における大規模グラフ処理:数百万スレッドまでスケールさせる

    大規模グラフ処理を PGAS 言語 X10 を用いて一元的に記述

    メモリ多階層を考慮して、高速性と省電力性を両立したアルゴリズムの確立

    世界最高性能の最適化ソルバーの開発:密データと疎データの分離と多階層並列(MPI , OpenMP, OpenACC等)及びアクセラレータ(GPU, MIC等)の活用

  • Level Synchronized BFS BFSの出力: BFSツリー

    Level: 始点からの距離

    Level Synchronized BFS Graph500のすべてのリファレンス実装がベースとしている

    BFS(Breadth First Search)アルゴリズム Level Synchronized: 現在のレベルが終了するまで次のレベルに

    進まない

    R

    B

    C E

    F

    G

    H

    D

    R

    B C D

    E F

    G H

    BFSツリー グラフ

    始点 Level 0

    Level 1

    Level 2

    Level 3

    始点からの 距離

    36

  • Graph500ベンチマークの実行順

    Graph Generation (枝リストを生成)

    Graph Construction (枝リストをBFSで探索するためのデータ

    (CSR or CSC)に変換)

    Breadth First Search

    Validation (5つのルールでBFSツリーを検証)

    64回 繰り返す

    Kernel 1

    Kernel 2

    1

    2

    2

    3

    1

    2

    3

    始点をランダムに64個選択

    ※CSR: Compressed Sparse Row, CSC: Compressed Sparse Column

    37