2016-01-01から1年間の記事一覧
This article is a part of the PostgreSQL Advent Calendar 2016.According to the request by Joe Conway (@josepheconway), I wrote this article in English.I like to share the discussion we had at the PostgreSQL developer unconference on the da…
I've participated PGconf Silicon Valley 2016 held at the South San Francisco Conference Center. I could have a presentation here. Its title is PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics. Its slides are below: https://ww…
前回のエントリでは、CBI学会で発表を行った、PL/CUDAによる類似化合物の検索について説明した。今回は、コレとはまた別のワークロードに対する応用という事で、クラスタリング処理のIn-Database実装に挑戦してみた。 トライしてみたのは k-means法 によるク…
やや場違い感が否めないが、今週、CBI学会(計算情報化学生物学会)の2016年大会でポスター発表を行ってきた。発表タイトルは『Efficient Similarity Search Using Multiple Reference Molecules on PG-Strom architecture』というもので、要は、創薬分野…
おっとっと、やらかしてしまった(但し、良い方に)。PG-Strom + NVMe-Stromでのパフォーマンス計測の際に、SSDからロードしたデータ以外に、例えばテーブル定義情報や定数パラメータといったSQLの実行に必要な情報は一般的なRAM-to-GPU DMAで転送していたの…
An article for none-Japanese readers....What I'm recently working on is a feature to load data blocks from NVMe-SSD to GPU using peer-to-peer DMA. It allows to bypass the CPU/RAM under a series of data loading process, thus, also allows to…
前回の動いた!SSD-to-GPU Direct DMA - KaiGaiの俺メモの記事では、Intel SSD 750とNVIDIA Quadro K1200を使って、Raw-I/OでのSSD-to-GPU Direct DMAが動くところまでを紹介した。この時点で測定できたSSD-to-GPU Direct DMAのスループットは概ね1400MB/s程…
ここしばらく、NVMe-SSDからGPUへとPeer-to-Peer DMAを行うためのLinux kernelドライバを書いている。これは昨年末のPGconf.JPのLTでアイデアを先に発表したもので、従来は、例えばテーブルスキャンに際して90%の行がフィルタリングされる場合であっても、デ…
現在の PG-Strom のアーキテクチャは、PostgreSQLの各バックグラウンドプロセスが個別にCUDAコンテキストを作成し、GPUデバイスメモリを作るという構成になっている。 これは、設計の単純化、特にエラーパスのシンプル化により、全体的なソフトウェアの品質…
PG-Stromには↓のような利点があるが、 SQLから自動的にGPU用バイナリ命令列を生成するため、GPUプログラミングを意識する必要がない、 PostgreSQLの行指向データを用いるため、既存DBからデータの移行を必要としない。 その裏返しとして、同時に↓のような特…
雑文です。現在取り組んでいる SSD-to-GPU ダイレクト機能の実装には、PostgreSQL/PG-Strom側の機能拡張だけれなく、NVMe SSDからGPU RAMへのDMAを実行する Linux kernel ドライバの開発が必要になる。Linux kernelにはDMAを実行するためのインフラが既に多…
という訳で、GTCで喋ってきました。 20160407_GTC2016_PgSQL_In_Place from Kohei KaiGai www.slideshare.net今までの発表とは少し趣を変えて、PG-Stromそのものの説明よりも、現実世界のワークロードを実行するときにどういった使い方があり得るか、どうい…
今年もサンノゼで開催されている GPU Technology Conference 2016 に参加しています。# なお、当方の発表『In-Place Computing on PostgreSQL: SQL as a Shortcut of GPGPU』は木曜日の予定 キーノートでは、NVIDIA社CEOのJen-Hsum Huang氏より"ディープラー…
前回の続き。PCI-E接続のSSDからのP2P DMAでCPU/RAMを介さずにGPU RAMへデータを転送するという要素技術自体は目新しいものではない。かつてFusion-io(現: SunDisk)もやっていたし、NVMe規格に準拠したものであれば標準のドライバに少し手を加えてP2P DMA…
昨年の暮れ、JPUGカンファレンスのLTで『SQL+GPU+SSD=∞』と題したスピーチを行った。 SQL+GPU+SSD=∞ (Japanese) from Kohei KaiGai www.slideshare.netこれはかいつまんで言えば、ストレージからデータをCPU+RAMへとロードするより前に一旦GPUへとデータを転…
NVIDIA GPUのKepler/Maxwell世代で*1対応となったDynamic Parallelismという機能がある。GPUデバイス上で動作するプログラム(Kernel関数と呼ぶ)を起動する際には、そのKernel関数を実行するために同時に何個のスレッドを起動するかを指定する。 例えば、10…
PostgreSQL v9.6からはパラレルスキャンが導入される事になっている。この機能をざっくり説明すると 共有メモリ上に『次に読むブロックの番号』という状態を作っておく。 Gatherノードが複数のワーカープロセスを起動する。 各ワーカーで実行されるSeqScanが…
正月休みの宿題だった機能を実装できた。(注:ちゃんと動くとは言っていない)PG-Stromを使って数式の評価をGPUにオフロードする場合、WHERE句やJOIN..ON句のオフロードには対応していたものの、TargetListに複雑な演算式を含む場合、これは完全にCPU側で処…