在GPGPU方面,OpenMP与OpenCL有何不同?

时间:2016-03-06 12:38:43

标签: opencl openmp distributed-computing

当程序在GPGPU上运行时,如果使用OpenMP与OpenCL实现,它的执行会有什么不同?

OpenMP是否通过OpenCL使用GPGPU? 如果没有,我可以直接使用什么是常见的GPGPU API(没有任何OpenMP / OpenCL构建在它上面)?

P.S。在Linux上,OpenMP仅使用 pthread 来管理线程。除了OpenCL和CUDA之外,我找不到GPGPU的任何其他API,所以很明显(但非常痛苦)承认OpenMP,当谈到GPGPU时,使用OpenCL(如果GPGPU是NVIDIA,那么就是CUDA,OpenMP就是那么聪明)。

1 个答案:

答案 0 :(得分:0)

就我而言,OpenMP是一组编译器指令,用于在共享内存架构上提供并行性,而GPGPU通常不是这样的。 您可以将它们一起使用以存档更好的效果,也可以使用OpenACCOpenHMPPC++ AMP,它们可以替代它们,或者您可以使用{{3}这样的库}或AMD Bolt - 他们可以让您在不费力的情况下使用GPGPU。