Benchmarking CUDA database performance

Hi guys!
I have used CUDPP and Thrust to implement several basic database operations such as filter, joins and sorts.
I have run some benchmarks to compare the performance of my SQL operations with that of major database vendors.
I decided to use TPC-H bencmark tests Q1 and Q3 on a scale 100 which means that the database size is about 100 GB.

Setup (taken from TPC-H web site) :

System 1 :
Sybase IQ 15.1 ESD#1 Single Application Server
SunFire X4270 with
2 Intel Xeon 5570 2.93 GHz Quad Core processors
120 GB memory
1x 146GB SAS internal disk (10K RPM)
8 x 32GB internal SSDs
Cost : $61,217.99 USD

System 2 :
Microsoft SQL Server 2008 Enterprise x64
Processors : 2x 2.93 GHz Quad Core Intel X5570
Cores : 8
Threads : 16
Memory : 144 GB
OS Disk Drives : 2x 72 GB 15K rpm SFF SAS
Disk Controllers : 4x Smart Array P410, 1x Smart Array P411
Disks : 12x 60GB SSD SATA SFF
Total Disk Storage: 864 GB
Cost : $54,859 USD

System 3 ( My PC )
Alenka DB ( CUDPP + Thrust) -
Processor : 2.6 GHz Intel G620
Disk : 1 x WDC 2 TB
1 x 120GB Vertex3 SSD
NVidia GTX 580 3GB gpu
Cost : $843.00

Q1 : filter and group by ops
Q3 : join, group by and sort ops

Results of Q1 and Q3 :

System 1 - 35.2 and 7.2
System 2 - 42.3 and 4.3
System 3 - 9.5 and 5.3

Please notice that results for System1 and System2 are published on TPC-H web site in a top 10 results in a 100GB category.

So the conclusion is that combination of GTX580 GPU and CUDPP and Thrust libraries is capable of outperforming expensive servers and powerful databases.
Thanks for reading !


Nice work Anton. What’s stopping you from running all of TPC-H?

Thank you Gregory.
Running all TPC-H would require quite a bit of work, including implementing antijoins and operators like ‘exists’ as well as support for add/update/delete operations.
Doing all of this would probably make sense if someone would actually use the program, but right now it is more of a research project, just to see if it is possible to outperform commercial databases.

Cool stuff :)
Anton - what does the numbers in the results stand for? ms?

Unfortunately those numbers are seconds :-)