2010-06-02 67 views
1

如果我想重新编写我的应用程序以充分利用nVidia CUDA SDK的强大功能,那么在不同的SDK产品之间的运行时性能方面是否存在差异:C++,Java,Python?不同CUDA SDK之间的性能差异?

这3款SDK之间有没有什么区别,除了明显的语言使用?

回答

3

对处理的CPU绑定部分会有可测量的性能影响。例如,如果您的CUDA数据在到达GPU之前需要进行预处理,那么在Python中编写数值例程将不太理想。

如果您的CUDA例程在计算时间中占主导地位(CPU保持相对空闲状态),则任何绑定都是不错的选择。

最好先用诸如Python之类的语言进行原型开发,并且如果确定性能瓶颈,则将该代码移至C++。

+0

在您提到的三种情况下(C++,Java,Python),CUDA内核本身基本上是相同的,不同之处在于API绑定在GPU上设置和启动内核。因此,一旦内核实际运行,就像情感所说,没有任何区别。 – Tom 2010-06-03 09:39:11