在多台计算机上运行相同的OpenCL内核时遇到了一个奇怪的问题。请参阅以下内容:
OS OpenCL version GPU Output Accuracy
LINUX 2.0 AMD-R9 290X Good
Mac 1.2 Nvidia GT-750M Good
Mac 1.2 AMD Firepro D500 Incorrect
LINUX 1.1 Nvidia Tesla K20 Good
我发布在Apple论坛上,我收到的唯一回复是我应该禁用快速路径数学。我没有在任何地方启用它。
就性能而言,与列表中的其他独立GPU(Tesla和R9)相比,Firepro上的代码运行速度慢两倍。
有人可以告诉可能会发生什么吗?如果需要,我很乐意分享这些代码。
这是OpenCL内核(某些变量/函数名称不合适):http://pastebin.com/Kt4TinXt
以下是从主持人那里调用它的方式:
sentence_length = 1024
num_sentences = 6
count = 0
for(sentence in textfile)
{
sentences += sentence
count++
if(count == num_sentences - 1)
enqueuekernel(sentences)
}
句子基本上是一组1024个单词。并行度在单词级别。我选择每个单词使用128个工作项,因为这样我就可以将neu1和neu1e保留在共享内存中。我尝试了其他组合,比如' layer1_size'每个单词的工作项目,或每个单词1个波前,但这根本没有提供良好的性能。即使是现在,性能也不是那么好,但它在R9和特斯拉上给了我大约2.8倍(与6核Xeon相比)。
如果需要更多细节,请告诉我们!