What are the major differences/advantages of CUDA over directx11 compute shaders. Apart from CUDA being much easier to learn and program, it looks like compute shaders 4.0 has all features of CUDA.
I’m just stating the obvious, but…
DX11 CS’ are specific to windows, require DX runtime, but are vendor neutral - and is designed/developed by MS and the DX working group - as such not all features will always be exposed (though at present I believe it’s not missing much).
CUDA is cross platform, requires CUDA drivers/hardware, and is vendor specific (and as such nVidia can make sure the latest/greatest hardware capabilities are always exposed via CUDA - however it only runs on nVidia hardware - except via Ocelot).
I’m just stating the obvious, but…
DX11 CS’ are specific to windows, require DX runtime, but are vendor neutral - and is designed/developed by MS and the DX working group - as such not all features will always be exposed (though at present I believe it’s not missing much).
CUDA is cross platform, requires CUDA drivers/hardware, and is vendor specific (and as such nVidia can make sure the latest/greatest hardware capabilities are always exposed via CUDA - however it only runs on nVidia hardware - except via Ocelot).
Not wanting to hijack this thread or anything, but does anyone know the state of SLI support with DirectCompute? I am going to presume that it can’t do anything that OpenCL or CUDA can’t, so that DX10 or DX11 compute kernels don’t get automatically distributed over cards in SLI, but does anyone know for sure?
Actually, we do support Direct Compute with SLI in AFR (alternate frame rendering) mode - i.e. if you have an application that renders multiple frames and executes compute shaders, one frame will be computed on gpu 1 while the next frame is computed on gpu 2 etc.
If your application just does computation (i.e. it doesn’t call Present()), it will not get any transparent acceleration from SLI.
Simon, thanks for the information. Windows is something I try and avoid at all costs, but I see some CS5 code in my future, as unpalatable as it might seem…
Yeah, Direct Compute does have some advantages over C for CUDA - you get all the graphics features (cube maps, texture arrays, surface writes) and interoperability between compute and graphics works very well. On the other hand the API code is a lot more verbose (I hope you like filling in structs) and Microsoft’s HLSL compiler can be a bit picky at times, in my experience.