[PyCUDA] Optical ray tracing
permafacture at gmail.com
Tue Jan 19 15:22:04 PST 2010
I've been working with others on a non-sequential optical ray tracing
program in python (modeling optical systems, not rendering fancy images).
I was curious about using cuda to speed up processing, but I do not know
enough about what GPU's do well and not so well. Also, I wonder if there
are any open projects that have already written code that would work for
The program currently takes an array of origins and directions. i use 5,000
but more like 100,000 rays would be excellent. And then intersections
between those rays and all of the dozen or so optical elements are
calculated. truth tests determine which of all of those intersections have
children (ie, are the real rays). this iterates till all of the rays are
absorbed or at infinity.
Soon, that whole process will be iterated many times while the computer
tries to optimise the optical system.
even with only 5,000 rays, 5000 rays*12 elements*10 bounces*30 iterations
for optimization quickly becomes a lot of processing.
Is this problem suited for cuda? Is there any active or open development on
this already? Also, I wonder how much of our code would have to be rewritten
to accommodate this. There is talk of rewriting the intersection
calculations in faster C, and if it is a comparable ammount of work to do it
in cuda instead then great! If we should have just written everything in
pycuda to start with, then I guess I'll be back if I ever want to write a
Our raytracer can be found at:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the PyCUDA