三木会スペシャル。地図用データを高速処理!
オープンソースGPUデータベースMapDの魅力に迫る!!
株式会社インサイトテクノロジー
GPU紹介など 松尾 拓真 (30分くらい)
MapD詳解・デモ 井内 一史 (1時間くらい)
1
自己紹介:松尾 拓真
• 所属:
インサイトテクノロジー マーケティング本部
db tech showcaseなど、弊社主催イベント企画・運営
弊社取扱製品のマーケティング施策全般
他社とのアライアンスのために暗躍
• 趣味:
マラソン少々(最近は4時間半くらい。※決して速くはない・・)
2017年は
北海道マラソン(フル)
札幌マラソン(ハーフ)
3
本日の話題
• GPUコンピューティングについて軽くおさらい
• GPUデータベース界隈の最近の出来事のシェア
• GPUデータベース/Acceleratedデータベースの今後について勝手に展望
• MapD詳解・デモ(井内より)
GPUデータベースについて詳しい方は少ないと思うので、以下のようなことを少しでも思っていただけるとありがたいです!
•こういうのワクワクするよね• こういうデータベースがあるんだな
• ちょっと使ってみたいな
• インサイトに相談したいな
4
CPUとGPUでの処理の違い
• CPU と GPUの違いを理解する単純
な方法は、 タスクの処理方法を比較
することです。 逐次処理用に最適化
された2~3個のコアから成るCPUに
対して、GPUは複数のタスクに同時
に対応できるよう設計された何千も
のより小さく、より効率的なコアで
構成されています。
6
http://www.nvidia.co.jp/object/what-is-gpu-computing-jp.html
GPUで処理を加速するとは
• (一般にGPU上でのアプリケーショ
ンの実装は大変なので)処理を加速
したい部分(ホットスポット)を
GPU上で実行させることにより、
アプリケーション処理時間全体を
高速化する。高速化できない部分
がたくさん残っていると、アプリ
ケーション全体としての高速化に
は限界がある。
7
http://www.nvidia.co.jp/object/what-is-gpu-computing-jp.html
GPUコンピューティングとHPC
• 東工大 松岡先生
TSUBAME 1.2でTesla S1070 (GeForce GTX 280相当) を採用
参考:世界初のGPUスパコン! 東工大のTSUBAME 1.2が公開
(http://ascii.jp/elem/000/000/194/194166/)
それまでのTSUBAMEでは、ClearSpeed CSX600を使っていた
参考:スーパーコンピューターの系譜 GPUをアクセラレーターに活用した
ClearSpeed (http://ascii.jp/elem/000/001/018/1018605/)
• TSUBAMEがGPUコンピューティングの可能性を示したのち、
HPCでのNVIDIA GPUの使用がブームになっていた!
8
今のTop500
• Sunway SW26010プロセッサ
260コア/ノード
参考:https://www.nextplatform.com/2016/06/20/look-inside-chinas-chart-topping-new-supercomputer/http://www.hpcwire.jp/archives/10790
• Xeon Phi
• Aries interconnect
9
Oakforest-PACS(JCAHPC:東大、筑波大)
京(理研)
https://www.top500.org/lists/2017/06/
GPUコンピューティングと私
• CUDA 2.0(2008年頃)の頃にいじった
何か面白いことができそうだ!
まずツクモでGTX280 2枚を刺せるマシンを組み上げ (電源1kW)
当時金融シミュレーションの会社にいた
デリバティブのプライシングなどをお試し実装したり
適当な(独自仕様の)言語で書いたものをCUDAのアセンブラに変換するような “おもちゃコンパイラ” を作って、jitコンパイラを作り、Excelなどから呼び出せるようにしてみたり・・
いろいろ遊んだ
10
ただしそのころのGPUコンピューティングは・・• 保守的な業界が実際に導入するにはまだ
ハードルが高かった実際にそれを使って何かやろう、という案
件までには至らなかった。
私が相手にしていたところが金融機関の中でも、より保守的な部門だったというのもある。
フロント部門や証券系だと、新しい技術の採用はより積極的で、その当時、みずほ証券がCellのブレードで云々というのはニュースにはなった。(その後についてはよく知りません・・)
• 新しい事をR&Dする会社だ、というアピールの役にはたった
11http://itpro.nikkeibp.co.jp/article/NEWS/20080528/304426/
5月10日にトヨタ自動車とAIによる自動運転で提携したのは、半導体世界シェア10位以下の米エヌビディア。自動車業界と半導体業界にとって、序列の崩壊を象徴する提携である。
エヌビディアは長らく、ゲーム用半導体というニッチ産業のプレーヤーの1社に過ぎなかった。まさに「知る人ぞ知る」存在だった同社は、AI時代の寵児になりつつある。
13http://business.nikkeibp.co.jp/atcl/report/17/ai/051700001/
Kinetica
• 土台から構築された Kinetica の分散型インメモリ データベースは、
ストリーミング データを同時に取り込み、探索し、可視化し、実行
可能な知識をリアルタイムで与えます。Kinetica は NVIDIA GPU
の力を活用し、従来のデータベースに比べ、100 倍の速さで結果を
届け、費用対効果を 10 倍に増やします。(http://www.nvidia.co.jp/object/dgx-apps-for-ai-jp.html)
• ネットワールド社と提携し日本での展開を開始(https://cloud.watch.impress.co.jp/docs/news/1087550.html)
• USPS, GlaxoSmithKline, PG&E
17
USPS (米国郵政公社) - Kinetica
• 運営に関するほぼ即時の分析から洞察を得て、USPSは昨年、1,500億個を超える郵便物を配達しながらも、運転距離を7,000万マイル(約1億1,265万km)短縮して、ガソリンを700万ガロン(約2,650万リットル)節約し、二酸化炭素排出量を7万トン抑制しました。
• Kineticaは、NVIDIA Tesla GPUアクセラレータを採用することで、CPUベースのリレーショナル・データベース管理システムに比べ、わずかなコストで100~1,000倍の高速化を実現しました。その結果、USPSはKineticaとともに、既存のRDBMSに対して照会パフォーマンスを200倍向上させました。
19
https://blogs.nvidia.co.jp/2016/07/01/kinetica-big-data-workloads/
SQream
• SQream Technologies は GPU を活用した準リアルタイム分
析ソリューションで業界をリードするプロバイダーです。
SQream の次元の高いマルチコアソフトウェア テクノロジは、
CPU に制約される従来の手法に比べ、性能と効率性を 10 ~
100 倍上げます。その値段は何分の 1 かに抑えられています。
(http://www.nvidia.co.jp/object/dgx-apps-for-ai-jp.html)
• イスラエルの会社
20
BlazingDB
• BlazingDB は、ペタバイト規模のニーズに対応する高性能
SQL データベースです。分散型および GPU アーキテクチャを
使用することにより、BlazingDB は画期的な新世代の SQL を
提供します。企業はよく知り尽くしている SQL を維持するこ
とができますが、市場で最高のパフォーマンスを発揮するオプ
ションよりも何倍も高速です。
(http://www.nvidia.co.jp/object/dgx-apps-for-ai-jp.html)
• 元々ペルーの会社と思われます。
21
MapD
• オープンソース
• 1000億行、1兆行のデータを持つ顧客が付き始めており、そういった顧客にはスケールアウトで対応している。(https://www.nextplatform.com/2017/04/26/pushing-trillion-row-database-gpu-acceleration/)
• MapD は次世代のデータベース/視覚的分析レイヤーであり、NVIDIA GPU の力を活用し、何十億ものデータ セットをミリ秒単位で探索します。専用の GPU データベースを多機能可視化レイヤーと組み合わせることで、MapD は、以前であればインタラクティブな探索は難しいと考えられていた量のデータセットを一瞬で分析できます。(http://www.nvidia.co.jp/object/dgx-apps-for-ai-jp.html)
• Verizon
22
MapD x H2O.ai(GOAI, GPU Open Analytics Initiative)
23https://www.mapd.com/blog/2017/09/26/end-to-end-machine-learning-with-goai/
GOAIが目指すところ
• GPUデータベースと後続の機械学習/AI処理のプロセスは別 GPUの外へデータをシリアライズして受け渡しする必
要がある
後続の処理でGPUへデータを転送して処理を継続
両方ともGPUを使うならもったいなくないですか?
• GPU上の異なるプロセスが効率的にデータを受け渡しする仕組み(GPU Data Frame, GDF)を開発。 Apache Arrowのフォーマットを使用
GPU外に出してまた中に入れるという処理を回避
GPUの100倍のコア数、20倍のメモリバンド幅を効率的に使用
24https://www.mapd.com/blog/2017/09/26/end-to-end-machine-learning-with-goai/
Accelerated Visualization
処理 普通のDB クエリをGPUで実行するGPUデータベース
MapD
クエリ実行 CPU GPU GPU
可視化(画像化)
CPUクライアント
CPUクライアント
GPU
25
GPUデータベースの人気度、認知度は?DB-Engines Ranking (Oct 2017)
26
MapD (#46 RDB)
SQream DB (#99 RDB)
Kinetica (#109 RDB)
https://db-engines.com/en/ranking/relational+dbms
PG-Strom (HeteroDB)
27http://thebridge.jp/prtimes/262775https://www.slideshare.net/kaigai/gpussdpostgresql10gbs-db-tech-showcase-tokyo2017
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~(db tech showcase Tokyo 2017)
28https://www.slideshare.net/kaigai/gpussdpostgresql10gbs-db-tech-showcase-tokyo2017
プログラマビリティ x 性能 (一般論)
30
CPU
IntelAMD
IBM(Power)Oracle(SPARC)
ARM
FPGA
XilinxAltera(Intel)
GPU
NVIDIAAMD(ATI)
Intel
DSP
TIAnalog Devices
ASIC
(各社)
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
汎用化 vs 専用化
• 汎用化の方向へ
もっと自由度が欲しい
個別のアプリケーションを記述できる
• 専用化の方向へ
もっと性能(速度、消費電力など)が欲しい
同じ処理を安く
ASICは大量に作らないとコストが見合わない
31
参考:FPGA
• FPGA FPGAとは、HDL(ハードウェア定義言語)と呼ばれる言語で回路そのものを設計し、書き換えるこ
とができてしまうプログラミング可能なPLD(プログラマブルロジックデバイス)の一種です。
• 利用領域拡大中 ニコニコ動画をFPGA/ASICで高速化
マイクロソフトがFPGAでBingの検索を加速
Baiduもディープラーニングの高速化にFPGAを導入
• クラウドでも整備が加速 Amazon EC2 F1
• FPGAへの実装 普通はVHDLとかVerilogで実装
ソフトの実装とは考え方が違うので非常に面白い
32https://japan.zdnet.com/article/35093167/
ビットコインの採掘
33
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
33
CPU FPGAGPU DSP ASIC
電力効率の高いASIC利用がデファクト
HFT(High Frequency Trading)
34
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
34
CPU FPGAGPU DSP ASIC
FPGAはFIXプロトコル(金融取引の標準プロトコル)エンジンやルールエンジン、さらには執行管理システム全体の実装までに利用され始めている。
ディープラーニング
3535
CPU FPGAGPU DSP ASIC
GoogleのTPU、富士通のDLU、インテルのCrestなどの専用チップが出始めた
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
FPGAやASICへのつながりはあるの?
データベース
3636
CPU FPGAGPU DSP ASIC
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
? ?
FPGAやASICへのつながりはあるの?
データベース
3737
CPU FPGAGPU DSP ASIC
プログラマビリティ(高)柔らかい
汎用性能(低)、高消費電力
プログラマビリティ(低い)固い専用
性能(高)、低消費電力
△ まだ
データベースのFPGAアクセラレーション日立製作所
• データ分析速度を100倍高速に──FPGAを利用、日立が新技術日立製作所は2016年8月3日、「FPGA(Field Programmable Gate Array)」を利
用してデータ分析速度を最大100倍に高速化する技術を開発したと発表した。FPGAが内蔵するメモリを活用するカラム型データベース管理システム(DBMS)と、データをFPGAで並列処理する技術を組み合わせて実現する。
38http://www.atmarkit.co.jp/ait/articles/1608/04/news048.html
データベースのFPGAアクセラレーションData Engine for NoSQL - IBM Power Systems™ Edition
• FPGAの応用領域が拡大,ビッグ・データや金融取引,Webデータ処理のインフラ技術に Netezzaは,FPGAによりディスクから高速にデータを読み出し,適切な前処理を行うことで,メイ
ン・プロセッサの負荷を軽減し,ディスクとメモリの間のデータ転送速度を引き上げます.FPGAは,ディスクから読み出したデータをいったんFPGA内の高速メモリ領域やブロックRAMに格納します.そして,データの読み出しとほぼ同じ速度で,データの分析処理を実行します(http://www.kumikomi.net/archives/2013/03/co16fpga.php)
• ビッグ・データの分析を効率的に処理. 米国IBM社のNetezzaは,データウェア・ハウス・アプライアンス(データ収集・解析処理専用
サーバ)にFPGAが活用されている事例の一つです.データウェア・ハウスでは,膨大な顧客データをほぼリアルタイムに収集し,データベースに格納します.そして,保存したデータを顧客分析や収益分析,不正検出,リスク分析に利用し,企業経営に役立てています.Netezzaは,FPGAによりディスクから高速にデータを読み出し,適切な前処理を行うことで,メイン・プロセッサの負荷を軽減し,ディスクとメモリの間のデータ転送速度を引き上げます.FPGAは,ディスクから読み出したデータをいったんFPGA内の高速メモリ領域やブロックRAMに格納します.そして,データの読み出しとほぼ同じ速度で,データの分析処理を実行します.(https://qiita.com/HirofumiYashima/items/40d33390221e8db4e98f)
39
まとめ
• GPUはゲーム、ディープラーニングだけではない
NVIDIA社もプレゼンで取り上げたりファンドしたりと熱心に活動中
• GPUデータベースの勢力拡大中
ベンダーも米国中心からヨーロッパ、APACを視野に入れ始めた
• AccerelatedデータベースとしてGPUの次も少しずつ出始めた
FPGAは面白そう
ASICまで行くのかはちょっとよくわからない
40