2

APARAPI项目将自己描述为:

Aparapi 允许 Java 开发人员通过在 GPU 上执行数据并行代码片段来利用 GPU 和 APU 设备的计算能力,而不是局限于本地 CPU。它通过在运行时将 Java 字节码转换为 OpenCL 并在 GPU 上执行来实现...

我想知道这比gparsAkka等传统并发框架有什么好处。

在什么情况下将 JVM 字节码转换为 OpenCL 比这些替代方案提供的更快或更可取?为什么 OpenCL/GPU 范式比 Java/CPU“更快”(至少在某些情况下)?什么情况下需要这样做?

4

1 回答 1

1

我想说的是,akka 是一个非常高级的并发抽象,而 CUDA、OpenMP、MPI 等东西是计算成本高的东西。因此,akka 非常适合实现诸如任务调度系统以及处理和限制请求之类的东西,但如果它们的计算成本很高并且可以并行化,那么对于任务执行本身就没有那么好了。但是你有这个非常高的抽象,并且可以使用期货来让整个系统反应,这样它就不会在任何地方锁定。所有的 GPU 库都非常适合实现大规模并行任务,在这些任务中,你有大量的无人机都在做几乎相同的事情。这就是 BLAS 之类的东西。我认为它们最近变得越来越流行,因为与 CPU 相比,显卡有了更大的进步,恕我直言,它仍然是一个非常专业的领域,与 OpenMP 相比,学习曲线很大,您可以在循环上粘贴一些预处理器衍生物,或者类似 java8 新的并行集合。无论如何,这是我的 2 美分。

于 2015-07-16T01:59:54.723 回答