Re: CUDA Sorting - Mailing list pgsql-hackers

From Thom Brown
Subject Re: CUDA Sorting
Date
Msg-id CAA-aLv5sseO_PGStwchc4eW3aUeha1Nntn5wn7XzFb4ydKdbMg@mail.gmail.com
Whole thread Raw
In response to CUDA Sorting  (Vitor Reus <vitor.reus@gmail.com>)
List pgsql-hackers
On 19 September 2011 13:11, Vitor Reus <vitor.reus@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


pgsql-hackers by date:

Previous
From: Vitor Reus
Date:
Subject: CUDA Sorting
Next
From: Stephen Frost
Date:
Subject: Re: Improve lseek scalability v3