GPU Computing SDK contains examples such as Simple OpenGL or FFT Ocean Simulation. This kind of work seems to be more suitable to vertex shader. When doing such things via cuda is reasonable ? In Cuda we can set grid size and block size. Vertex shader does something with vertices concurrently but how it refer to usage of unified shaders and number of threads ?
Vertex shaders and CUDA programs both use the same computational resources (the unified shaders), so the performance should be roughly equivalent if you’re doing the same thing. The advantage of CUDA comes when you start using shared memory and global load/stores, which are not generally available from shaders. The shader programming model doesn’t expose how vertices/pixels are packed into warps or blocks.