OpenCL算法加速

OpenCL算法加速,c,parallel-processing,opencl,C,Parallel Processing,Opencl,我编写了一个简单的Opencl算法,它使用我的GPU对图像应用过滤器。一切都很好,所以我决定写一个算法的C版本,它基本上执行相同的任务(在单核中)来比较不同的执行速度。这两种算法我分别运行了1000次,OpenCL版本的平均执行时间为1毫秒,而串行版本的平均执行时间为36毫秒,这是一个巨大的差异,因此我想知道这样的改进是否合理。您已经回答了您的问题:您的测试显示了36倍的加速。这并非罕见的结果。从单核CPU到GPU实现时,您可能看不到任何加速(在您的情况下,如果映像大小非常小,那么PCIe延迟将

我编写了一个简单的Opencl算法,它使用我的GPU对图像应用过滤器。一切都很好,所以我决定写一个算法的C版本,它基本上执行相同的任务(在单核中)来比较不同的执行速度。这两种算法我分别运行了1000次,OpenCL版本的平均执行时间为1毫秒,而串行版本的平均执行时间为36毫秒,这是一个巨大的差异,因此我想知道这样的改进是否合理。

您已经回答了您的问题:您的测试显示了36倍的加速。这并非罕见的结果。从单核CPU到GPU实现时,您可能看不到任何加速(在您的情况下,如果映像大小非常小,那么PCIe延迟将超过您获得的计算加速),一直到大约2000x(大映像/完全并行化算法,线程之间无需通信)取决于你的硬件。如果您想弄清楚您的实现到底有多好,请执行以下操作