おっとっと、やらかしてしまった(但し、良い方に)。 PG-Strom + NVMe-Stromでのパフォーマンス計測の際に、SSDからロードしたデータ以外に、例えばテーブル定義情報や定数パラメータといったSQLの実行に必要な情報は一般的なRAM-to-GPU DMAで転送していたのだけども、ココがうっかり同期DMAになっていたために、本来の性能を発揮できないでいた。 そこで、きちんと非同期DMAを実行できるようにコードを修正し、改めてPG-Strom + NVMe-Stromの実行速度を測り直した数字が以下の通り。じゃん。 ワークロードは変わらず、以下の三種類のクエリを64GB/7億件のテーブルに対して実行した。 Q1: 比較的シンプルな検索条件を持つスキャン Q2: 比較的複雑な検索条件を持つスキャン Q3: 文字列マッチ(LIKE句)を持つスキャン 応答時間が概ね42~43secの範囲
![同期DMAと非同期DMA - KaiGaiの俺メモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/8a16b33c6376c4ffbdc44abf3c860777881b90b1/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkaigai%2F20160908%2F20160908214519.png)