最近我编写了同一个程序的几个版本(生成朱莉娅集 - 尺寸为 17200x17200 像素的分形图片)来检查几个不同解决方案的性能。
我写了以下版本:
- CPU(pthreads)-252s/1 个线程、131s/2 个线程、114s/3 个线程、95s/4 个线程
- CUDA——2.51 秒;)
- OpenCL - 在 GPU Nvidia 实现上耗时 3.39 秒,在 CPU Intel 实现上耗时 16.51 秒
测试平台:Intel Core i5 520M、GeForce 330M
我的问题是:如何解释 OpenCL CPU 得分?我预计标准实现的结果接近 4 个线程 - 大约 95 秒,但实际花费的时间要少得多。程序运行时 CPU 繁忙度达到 390%。怎么会这样?
OpenCL 是否同时使用我的 Core i5 和集成 Intel HD Graphics?