2012-10-02 84 views
1

我期待在GPU上做一些编程,但不需要任何种类的3D或高级图形功能。基本上我需要做的就是调用函数,它能够非常快速地循环数千次迭代。我开始研究OpenCL,但似乎对OpenGL的支持远远低于OpenGL,因为我甚至可以在移动设备上使用OpenGL ES,在Web上使用WebGL。在这一点上,Web对我来说并不是那么重要,但是有没有一种可行的替代方案可以得到OpenGL的广泛支持,但更多用于计算?我希望能够在尽可能多的计算机和设备上运行。是否有任何可行的GPU访问替代OpenGL

编辑:我也在寻找各种显卡,从AMD,NVIDIA等

+3

GPU上的计算通常使用OpenCL(在所有GPU上)或CUDA(仅在Nvidia硬件上)完成。 –

+0

您可能感兴趣的工具http://www.silkan.com/ –

+0

您可能也有兴趣http://opengpu.net/EN/-collobarative R&D french project刚刚结束。 –

回答

4

OpenCL受到两家主要GPU制造商的支持,并且迄今为止是您的最佳选择。另一种选择是CUDA。我认为你最好提出一个问题:“如何使用OpenCL解决这个问题?”而不是简单地指出它不适合你需要完成的工作,因为仅仅根据上面的描述很难提出建议。

另请注意,OpenCL支持嵌入式配置文件,这意味着它在移动设备上有一定的支持。但iPhone目前不支持这一点。这是rumored,它会来到iOS 6,但这似乎还没有发生。 另请参阅this question,它解释了android和OpenCL如何一起工作。

+0

感谢您的意见。我需要在移动设备上提供支持,目前我没有看到OpenCL的可能性。虽然[PGCL](http://www.pgroup.com/products/pgcl.htm)在这个领域似乎有一些非常有希望的消息,但我仍然认为OpenGL有更多的支持,尽管它与我的很不一样我期望实现。 –

+0

几年前,我和一位研究人员一起工作,他正在使用OpenGL作为计算语言。然而,所有的工作在CUDA首次推出时都被放弃了。对于想在移动设备上使用高度并行语言进行高性能计算的人来说,似乎有些奇怪,尽管我可以看到一些用途。您确定这确实是您需要的吗?你能否进一步阐述你的实际需求?您是否考虑过将数据集传输到提供OpenCL的服务器,而不是消耗相关移动设备上的所有电源? –

+0

我基本上试图创建一个运行在GPU上运行数学方程的多个平台上的“引擎”。我为CPU创建了这个,但是我试图移植一些占用最多时间的函数。在移动设备上,如果使用某些功能,它将无法使用,速度非常慢。我正试图在GPU上运行这些非常大的循环,并且如果看起来合乎逻辑,可能会使用GPU进行更多的处理。有可能为不同的平台编写几个引擎,但我试图避免这种情况,因为我只是一个人。 –

1

最好的支持我猜测NVIDIA显卡的最佳模式,采用的是CUDA。现在已经非常成熟,并得到很好的支持。你可以在主网站上找到许多指南,并且它们写得很好,所以你应该能够快速地把它拿起来。

+0

但是CUDA特定于Nvidia(您不能与AMD GPU一起使用)。如果您想要为几个品牌的GPU编码,OpenCL可能更具关联性。 –

+0

@Basile Starynkevitch:是的,我提到CUDA适用于NVIDIA显卡。 OP说他已经尝试过OpenCL。 – Tudor

相关问题