-2

对于我的科学博览会项目,我必须编写一个非常适合并行化的计算密集型算法。我已经阅读过有关 OpenCL 和 CUDA 的信息,似乎它们主要用于 C/C++。虽然学习一点 C 来编写一个简单的 main 对我来说并不难,但我想知道如果我使用 Java 或 Python 绑定来进行 GPU 计算,性能会受到多大的影响?具体来说,我对使用 CUDA 的性能影响更感兴趣,因为这是我计划使用的框架。

4

1 回答 1

2

通常,每次添加抽象层都会降低性能,但对于 CUDA,这并不完全正确,因为无论使用 Python 还是 Java,您最终都会在 C/Fortran 上编写 CUDA 内核,所以GPU 端的性能将与使用 C/Fortran 相同(在此处查看一些 pyCUDA 示例)

坏消息是 Java 和 Python 在某些任务上永远无法达到 C 等编译语言的性能,请参阅SO 答案以获取有关此主题的更详细讨论。是关于 C 与 Java 的一个很好的讨论,也是关于 SO 的。

关于解释语言和编译语言之间的性能比较有很多问题和讨论,所以我鼓励你阅读其中的一些。

于 2014-11-13T08:47:23.403 回答