Thursday, September 17, 2015

pg_strom - The road ahead!

OK, since my last post, strange things have happened.

I reinstalled CUDA from a binary package instead of directly over the Internet from the Nvidia repository. According to the Version numbers, they should be identical.

And?

SET pg_strom.enabled = ON;

EXPLAIN ANALYZE SELECT count(*)
FROM t_test
WHERE sqrt(x) > 0

GROUP BY y;

HashAggregate  (cost=177230.88..177230.89 rows=1 width=101) (actual time=2694.635..2694.635 rows=1 loops=1)
 Group Key: y
  ->  Custom Scan (GpuPreAgg)  (cost=13929.24..173681.39 rows=260 width=408) (actual time=235.256..2694.053 rows=76 loops=1)
        Bulkload: On (density: 100.00%)
       Reduction: Local + Global
       Device Filter: (sqrt((x)::double precision) > '0'::double precision)
       ->  Custom Scan (BulkScan) on t_test  (cost=9929.24..168897.54 rows=5000000 width=101) (actual time=3.946..599.690 rows=5000000 loops=1)
Planning time: 0.110 ms
Execution time: 2749.609 ms

pg_strom now works as expected! So it was a driver issue.

It's still 7 % slower on my machine than CPU, but that is explained by the weak GPU.

5 comments:

  1. i did some more tests myself as well. some results are really promising i got to admit. stay tuned :)

    ReplyDelete
  2. I will. :-)

    One question is: How well does it scale?, I.e. what happens, when multiple backends start to compete for the single GPU resource?

    ReplyDelete
  3. Any chance you could run these tests on one of the Amazon g2.2xlarge instance?

    ReplyDelete
  4. Probably not. But I have a Workstation (2 x 6 core Xeon + GTX Titan) lying around that's waiting for a new SSD. Once time permits I'll try with that for sure.

    ReplyDelete