zOl*_*ive 60
AFAIK,JavaCL/OpenCL4Java是目前所有平台上唯一可用的OpenCL绑定(包括MacOS X,FreeBSD,Linux,Windows,Solaris,全部采用Intel 32,64位和ppc变体,这要归功于它使用JNA).
它至少在Mac和Windows上实现了从Java Web Start运行良好的演示(为避免Linux上的随机崩溃,请参阅此Wiki页面,例如此Particles Demo.
它还带有一些实用程序(GPGPU随机数生成,基本并行缩减,线性代数)和Scala DSL.
最后,它是最古老的绑定(自2009年6月起),它有一个活跃的用户社区.
(免责声明:我是JavaCL的作者:-))
Iva*_*van 12
好的CUDA是对C的修改,要编写CUDA内核,你必须用C编写代码,然后使用nvidia的CUDA编译器编译成可执行的形式.然后可以使用JNI将生成的本机代码与Java链接.从技术上讲,你无法从Java编写内核代码.有JCUDA http://www.jcuda.de/jcuda/JCuda.html,它为您提供cuda的一般内存/设备管理api和一些用CUDA和JNI包装的Java方法(FFT,一些线性代数方法) ..等等..).
另一方面,OpenCL只是一个API.OpenCL内核是传递给API的普通字符串,因此使用Java中的OpenCL,您应该能够指定自己的内核.可以在http://www.jocl.org/找到适用于Java的OpenCL绑定.
hal*_*arp 11
我一直在使用JOCL,我很高兴.
OpenCL相对于CUDA的主要缺点(至少对我而言)是缺少可用的库(Thrust,CUDPP等).然而,CUDA可以很容易地移植到OpenCL,并且通过查看这些库如何工作(算法,策略等)实际上是非常好的,因为你学到了很多东西.
小智 7
我知道现在已经很晚了,看看这个:https://github.com/pcpratts/rootbeer1
我没有使用它,但似乎比其他解决方案更容易使用.
从项目页面:
Rootbeer比CUDA或OpenCL Java语言绑定更先进.使用绑定,开发人员必须将对象的复杂图形序列化为基本类型的数组.使用Rootbeer,这是自动完成的.此外,对于语言绑定,开发人员必须在CUDA或OpenCL中编写GPU内核.使用Rootbeer,可以完成Java Bytecode的静态分析(使用Soot),并自动生成CUDA代码.
| 归档时间: |
|
| 查看次数: |
43881 次 |
| 最近记录: |