我认为我有兴趣使用今天的GPU功能(CUDA等)来加速我的科学数字运算应用程序。但我不愿意花时间编写C / C ++。我更喜欢Scala,但不介意使用Erlang,Haskell,F#,C#,Java,Python,或者这个级别的其他语言。这可能吗?
答案 0 :(得分:18)
ScalaCL是Scala的主要内容。它通过一组专门的集合来工作,这些集合将通过OpenCL将工作推迟到GPU。
然后还有ScalaCL Plugin,ScalaCL的一部分。哪个编译器插件会自动重写一些代码以使用OpenCL绑定进行加速,无需额外的工作!
答案 1 :(得分:4)
不要忘记Matlab,Mathematica和Fortran,所有这些都有CUDA支持。 Mathematica也支持OpenCL。
答案 2 :(得分:3)
Java和Python具有OpenCL的绑定。
您必须在CUDA或OpenCL中编写GPU代码。除非你找到了一个基本完成循环并行化的库。
答案 3 :(得分:1)
http://en.wikipedia.org/wiki/CUDA#Language_bindings列出了Java的绑定(可以从Scala中使用,但需要一个适应层使它们更有用),.NET和Python。
另请参阅https://github.com/ztellman/penumbra(Clojure)和http://blogs.msdn.com/b/satnam_singh/archive/2009/12/15/gpgpu-and-x64-multicore-programming-with-accelerator-from-f.aspx以及http://tomasp.net/blog/accelerator-intro.aspx(F#)