【发布时间】:2011-08-19 19:42:55
【问题描述】:
我在 OpenMP、TBB 和 OpenCL 中实现了一些正常的循环应用程序。在所有这些应用程序中,当我只在 CPU 上运行 OpeCL 而没有在内核中进行特定优化时,OpeCL 的性能也比其他应用程序好得多。 OpenMP 和 TBB 也提供了良好的性能,但远低于 OpenCL,这可能是什么原因,因为它们都是 CPU 专用框架,并且至少应该提供与 OpenMP/TBB 相同的性能。
我的第二个担心是,当谈到 OpenMP 和 TBB 时,在我的实现中,OpenMP 的性能总是比 TBB 更好,因为我不是那么专家,所以我没有调整它以获得非常好的优化。 OpenMP 在性能上通常比 TBB 更好吗?因为我认为他们甚至 OpenCL 都在低级别使用相同类型的线程池......任何专家意见?谢谢
【问题讨论】:
-
你的算法是什么?你的操作系统和编译器是什么?
标签: multithreading opencl openmp tbb