OpenGL 多 GPU 支持

OpenGL multi-GPU support

当我们在PC上创建OpenGL上下文时,有没有办法选择使用哪个物理设备或多少个设备?最新的 OpenGL (4.5) API 是否支持多 GPU 架构?如果我有两张相同的显卡(例如,两张 Nvidia GeForce 卡),我该如何正确编程 OpenGL API 才能从我有两张卡的事实中获益?如何轻松地将 OpenGL 程序从单 GPU 版本转移到多 GPU 版本?

OpenGL 驱动程序公开多个 GPU(在 Crossfire/SLI 配置中),就好像它们是 单个 GPU 一样。在幕后,驱动程序将(理论上)弄清楚如何在两个 GPU 之间高效地调度渲染调用。有几种方法可以做到这一点,您对驱动程序选择哪种机制的控制是零。

如果您想更直接地控制哪个 GPU 与哪个 GL 上下文相关联,则必须使用特定于供应商的扩展。 AMD 有 WGL_AMD_gpu_association, while NVIDIA has WGL_NV_gpu_affinity.