0

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

出于兴趣,.Net 是否有 OpenCL 绑定?

4

1 回答 1

1

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

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

当然,我不知道每一个 Java 库,并且将 OpenCl 与 Java 一起使用现在不在我的待办事项列表中,所以我可能对没有“本机”绑定是错误的。

.Net 有绑定,例如http://sourceforge.net/projects/cloo/

于 2010-09-26T10:52:03.340 回答