偶然发现这个论坛主题dot product faster on cpu than on gpu using OpenCL,我再次被提醒,有些实例看起来像是为OpenCL *制作的,但是它们在何处使用,OpenCL并没有为我们提供增益。即我也有一个使用pyopencl代码的kmeans实现,它比简单的python代码快几倍,但仍然比kmeans的scipy函数快几倍。何时使用OpenCL?
那么你如何决定何时使用OpenCL?
- 你需要什么显卡?显卡必须要比'cpu'好多少。 Quadro FX 580与i7 860足够吗?
- 问题有多大?你需要数百万次的乘法才能获得某些东西或者有几百个足够的东西?
- 为了让OpenCL有价值,需要对kmeans或dot产品等“简单”算法进行多少优化?
或者是这些三角形的情况下,你只能(/不得不)选择三个角落中的两个,使其工作?
problem size /\ /\ / \ / \ /________\ GPU/CPU optimization
我知道,我以前有点太大胆的语言,标题和问题的。如果我能想出更合适的措辞,我会改变它。
谢谢。像点积,k均值或矩阵乘法
添加到什么里克已经提到的,如果问题规模大足够的话,你将几乎总是在将计算交给GPU的过程中获得良好的性能。所以如果一个给定的函数在CPU上比较慢(与CPU相比),那么如果它是GPU上实现的更大代码的一部分,则仍然可以隐藏开销,而不必承担主机之间的传输头(MAIN )和设备(GPU)内存。 – 2011-04-21 23:34:27