SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
3.
PG-Stromとは?
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤3
GPU CPU
モデル
NVIDIA
Tesla V100
Intel Xeon
Platinum 8280
世代 Volta Cascade Lake
発表 Q2-2017 Q2-2019
トランジスタ数 21billion 8.0billion
コア数
5120
(simple)
28
(functional)
動作クロック
1.280GHz
~1.380GHz
2.70GHz
~4.00GHz
理論性能値
(FP64)
7 TFLOPS
1.6TFLOPS
(with AVX-512)
RAMサイズ 32GB (HBM2) max 768GB (DDR4)
メモリ帯域 900GB/s 140GB/s
消費電力 250W 205W
製造プロセ
ス
12nm 14nm
PG-Strom: GPUの持つ数百~数千コアと広帯域メモリを利用して、
SQLワークロードを高速化するPostgreSQL向け拡張モジュール
App
GPU
off-loading
データのある場所で集計・解析処理を実行
10GB/sを越えるシングルノード性能
エンジニアにとって使い慣れた技術である事
➔ 大量ログデータの集計・解析に最適な製品
4.
想定利用シーン – IoT/M2M向けログデータ処理基盤
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤4
増え続けるログデータの管理、集計から解析・機械学習まで対応したデータ管理基盤
Manufacturing Logistics Mobile Home electronics
処理ユニットの拡張により、シングルノードで~数十TBのデータにも対応。
蓄積した生ログデータのまま、H/W限界に近い速度で集計する事が可能。
使い慣れたPostgreSQLのSQL構文、周辺アプリケーションを適用可能。
JBoF: Just Bunch of Flash
NVME over
Fabric
(RDMA)
DB管理者
BIツール
5.
本日のテーマ
※NVIDIAさんの資料より引用
ここをGPUで高速化する
Ready
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤5
6.
本日のテーマ
※NVIDIAさんの資料より引用
最終的には、機械学習エンジンと
データフレームを共有する所まで
WIP
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤6
7.
GPUとはどんなプロセッサなのか?
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤7
主にHPC分野で実績があり、機械学習用途で爆発的に普及
NVIDIA Tesla V100
スーパーコンピュータ
(東京工業大学 TSUBAME3.0) CG(Computer Graphics) 機械学習
“計算アクセラレータ”のGPUで、どうやってI/Oを高速化するのか?
シミュレーション
8.
中核機能:SSD-to-GPUダイレクトSQL
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤8
9.
一般的な x86_64 サーバの構成
GPUSSD
CPU
RAM
HDD
N/W
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤9
10.
大量データを処理する時のデータの流れ
CPU RAM
SSD GPU
PCIe
PostgreSQL
データブロック
通常のデータフロー
本来は不要なレコードであっても、
一度CPU/RAMへロードしなければ
要・不要を判断できないため、
データサイズは大きくなりがち。
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤10
一度CPU/RAMへロードしなければ、
“ゴミデータ” であってもその要否を判断できない。
11.
中核機能:SSD-to-GPUダイレクトSQL
CPU RAM
SSD GPU
PCIe
PostgreSQL
データブロック
NVIDIA GPUDirect RDMA
CPU/RAMを介することなく、
Peer-to-PeerのDMAを用いて
SSD上のデータブロックを直接
GPUに転送する機能。
WHERE句
JOIN
GROUP BY
GPUでSQLを処理し、
データ量を削減する
データ量:小
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤11
22.
《補足》ログデータはどこで生成されるのか?
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤22
ETL
OLTP OLAP
伝統的なOLTP&OLAPシステム - データはDBシステムの内側で生成される
Data
Creation
IoT/M2M時代 - データはDBシステムの外側で生成される
Log processing
BI Tools
BI Tools
Gateway Server
Async
Write
Async
Read
Data
Creation
Many Devices
Import!
23.
SSD-to-GPUダイレクトSQL on Arrow_Fdw
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤23
PCIe Bus
NVMe SSD GPU
SSD-to-GPU P2P DMA WHERE句
JOIN
GROUP BY
Apache Arrow
データファイル
Arrow_Fdw
モジュール
Apache Arrow ➔
PostgreSQL Heapへの
データ形式変換
WHERE句
JOIN
GROUP BY
被参照列だけを
P2P DMAで転送
Apache Arrow形式に対応。
GPUがデータ形式を解釈し、
数千コアを用いた並列実行
実行結果は PostgreSQL の
Heap形式でホスト側へ転送。
(通常、元データより小さい)
実行結果
“被参照列だけ”をGPUに転送する点を除き、同一のインフラを使用している。
31.
ログデータ(時系列データ)向けパーティション設定例
▌PostgreSQLテーブルとArrow外部テーブルの混在するパーティション設定
▌ログデータは必ずタイムスタンプを含んでおり、更新がない。
➔ 古くなったデータは Arrow 外部テーブルへ移す事で高速化。
logdata_201812
logdata_201901
logdata_201902
logdata_current
logdataテーブル
(PARTITION BY timestamp)
2019-03-21
12:34:56
dev_id: 2345
signal: 12.4
タイムスタンプ
付きログデータ
PostgreSQLテーブル
行データ構造
読み書き可能だが低速
Arrow外部テーブル
列データ構造
読込み専用だが高速
検索条件にタイムスタンプを含む場合、
明らかに該当しない子テーブルは読み飛ばす。
例) WHERE timestamp > ‘2019-01-23’
AND device_id = 456
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤31
32.
ログデータ(時系列データ)向けパーティション設定例
▌PostgreSQLテーブルとArrow外部テーブルの混在するパーティション設定
▌ログデータは必ずタイムスタンプを含んでおり、更新がない。
➔ 古くなったデータは Arrow 外部テーブルへ移す事で高速化。
logdata_201812
logdata_201901
logdata_201902
logdata_current
logdataテーブル
(PARTITION BY timestamp)
2019-03-21
12:34:56
dev_id: 2345
signal: 12.4
タイムスタンプ
付きログデータ
logdata_201812
logdata_201901
logdata_201902
logdata_201903
logdata_current
logdataテーブル
(PARTITION BY timestamp)
一ヶ月
経過
2019年3月分の
データを抽出
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤32
33.
想定利用シーン – IoT/M2M向けログデータ処理 + 異常検知など
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤33
増え続けるログデータの管理、集計から解析・機械学習まで対応したデータ管理基盤
Manufacturing Logistics Mobile Home electronics
JBoF: Just Bunch of Flash
NVME over
Fabric
(RDMA)
DB管理者
BIツール
共通データフレーム
NVIDIA RAPIDS
異常検知など
機械学習アプリケーション