Hi,
I also worked on a radix sort implementation, I had a rough working implementation but I found that the numpy.argsort was much faster on my machine. So I delayed that task for now. But if someone comes up with a fast generic solution I would also be interested.
I used the sorting for a sph simulation.
http://youtu.be/1hHELRSCIm8
I have only a notebook with an ATI graphics card. At least on that the numpy sort was about 5 times faster even on several million entries.
Dieter

Am 15.01.2012 22:22, schrieb Ian Johnson:
Hi Andreas,

That code is the latest, I haven't touched it in a long time since my work has taken me away from opencl for the time being. As for the licensing, I put in an MIT license so its free as far as I'm concerned. Some of the radix code comes straight from the nvidia sdk example, we had to modify it a good bit to sort keys and values but I'm not sure what their licenses are.

This is also definitely not the best implementation of radix, as there is a much faster (and open) CUDA implementation. I would have hoped it would be ported to OpenCL by now, and there is this project: http://code.google.com/p/ocl-radix-sort/ which is GPL.

good luck! I'd like to hear about any improvements that come along!
Ian

On Sun, Jan 15, 2012 at 9:35 AM, Andreas Kloeckner <[email protected] <mailto:[email protected]>> wrote:

    Hi Ian,

    On Sun, 17 Apr 2011 22:29:41 -0400, Ian Johnson <[email protected]
    <mailto:[email protected]>> wrote:
    > I finally bit the bullet and got radix working in PyOpenCL :)
    > It's also improved over the SDK example because it does keys and
    values,
    > mostly thanks to my advisor.
    > Additionally this sort will handle any size array as long as it
    is a power
    > of 2. The shipped example does not allow for arrays smaller than
    32768, but
    > I've hooked up their naive scan to allow all smaller arrays.
    >
    >
    
https://github.com/enjalot/adventures_in_opencl/tree/master/experiments/radix/nv
    > all you really need are radix.py, RadixSort.cl and Scan_b.cl
    >
    > some simple tests are at the bottom of radix.py
    >
    > I hammered this out because I need it for a project, it's not
    all that clean
    > and I didn't add support for sorting on keys only (altho it
    wouldn't take
    > much to add that, and I intend to at a later time when I need the
    > functionality). Hopefully this helps someone else out there.
    I'll also be
    > porting it using my own OpenCL C++ wrappers to include in my fluid
    > simulation library at some point.
    >
    > I also began looking at AMD's radix from their SPH tutorial, but
    they use
    > local atomics which are not supported on my 9600M

    Out of personal need, I'm thinking of bringing some kind of sort
    functionality into PyOpenCL. I saw that you made a number of
    enhancements to your sort code since you sent the announcement. Is
    your
    most recent sort code still in the repo above? What is the license for
    that code?  More generally, what course of action would you recommend?

    Thanks in advance for your help,
    Andreas




--
Ian Johnson
http://enja.org



_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to