【问题标题】:OpenGL/OpenCL interoperability on headless server?无头服务器上的 OpenGL/OpenCL 互操作性?
【发布时间】:2014-10-30 07:39:11
【问题描述】:

有没有办法在无头服务器上运行使用 OpenGL/OpenCL 互操作性的应用程序?也许没有硬件加速。也许使用一些库进行屏幕外渲染。

现在有很多流行的云持续集成服务,例如drone.io 或 travis-ci。但是测试使用 OpenGL/OpenCL 的项目似乎仍然是个问题。

【问题讨论】:

  • 如果您的服务器上没有运行 X 服务器,我想您可能只是运气不佳(没有虚拟化,此时您不妨只在本地测试一次)。我同意测试图形程序是一个问题,你确定没有专门的服务提供硬件加速的盒子吗?必须有市场。
  • 到目前为止,我看到的唯一选择是使用专用服务器,但它们通常很贵,尤其是如果你想在其中安装显卡。

标签: opengl opencl headless


【解决方案1】:

OpenGL/OpenCL 互操作通常与 OpenGL + OpenCL 实现的特定组合相关联。通常,唯一可以协同工作的实现组合是在同一个 GPU 驱动程序包中找到的那些。

Mesa 实际上有一些 OpenCL 支持,但老实说,我不知道它的工作情况如何,它的限制是什么等等。当然,OpenCL 只有在你有一个大规模并行化处理器可用时才最有用,比如 GPU 或 CPU 集群。英特尔针对他们的多核 CPU 制作了一个 OpenCL 实现,但我不知道它与任意 OpenGL 实现的效果如何(如果有的话)。

如果您有可用的支持 OpenCL 的 GPU,那么最简单的方法是启动 X11 服务器,而无需配置或仅配置虚拟屏幕(是的,这是可能的)。

【讨论】:

  • 英特尔运行时至少在 Windows 上与 OpenGL 配合得很好,我能够在 CL 和 GL 之间共享图像、缓冲区和内容。我想既然它是一个 CPU 实现,它只是将请求传递给实际的 OpenGL 驱动程序并透明地映射/复制 - 为了“正确”有效的互操作,你当然需要两个实现来合作。
  • 那么它可能会与 mesa OpenGL 互操作,至少对于远程测试这个解决方案就足够了。
猜你喜欢
  • 2013-07-27
  • 2012-04-12
  • 1970-01-01
  • 2016-08-18
  • 2019-11-05
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多