java - OpenCL 在 Java 中的原生程度如何?

标签 java .net binding parallel-processing opencl

我看到有一个针对 Java 的 OpenCL 绑定(bind)。这是否使人们能够真正使用 Java 进行编程,使用 CPU/GPU 等作为处理核心,还是仅仅让 Java 应用程序能够访问支持 C++ OpenCL 的方法?

出于兴趣,是否有 .Net 的 OpenCL 绑定(bind)?

最佳答案

启用 C++ OpenCL 的方法到底是什么?在 C++ 中,您可以访问 api 函数来创建上下文/缓冲区/内核/...,但是要在 GPU 上执行的代码必须使用 OpenCL C 语言编写,并作为源代码与应用程序一起分发(这意味着 OpenCL 是也不全是 C++ 原生的)。从我到目前为止所看到的来看,java也是如此(因此在这方面它与c++一样是 native 的或不是 native 的,除了c++比java更接近所使用的C方言(但不兼容)。

虽然应该可以从编译的 java 类创建 OpenCL C 源代码并将其提供给编译器,但创建编译器 java 字节码 <-> OpenCL C 需要相当多的努力,所以我认为它需要更多时间才能出现这种解决方案。此外,对可以输入到该系统的代码会有各种(看似任意的)限制(例如,没有递归)。但是,如果我没记错的话,Python 的本地解决方案已经存在,所以可能不会花那么长时间。

当然,我不知道每一个 Java 库,并且将 OpenCl 与 java 结合使用现在不在我的待办事项列表中,因此我可能对没有“ native ”绑定(bind)是错误的。

有 .Net 的绑定(bind),例如http://sourceforge.net/projects/cloo/

关于java - OpenCL 在 Java 中的原生程度如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797063/

相关文章:

c# - 如何使用 EMGU CV 获得人脸识别的置信度值?

WPF:有没有办法在不使用值转换器的情况下绑定(bind)到 Nullable<Int32> 属性?

java - 从欧洲/伦敦时间转换为 UTC 时出现的问题

.net - 尝试使用 TdDataAdapter.Fill() (Teradata DataAdapter) 填充 DataTable 时出现 System.Net.Sockets.SocketException

c# - 什么是 ICustomTypeDescriptor 以及何时使用它?

java - Hornetq 嵌入,找不到任何地址绑定(bind)

c# - 为什么我的 StatusBar 在我工作时没有更新?

java - 如何在运行时向 JXTable 添加新行?

java - 在 ubuntu Precision 64 上使用 apt-get 安装 JDK

java - 在 Java 中动态添加命名空间到 SOAP Envelope