0

我只知道用于神经网络、GA 和一些图形界面工作的 Java 知识。我有一个简单的问题是关于 OpenCL + Java + C 的可能性。我知道你可以在 Java 中运行 C,但是我想做的是运行第三方 C 应用程序(我没有源)通过Java,很简单-但由于计算量需要,我想让C应用程序使用OpenCL在GPU上运行-这可能吗?我知道有一些库,例如 JavaCL 等。

理想情况下,工作流程类似于:

1.Java App 强制 C 应用程序使用 OpenCL 在 GPU 上运行。

2.Java App使用Data和Parameters向C应用程序发送命令

3.Java App使用OpenCL库来管理C应用线程。

4.Java App可以初始化多个C app实例吗?

5.C App处理Data并返回给Java App。

6.Java App 可视化数据。

感谢您的任何帮助或建议。干杯,帕特里克。

4

2 回答 2

0

不,如果您有一个用纯 C 编写的第三方二进制程序,则无法使用 OpenCL(或任何其他方法)在 GPU 上运行该程序。该二进制文件将使用与 GPU 使用的任何指令集都不兼容的 CPU 指令集(x86、ARM 等)。您需要使用 OpenCL(或其他支持 GPU 的语言 + API)重写计算量大的代码,以使其在 GPU 上运行。

于 2014-06-05T09:56:49.280 回答
0

我知道这并不理想,因为您没有源代码,但是您可能拥有内核或可以获得它?我使用 LWJGL 来满足我对 Java OpenCL 的需求,它工作得非常好,并且使用几乎完全一样的 C++ -> Java 实现非常简单。

来源: http://lwjgl.org/wiki/index.php?title= OpenCL_in_LWJGL

于 2014-06-09T19:21:48.973 回答