3
当程序在GPGPU上运行时,如果使用OpenMP和OpenCL实现,它的执行方式会有什么不同?OpenMP与OpenCL的区别在于GPGPU?
OpenMP是否通过OpenCL使用GPGPU? 如果不是,我可以直接使用它们的普通GPGPU API(没有任何OpenMP/OpenCL构建于其上)?
P.S.在Linux上,OpenMP仅使用pthread来管理线程。除了OpenCL和CUDA之外,我找不到任何其他GPGPU的API,所以很明显(但非常痛苦)承认OpenMP,当谈到GPGPU时,使用OpenCL(或者如果GPGPU是NVIDIA和OpenMP,那么CUDA是智能)。
OpenMP编译器和运行时供应商决定如何实现GPGPU卸载。技术和实施API有所不同。 –
@HristoIliev感谢您的评论。 GPGPU开发周期的理解现在已经搞乱了:据我所知,OpenCL公开了标准,GPGPU开发人员(和Xeon Phi)应遵循的标准称为_OpenCL compatible_。今天他们都是这样称呼的,所以有可能假设这样的硬件朝着OpenCL架构发展。好,但!我们有OpenMP的存在,它也提供了与OpenCL不同的GPGPU接口。因此,OpenMP通过OpenCL使用GPGPU,或者有两种GPGPU开发标准,这是不太可能的。 – Slav