在OpenGL上实现OpenCL

时间:2016-04-27 09:24:05

标签: opengl opencl

我已经看到OpenCL得到了CPU实现以及一些GPU实现的广泛支持。

对于有GPU的情况,但没有可用的GPU实现,使用OpenGL实现OpenCL是否可行?

也许大多数操作都可以很好地映射到GLSL片段着色器甚至计算着色器。

如果这是可行的,从哪里开始?是否有任何'最小'的CPU OpenCL实现,可以开始实施?

2 个答案:

答案 0 :(得分:1)

  

对于有GPU的情况,但没有可用的GPU实现,使用OpenGL实现OpenCL是否可行?

可能:是的,当然。每台图灵完整机器都可以模拟任何其他图灵完整机器。

可行:OpenGL实现' GLSL编译器已经是主要的编译器,每个实现的编译器表现略有不同。 OpenGL本身有很多启发式选择代码路径。在OpenGL + GLSL之上使用临时搭建的OpenCL将会带来很大的痛苦。

必需:绝对不是:对于每个具有实际支持OpenCL所需功能的GPU,驱动程序无论如何都支持OpenCL,因此这不是问题。

答案 1 :(得分:1)

OpenCL对浮点运算的精度有一些非常明确的要求。 GLSL的要求更加宽松。因此,即使您在OpenGL之上实现OpenCL API,您也永远无法获得相同的行为

哦,如果你开始不这么想,Vulkan在这方面并不是更好。