PG-Strom勉強会まとめ

~ GPUがPostgreSQLを加速する ~ 2013/2/18 PG-Strom勉強会 まとめました。 http://atnd.org/events/36397
4
衛星経由で監視されてるハムスター🐹 @rioriost

一番コスト対効果の高いビッグデータソリューションにしたい。#pgstrom

2013-02-18 19:03:24
衛星経由で監視されてるハムスター🐹 @rioriost

Tesla vs FirePro vs Xeon E5、コア数は2688, 1792, 16。Peak性能は、約4T、3T、185G Flops。#pgstrom

2013-02-18 19:07:50
Hokuto Takai @tsubame959

わかってるんだろうけど,ピーク性能,GPUは単精度なのにSandy Bridgeは倍精度の数字になっている.ちゃんと統一しないとツッコミが入る要因になる.#pgstrom

2013-02-18 19:09:12
ぬこ@横浜 16.1 @nuko_yokohama

GPUでの配列計算の例。配列要素1つに対して演算ユニットを割り当てる。 #pgstrom

2013-02-18 19:10:39
ぬこ@横浜 16.1 @nuko_yokohama

GPUのコードをhostメモリからdeviceメモリに転送してから実行する?その間はCPUが並列に動作できるということか? #pgstrom

2013-02-18 19:12:46
Takeshi Yamamuro @maropu

最新のGPUだと分岐命令(分割統治法的な分岐)、少し強化されましたよね // #pgstrom http://t.co/FCwU5TUq

2013-02-18 19:13:35
ぬこ@横浜 16.1 @nuko_yokohama

GPUで実行するコードのことをGPU世界の人ではkernelと呼ぶらしい。 #pgstrom

2013-02-18 19:15:45
ぬこ@横浜 16.1 @nuko_yokohama

GPUを呼び出す関数には同期モードと非同期モードがある。サンプルは簡単さのために同期モードで書いている。 #pgstrom

2013-02-18 19:17:13
ぬこ@横浜 16.1 @nuko_yokohama

ホストからはソース形態でGPUコードをGPUに配布する。GPU内で実行時コンパイルする。これにより互換性を高くしている。 #pgstrom

2013-02-18 19:18:58
衛星経由で監視されてるハムスター🐹 @rioriost

CPUとGPGPUも使う場合の比較。長所は超並列で非同期なこと。短所はホスト・デバイス間のDMA転送コストとコードの複雑化。#pgstrom

2013-02-18 19:20:08
衛星経由で監視されてるハムスター🐹 @rioriost

インデックスが使えない、全件スキャンするようなクエリなら、#pgstrom が勝てる可能性が。

2013-02-18 19:22:54
衛星経由で監視されてるハムスター🐹 @rioriost

インデックスが使えるなら、ふつーのSQLを実行しろや。#pgstrom

2013-02-18 19:23:23
ぬこ@横浜 16.1 @nuko_yokohama

PG-stromはシンプルなインデクススキャンプランには向かない。生PostgreSQLのほうが向いている。フルスキャン、複雑な条件などではPG-Stromの効果があるということか。 #pgstrom

2013-02-18 19:23:47
ぬこ@横浜 16.1 @nuko_yokohama

役割分担。GPUは簡単な四則演算など。CPUはNWやディスクI/OなどCPUにしかできないことをやらせる、というのが基本のアイディア。 #pgstrom

2013-02-18 19:25:24
衛星経由で監視されてるハムスター🐹 @rioriost

SQL/MED(Management of External Data)を利用して、クエリ実行の負荷をOracleやMySQLに外出し出来る。PG-Strom FDWを介せば、GPUに外出し出来る。#pgstrom

2013-02-18 19:27:11
ぬこ@横浜 16.1 @nuko_yokohama

FDWを使って、別サーバの他情報源にクエリを投げている間はCPUが空く。同じように、FDWを経由してGPUに仕事をさせたい。 #pgstrom

2013-02-18 19:27:49
衛星経由で監視されてるハムスター🐹 @rioriost

SQL/MED APIを使って、クエリプラン、実行の2回、FDWのPlanner、Executorを呼び出している。#pgstrom

2013-02-18 19:28:07
衛星経由で監視されてるハムスター🐹 @rioriost

PG-Stromの場合、FDW Plannerが条件句からGPU用Kernelコードを生成する。FDW ExecutorはKernelコードをJITコンパイル(したい)、Shadow Tableからデータをロード、GPUが非同期実行する。#pgstrom

2013-02-18 19:29:56
Ishikawa, Koki @kixs4twtr

PG-Stromが効果的と予測されるのは、Indexが効かずスキャンが必要な場合。NetezzaのFPGA併用とも構造的には似ている気がする...GPGPUの特性上データを篩い落とすタイミングがメインメモリへのロードの前と後で違いそうだけど #pgstrom

2013-02-18 19:30:29
ぬこ@横浜 16.1 @nuko_yokohama

FDW plannerで条件句からGPU用Kernel codeを自動生成→FDW Executorでshadow tableからのロードとGPUの演算を並列に実施するイメージ。 #pgstrom

2013-02-18 19:30:53
はやみず🍥 @hayamiz

"device is busy" と帰ってきた絶望感www #pgstrom

2013-02-18 19:31:54
ぬこ@横浜 16.1 @nuko_yokohama

現状、background workerからPG-StromのGPU制御用バックエンドプロセスを起動する。 #pgstrom

2013-02-18 19:32:36
Manabu Ori @orimanabu

2000万行のテーブルでGPU使うとだいたい10倍くらい速くなった #pgstrom

2013-02-18 19:34:13