On 19 September 2011 13:11, Vitor Reus <vitor.r...@gmail.com> wrote: > Hello everyone, > > I'm implementing a CUDA based sorting on PostgreSQL, and I believe it > can improve the ORDER BY statement performance in 4 to 10 times. I > already have a generic CUDA sort that performs around 10 times faster > than std qsort. I also managed to load CUDA into pgsql. > > Since I'm new to pgsql development, I replaced the code of pgsql > qsort_arg to get used with the way postgres does the sort. The problem > is that I can't use the qsort_arg_comparator comparator function on > GPU, I need to implement my own. I didn't find out how to access the > sorting key value data of the tuples on the Tuplesortstate or > SortTuple structures. This part looks complicated because it seems the > state holds the pointer for the scanner(?), but I didn't managed to > access the values directly. Can anyone tell me how this works?
I can't help with explaining the inner workings of sorting code, but just a note that CUDA is a proprietary framework from nVidia and confines its use to nVidia GPUs only. You'd probably be better off investing in the OpenCL standard which is processor-agnostic. Work has already been done in this area by Tim Child with pgOpenCL, although doesn't appear to be available yet. It might be worth engaging with him to see if there are commonalities to what you're both trying to achieve. -- Thom Brown Twitter: @darkixion IRC (freenode): dark_ixion Registered Linux user: #516935 EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers