Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCL与Java_Java_Opencl - Fatal编程技术网

OpenCL与Java

OpenCL与Java,java,opencl,Java,Opencl,我最近读到一篇关于Java的文章,有一个Java库允许使用OpenCL。OpenCL和Java在多大程度上可以与Java一起使用。另外,JVM是否有任何方法可以在Java代码中透明地自动卸载GPU中的进程 一个应用程序是Java到Javascript编译器,它不能直接使用OpenCL,但是它的翻译VM可能可以使用并行处理 较新版本的具有OpenCL绑定。然而,它并没有像我想的那样提供与语言或虚拟机的深度集成 另一个提供OpenCL绑定的库是。的较新版本具有OpenCL绑定。然而,它并没有像我想的

我最近读到一篇关于Java的文章,有一个Java库允许使用OpenCL。OpenCL和Java在多大程度上可以与Java一起使用。另外,JVM是否有任何方法可以在Java代码中透明地自动卸载GPU中的进程

一个应用程序是Java到Javascript编译器,它不能直接使用OpenCL,但是它的翻译VM可能可以使用并行处理

较新版本的具有OpenCL绑定。然而,它并没有像我想的那样提供与语言或虚拟机的深度集成

另一个提供OpenCL绑定的库是。

的较新版本具有OpenCL绑定。然而,它并没有像我想的那样提供与语言或虚拟机的深度集成


另一个提供OpenCL绑定的库是。

简短的回答是否定的。因为JVM不是为了识别并行性而构建的

较长的答案是,你可以用相对较少的努力来完成它。在www.jocl.org上,您可以找到一个JAR文件,它支持Java中的OpenCL,以及一些如何做到这一点的教程。如果您的Java代码中有一个相当简单的循环体,这是您的瓶颈,那么OpenCL很有可能会有很好的改进。我经常发现x10或更大的改进,但这取决于您的GPU。已经报告了x100以上的差异


虽然它没有集成到java中,但是您可以在一个.cl文件中编写循环体,并从主java文件中执行它。好的一面是,有些IDE(如Netbeans)在web上有OpenCL编辑器插件,这使得一切看起来都更加集成-

简单的答案是否定的。因为JVM不是为识别并行性而构建的

较长的答案是,你可以用相对较少的努力来完成它。在www.jocl.org上,您可以找到一个JAR文件,它支持Java中的OpenCL,以及一些如何做到这一点的教程。如果您的Java代码中有一个相当简单的循环体,这是您的瓶颈,那么OpenCL很有可能会有很好的改进。我经常发现x10或更大的改进,但这取决于您的GPU。已经报告了x100以上的差异


虽然它没有集成到java中,但是您可以在一个.cl文件中编写循环体,并从主java文件中执行它。好的一面是,有些IDE(如Netbeans)在web上有OpenCL编辑器插件,这使得一切看起来都更加集成-

你也可以看看。它允许您用java编写OpenCL内核。这些代码在屏幕后面被转换成真正的OpenCL代码。使用OpenCL绑定的wrt最大的优点是,您的内核是纯java,因此您可以使用所有常规工具,例如调试器、JUnit、IDE等等。。。。AMD正在开发该项目,但它还很年轻。

您也可以看看。它允许您用java编写OpenCL内核。这些代码在屏幕后面被转换成真正的OpenCL代码。使用OpenCL绑定的wrt最大的优点是,您的内核是纯java,因此您可以使用所有常规工具,例如调试器、JUnit、IDE等等。。。。该项目由AMD开发,但还很年轻。

在我使用这些工具所做的测试中,它们的代码开销很大。我的问题是,它花了相当长的时间来预热,足够长,它是更快地使用CPU。显然,在我使用这些工具所做的测试中,它们使用了一些编码开销。我的问题是,它花了相当长的时间来预热,足够长,它是更快地使用CPU。显然是YMMV。