I’ve just started looking into CUDA as an option. I’ve already got the pricing models we use running through DirectX and the shader pipeline and I’m very interested in performance. I’ve had a cursory look at CUDA and it seems quite different to what I’d expect after working with shaders. If I’ve already got the algorithms vectorized and take advantage of all the swizzling ops and packing calues into registers to minimize ops will I see any difference in performance moving from DirectX to CUDA?
The second part of my question deals with the fact that with DirectX it’s very difficult to have a lot of different data in flight as you get very little info about what’s going on on the graphics card. So going beyond set vertex buffer, draw, get video memory back, set new vertex buffer requires a lot of trickery. Is it much simpler to have a lot of different data sets in flight at one time in CUDA?
If so would I be better off using D3D interoperability with CUDA to do the memory handling and sticking with D3D for the calcs or switching over whole heatedly? Or should I just stick with DirectX?
Are there any other major selling points of CUDA that I should know about when wheighing up the options?
Thanks for taking the time to read this and any help is much appreciated.