使用MacPro(Firepro D500)时OpenCL的准确性和性能问题
我在多台机器上运行同一个OpenCL内核时遇到了一个奇怪的问题。请参阅下文:使用MacPro(Firepro D500)时OpenCL的准确性和性能问题,opencl,osx-yosemite,gpgpu,amd,Opencl,Osx Yosemite,Gpgpu,Amd,我在多台机器上运行同一个OpenCL内核时遇到了一个奇怪的问题。请参阅下文: OS OpenCL version GPU Output Accuracy LINUX 2.0 AMD-R9 290X Good Mac 1.2 Nvidia GT-750M
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
我在苹果论坛上发了帖子,收到的唯一回复是我应该禁用快速路径数学。我不会在任何地方启用它
就性能而言,与列表中的其他离散GPU(特斯拉和R9)相比,Firepro上的代码运行速度慢了两倍
有人能告诉我发生了什么事吗?如果需要,我很乐意与大家分享代码
以下是OpenCL内核(一些变量/函数名不正确): 以下是如何从主机调用它:
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_大小”的工作项,或者每个单词一个波前,但这并没有提供很好的性能。即使是现在,性能也不是很好,但它在R9和特斯拉上提供了大约2.8倍的性能(与6核Xeon相比)
如果需要更多细节,请告诉我 由于核心数量和频率的原因,r9-290x的功率是D500的两倍。特斯拉的uArch和你的算法结合起来可能比D500和你的算法更好。“有人能告诉你可能发生了什么吗?如果需要的话,我很乐意分享代码。”——除非我们中间有读心术的人,否则没有人能猜出为什么一台设备会给你不正确的结果。是这样,;告诉我们您已经尝试了什么。@huseyintugrulbuyukisik,正如您从OpenCL内核中看到的,它是内存限制的。Firepro D500的峰值内存带宽为240 GBps,而特斯拉的峰值内存带宽为208 GBps。所以我希望能有更好的表现。