将CPU和GPU与OpenCL结合使用时加速

问题描述 投票:-1回答:1

我有一个使用OpenCL在多个设备上拆分矩阵矢量乘法的应用程序。我在装有Intel Xeon CPU和三个相同的NVIDIA Kepler GPU的计算机上测试了该应用程序。如果使用2048x2048的输入大小,则与GPU相比,CPU的加速比约为1.4。与一个GPU相比,两个GPU的加速比为〜2,但是一个GPU加一个CPU的加速比仅为〜1.7。如果我使用三个设备,则结果与一个GPU相比非常相似:三个GPU的加速比约为3,但是两个GPU加上一个CPU的加速比仅为2.4。

所以我的问题是:当我用CPU替换GPU时,加速降低的原因可能是什么? CPU分别比GPU快。

performance opencl cpu gpu-programming
1个回答
0
投票

[当您说“与GPU相比,我的CPU速度提高了〜1.4”,这意味着您的CPU实际上比GPU快40%?

[在使用OpenCL蒙特卡洛代码(http://mcx.space/mcxcl和网页中链接的the paper中的图3b)之前,我曾遇到过类似的问题。

关键是工作负载平衡-如果您将工作平均分配给CPU和GPU,那么在许多情况下,您的速度可能不会比单独的CPU快很多(增加了额外的开销)。但是,如果您将更多工作负载分配给功能更强大的硬件,例如在GPU:CPU之间分配80:20,则总体上可能会增加。使用该工作负载分配比率,您可能会找到一个平衡点。

© www.soinside.com 2019 - 2024. All rights reserved.