我考虑在目前正在开发的消费产品中使用OpenCL。
进行一项小型研究我发现Mac OSX下通常有很好的支持。 Linux支持也相对较好,但我的目标受众不使用Linux。它仍然需要检查Windows中支持的程度。
关于Windows,我发现OpenCL distribution引起了一些担忧。
您是否有任何在Windows下面向消费者的产品中使用OpenCL的经验?我对OpenCL的GPU方面更感兴趣,特别是驱动程序支持。
答案 0 :(得分:4)
就像CUDA或Stream一样,OpenCL需要得到驱动程序的支持。大多数支持CUDA的GPU都支持OpenCL,并且具有一些最新的驱动程序(CUDA 1.0以上)。 事实上,如果您使用CUDA SDK 4.1编译,您的最终用户将需要比使用OpenCL时更新的驱动程序。
此外,OpenCL不受任何GPU架构的约束。虽然这对于专门设计的算法可能会有问题,但它不应该对正常的最终用户程序产生很大的影响。
至少在CUDA中,您只能编译针对当前已知主要版本优化的代码。在最终用户计算机上编译OpenCL内核可能允许在将来优化更新的二进制规范。
使作者崩溃的是,如果没有正确释放资源,Nvidia OpenCL报告的问题通常会发生很多。我一直看到类似的崩溃,直到我修复了一个没有发布创建的内核的泄漏。 我不是说这是它崩溃的唯一原因,但除了程序员错误之外,它对我来说似乎相当稳定。
答案 1 :(得分:1)
AMD和NVidia都支持大多数(全部?)GPU上的OpenCL
不幸的是,英特尔只在CPU上支持它,这有点毫无意义,如果你不得不坚持用户为你的应用程序提供单独的GPU,你也可以坚持认为他们有一个NVidia并使用CUDA。这限制了OpenCL的使用。