ブックマーク / kaigai.hatenablog.com (3)

  • gstore_fdw: GPUメモリをSQLで読み書き、そして…。 - KaiGaiの俺メモ

    昨年、PGconf.ASIAで発表したPL/CUDAによる創薬ワークロードの高速化実験のテーマであるが、 kaigai.hatenablog.com 実測したベンチマークを見ると、奇妙な傾向が見てとれる。 このワークロードにおける計算量は「Qの行数×Dの行数」であるので、Dの行数が同じ1000万行であるならば、Qの行数が1000のケース(22.6s)に比べ、Qの行数が10のケース(13.4s)の実行時間はもっと顕著に短時間でなければならない。 計算量が1/100なのに、実行時間は半分弱にしかなっていない。 実はこれは、化合物同志の類似度を計算するための時間だけでなく、PL/CUDA関数に与える引数をセットアップするための時間に12秒程度を要しており、アムダールの法則を引用するまでもなく、類似度の計算を高速化するだけでは処理速度はこれ以上伸びないのである。 PL/CUDA関数の引数として行列

    gstore_fdw: GPUメモリをSQLで読み書き、そして…。 - KaiGaiの俺メモ
    K2ICE
    K2ICE 2018/04/23
  • Pascal以降のUnified Memoryを使いたおす。 - KaiGaiの俺メモ

    今でこそTESLA P40に24GBのRAMが載り、コンシューマ向けでもGTX1080Tiに11GBのRAMが搭載されてたりと、GPU側でも10GBを越えるメモリを積むことは珍しくなくなってきた*1。 長らく自分の開発環境で頑張ってくれたGTX980は(当時のハイエンド製品だったにも関わらず)4GBのRAMしか積んでおらず、基的には、希少資源であるデバイスRAMをどのようにアロケーションするかというのは、データベースのワークロードをGPUで処理する上での大問題であった。 例えば、OUTER側から20万行を読み出して*2、INNER側の1万行とJOINする処理を考えた場合、最悪ケースでは20万行×1万行で20億行が生成されることになる(CROSS JOIN)。 もちろん、PostgreSQLの統計情報からある程度の推計は可能であるし、JOINの結果生成される行数というのはコスト推計値にダイ

    Pascal以降のUnified Memoryを使いたおす。 - KaiGaiの俺メモ
    K2ICE
    K2ICE 2017/08/17
  • エルザ・ジャパン様の対応が神レベルだった件 - KaiGaiの俺メモ

    雑文です。 現在取り組んでいる SSD-to-GPU ダイレクト機能の実装には、PostgreSQL/PG-Strom側の機能拡張だけれなく、NVMe SSDからGPU RAMへのDMAを実行する Linux kernel ドライバの開発が必要になる。 Linux kernelにはDMAを実行するためのインフラが既に多数揃っているので、ドライバの開発自体はそれほど大仕事ではないのだが、GPUがその機能に対応している必要がある。 NVIDIA提供のドキュメントによると、 GPUDirect RDMA :: CUDA Toolkit Documentation GPUDirect RDMA is available on both Tesla and Quadro GPUs. と、あり、いわゆるコンシューマ向け廉価製品であるGTXでは対応していない。 対応していないというのは、GPU上のRAM

    エルザ・ジャパン様の対応が神レベルだった件 - KaiGaiの俺メモ
    K2ICE
    K2ICE 2016/04/18
  • 1