我想利用今天的GPU能力(CUDA等)来加速我的科学计算应用程序。但我不想花时间编写C / C ++代码。我更喜欢Scala,但也可以使用Erlang,Haskell,F#,C#,Java,Python或其他类似水平的语言。这可能吗?
ScalaCL 是为 Scala 开发的主要技术。它通过一组专用集合将任务传递给 OpenCL,从而实现 GPU 加速计算。
此外,还有 ScalaCL 插件,是 ScalaCL 的一部分。它是一个编译器插件,可以自动重写代码,使用 OpenCL 绑定进行加速,无需额外工作!
Java和Python都有OpenCL的绑定。
你需要使用CUDA或OpenCL编写GPU代码,除非你找到了一个可以对循环进行基本并行化的库。
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#)