I think this problem is quite suited for acceleration with CUDA, but I’d like to get the opinion of a CUDA programmer before I set about learning how to do it. I’m using a 3D lattice-based model divided into ‘cells’, each consisting of ~100-1000 points (x,y,z). To start with, for any one cell I want to convert the 3D cartesian points to spherical polar coordinates, double an angle, convert back to cartesian coordinates, sum these points as vectors, then do the same thing with the resulting single point (except halving the angle this time). This involves a few trigonometric functions, which is why I’d like to offload the computation to a GPU. Single precision floats are fine. I’d want to do this for many cells (up to tens of thousands), the data for which may well exceed the device’s total memory, and every time step of the model, of which there would be thousands at the least. I should note that this problem is a small part of the model, but would take a disproportianate amount of computation.
Any comments on the worth of programming this in CUDA are greatly appreciated, and any comments on how to best go about doing it are even more so! Thanks in advance.