tags:

views:

57

answers:

1

If I want to re-write my application so that it leverages the power of nVidia's CUDA SDK, are there any differences at all in runtime performance between the different SDK offerings: C++, Java, Python?

Is there any difference at all between these 3 SDK's, besides the obvious language being used?

+3  A: 

There will be a measurable performance impact on the CPU bound portions of your processing. For instance, if your CUDA data requires pre-processing before reaching the GPU, writing the numerical routine in Python would be suboptimal.

If your CUDA routines dominate the computation time (the CPU remains relatively idle), any of the bindings are a good choice.

It may be best to first prototype in a language such as Python, and if you identify a performance bottleneck move that code to C++.

Yann Ramin
In the three cases you mention (C++, Java, Python) the CUDA kernel itself is essentially the same, the difference is in the API bindings to setup and launch your kernel on the GPU. Therefore once the kernel is actually running then, as theatrus says, there will be no difference.
Tom