Java 线程或 Cuda 线程

标签 java cuda parallel-processing

我将开始一个使用并行处理的项目,我想知道我是否会通过使用 Java 线程或 Cuda 编程获得更多优化?另外,我不是这两种方案的专家,哪条路线的学习曲线更小?

最佳答案

简短的回答:这取决于您要解决的问题。

长答案:

Java 和 Cuda 中的并行处理之间存在一些非常根本的区别。一个很大的区别是作业是如何打包和执行的。在 Java 中,您将编写一个加载数据的程序,然后您将使用类似 ExecutorService 的东西来执行您的任务。在 Cuda 中,您将加载数据,然后编写一段实际执行的代码(在 Cuda 中,这称为内核)。听起来很相似,对吧?但不是真的。 Cuda 中涉及额外的内存开销。 GPU 的内存有限,因此您的软件必须首先加载数据,然后将其打包为内核的一部分,然后将其发送到 GPU,GPU 然后存储数据并执行计算。然后您的应用程序必须检索结果。这对于某些计算问题非常有效,但对于其他计算问题确实效率低下。这完全取决于您要实现的目标。

关于Java 线程或 Cuda 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9216620/

相关文章:

C++ 2.5 字节(20 位)整数

c - MPI - 在障碍后尝试打印广播变量,显示其他一些变量

java - 添加到 Fragment 内的 listView 中的 TextView 显示但为空(无文本)

Java,每秒发送多个get请求

java - iOS 应用程序可以通过蓝牙与 Mac 上的 Java 应用程序通信,而无需创建 OS X 应用程序吗?

java - 如何用java程序停止正在运行的tomcat?

c++ - 如何在 CUDA 中从稀疏数组表示变为密集数组表示

c++ - 如何从 C++ 将字符串矩阵传递给 Cuda 内核

ios - 后台快速处理 viewDidLoad 上的一项艰巨任务

c++ - 英特尔 TBB 和微软 PPL 有什么区别?