Parallel processing POCL(便携式计算语言)和OpenCL有什么区别?

Parallel processing POCL(便携式计算语言)和OpenCL有什么区别?,parallel-processing,opencl,llvm,pocl,Parallel Processing,Opencl,Llvm,Pocl,POCL(便携式计算语言)和OpenCL之间的区别是什么?POCL的优势是什么? POCL是否有一种类似C的语言,它不同于OpenCL、不同的编译器(Clang>=3.2)、不同的后端(llvm)、更好的可移植性,或者其他什么 什么时候我们需要使用(硬链接)OCL,什么时候需要使用ICD? OpenCL是由Khronos维护的规范。AMD、NVIDIA、英特尔和苹果等供应商提供了许多实施方案。为了称自己为OpenCL的实现,供应商必须通过一致性测试,成为Khronos的成员,可能还有其他一些事

POCL(便携式计算语言)和OpenCL之间的区别是什么?POCL的优势是什么?

POCL是否有一种类似C的语言,它不同于OpenCL、不同的编译器(Clang>=3.2)、不同的后端(llvm)、更好的可移植性,或者其他什么

什么时候我们需要使用(硬链接)OCL,什么时候需要使用ICD?
OpenCL是由Khronos维护的规范。AMD、NVIDIA、英特尔和苹果等供应商提供了许多实施方案。为了称自己为OpenCL的实现,供应商必须通过一致性测试,成为Khronos的成员,可能还有其他一些事情

POCL(Portable Computing Language,前身为Portable OpenCL)是类似OpenCL的开源实现,但它仍在进行中,尚未通过一致性测试,因此它还不是真正的OpenCL实现。我想他们的目标是在未来成为一个,并祝他们好运

因此,您的区别在于:一个是规范,另一个是该规范的实现

我假设POCL对内核使用相同的基于C99的语言,如果它们的目标是与OpenCL兼容的话


有关POCL的更多信息,请访问:

POCL与任何其他opencl平台类似。它在x86/arm和更多系统上提供了opencl cpu设备。它几乎符合opencl 1.2标准,只是它没有cl_gl共享等功能。它使用clang/llvm来利用cpu中的所有cpu核心和向量单元

opencl是一个规范,pocl实现了这个规范,为您提供了一个带有cpu设备的平台

说到ICD,当您安装了多个opencl平台时,您可以链接到ICD。从khronos编译这个icd代码,您将拥有一个icd加载程序,它可以加载任何opencl平台。
硬链接到平台“.so”是可能的,比如libpocl.so,但其他已安装的平台在clGetPlatformIDs调用中不可见。所以ICD更好

所以,OpenCL是一个标准,POCL是这个标准OpenCL的一个实现,将来,当通过一致性测试时,POCL中的书面程序可以在AMD、NVIDIA、Intel和Apple等供应商的OpenCL的任何实现中编译,是吗?我不能肯定地说,因为我不知道POCL,但似乎编写POCL的程序可以在其他OpenCL平台上使用,只要您在编写它们时遵循标准OpenCL。