Accelerating SQL[ite] Database Operations on a GPU with CUDA [pdf]
cs.virginia.edu
cs.virginia.edu
1) They give numbers from a single-core CPU implementation, and from a many-core GPU implementation, and they discuss numbers from a many-core CPU implementation as well, like some of the new four- or eight-core chips; without many-core CPU numbers, it's comparing apples to oranges.
2) What indices are on the table? Does the GPU have any indices? A read-only database is certainly going to have indices, and (hopefully) covering indices for all the big queries.
3) SQLite has strongly-typed values not columns (you can stick a string in an integer column and that's just fine) and it seems like they disregarded much of the SQLite type system, only focusing on integer values. I'd like to know how much time is spent on type checking values.
But this isn't anywhere near the typical usage scenario of SQL databases. If it was, scaling databases would be trivial by sharding tables across many servers. In real life, you have indexes and joins, which translate into random access patterns, which do not perform very well on CUDA.
The gem which you might be looking for is:
The queries executed on the GPU were an average of 35X faster than those executed through the serial SQLite virtual machine.
(my apologies to authors for reducing the entire document to that)
This is fascinating stuff, but having to keep the entire DB in GPU memory poses some obviously non-trivial problems in terms of practical applications.