我可以在 OpenGL 中使用不同的多 GPU 吗?

2023-12-23

我读到OpenGL 多 GPU 支持 https://stackoverflow.com/questions/43811699/opengl-multi-gpu-support。我目前使用的是支持 OpenGL 4.5 的 NVIDIA 卡。我的 iGPU 是 Intel HD 610,我不知道它的 openGL 版本。现在我尝试将两者一起使用。我知道 DirectX 12 可以支持不同的 GPU。 OpenGL 是否同时支持 Intel iGPU 和 NVIDIA GPU?我可以在显示器上使用 iGPU 端口并在搅拌机中使用 NVIDIA 卡进行循环渲染吗? (最后一点很重要,因为我的显示器仅支持 VGA。)


OpenGL 的设计已经很久了,因此采用该 API 来处理多个 GPU 设备是有问题的。与 OpenCL 或 Vulkan 不同,OpenCL 或 Vulkan 从一开始就具有选择系统中可用的设备/驱动程序的一些基本含义,OpenGL(或特别是 - 将 OpenGL 绑定到窗口系统的 WGL、GLX、EGL 接口)没有任何 - 操作系统完全负责使用不明确的逻辑来选择驱动程序。

OpenGL实际上提供了什么:

  • GPU亲和力/在同一 OpenGL 驱动程序中选择(WGL_AMD_gpu_关联 https://www.khronos.org/registry/OpenGL/extensions/AMD/WGL_AMD_gpu_association.txt and WGL_NV_gpu_affinity https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_gpu_affinity.txt)。这允许管理同一供应商的 GeForce+GeForce 或 Radeon+Radeon(包括后一种情况下的 iGPU)的 GPU 串联,但不能管理不同供应商的 GPU。 Linux 上的 MESA 驱动程序还支持GLX_MESA_query_renderer https://registry.khronos.org/OpenGL/extensions/MESA/GLX_MESA_query_renderer.txt扩展,但到目前为止它只允许列出系统中所有可用的渲染器,而不能选择特定的渲染器。
  • 首选 GPUiGPU+离散串联。特定的 Intel+GeForce 串联提供驱动程序设置(通常在 NVIDIA 控制面板中),允许特定应用程序使用 iGPU 或 GeForce。应用程序还可能使用技巧(例如在 DLL 中导出符号)要求驱动程序优先选择独立 GPU 而不是 iGPU。无法在同一个应用程序中同时使用两个 GPU。另请注意,这仅适用于具有特殊 Intel+NVIDIA 驱动程序的笔记本电脑,不适用于普通台式机配置。
  • 主动GPU在其他多 GPU(桌面)配置中。操作系统完全负责使用不明确的逻辑来选择驱动程序。在交互式会话中,Windows 根据物理连接到哪个 GPU 主显示器来决定加载哪个 OpenGL 驱动程序(之前曾在某处说过,窗口位置改变了此逻辑,但对于现代 Windows 系统来说,情况似乎不再如此)。在 RDP 会话中,逻辑不明确且不可配置 - 它以某种方式根据 PCI-E 插槽中的 GPU 顺序确定;选择某些 GPU 的唯一方法是在设备管理器中禁用所有其他 GPU。

无论如何,即使在支持此功能的 API 中使用多个 GPU,也是相当复杂的事情,需要应用程序开发人员付出大量努力:管理多个设备、重复内存管理、分割渲染视口、平衡和同步。即使在最好的情况下,对于 2 个相同的 GPU 来说,收益也将远小于 2 倍,因为渲染管道的一部分必须在两个 GPU 上处理(例如在这个视频 https://youtu.be/eIlb688pUu4?t=599关于 VR 渲染器 - 因此 2 个 GPU 仅提供 30-35% 的性能提升)。

与此同时,由于额外的平衡问题以及不一致的 GPU(驱动程序)功能,在多 GPU 配置中使用不同的 GPU 更加令人头疼。在英特尔 iGPU + 离散 GPU 串联中,第一个不仅速度较慢,而且在 OpenGL 核心版本或扩展方面的能力较低。尽管如此,AMD 已经展示了一些多 GPU iGPU+独立 GPU 设置,这些设置具有一定的性能提升。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 OpenGL 中使用不同的多 GPU 吗? 的相关文章

  • 为什么我的 FPS 相机一劳永逸地滚动?

    如果我忽略四元数代数的肮脏细节 我想我理解了旋转和平移变换背后的数学 但仍然不明白我做错了什么 为什么我的相机一劳永逸地滚动 更具体地说 我应该如何从相机的方向 旋转矩阵 计算相机视图矩阵 我正在用 Python 编写一个简约的 3d 引擎
  • 在透明背景的 flutter 上播放视频

    我在 Blender 上做了一些复杂的 3D 动画 我想在 flutter 上播放它们 问题是 当我将动画导出到视频并将其放在我的 flutter 应用程序上时 透明背景消失了 我使用 video player 在 flutter 上播放视
  • glEnableVertexAttribArray 中“index”参数的含义以及(可能)OS X OpenGL 实现中的错误

    1 我是否正确理解 要使用顶点数组或VBO进行绘制 我需要所有属性在着色器程序链接之前调用glBindAttribLocation 或者在着色器程序成功链接后调用glGetAttribLocation 然后使用glVertexAttribP
  • OpenGL 着色器不与着色器程序链接

    我正在尝试使用 GLFW GLEW 添加着色器 我收到一个错误 指出着色器已加载 但它们没有有效的对象代码 这是我用于加载着色器的代码 class SHADER public void LoadShaders const char vert
  • lwjgl 3 , glUniformMatrix4 导致 jre 崩溃

    我正在使用 lwjgl 3 并学习现代 opengl 3 我想将统一矩阵发送到顶点着色器 以便我可以应用转换 我尝试过 但程序因此错误而崩溃 A fatal error has been detected by the Java Runti
  • WebKit 是否使用 OpenGL 来渲染 CSS 过渡?

    WebKit 是使用 OpenGL 来渲染 CSS 过渡 还是使用软件渲染 WebKit 只是一个前端 这取决于后端和硬件支持 谷歌浏览器使用skia http code google com p skia 作为后端 它可以使用软件或硬件
  • lnk1104:无法打开“LIBC.lib”链接

    使用 GLee 将着色器写入我的 OpenGL 项目并编译后 我收到了错误LNK1104 cannot open file LIBC lib 我尝试按照其他人的建议添加它并忽略它 但没有解决问题 有没有其他方法可以解决我错过的这个问题 以下
  • glBlitFramebuffer 渲染缓冲区和渲染全屏纹理哪个更快?

    哪个更快更高效 使用 OpenGL 纹理作为 CUDA 表面并在四边形上渲染 新样式 使用渲染缓冲区作为 CUDA 表面并使用 glBlitFramebuffer 进行渲染 None
  • 无法在 WSL2 上运行 OpenGL

    我尝试在 WSL2 上运行 OpenGL 代码 但在尝试运行可执行文件时出现以下错误 GLFW error 65543 GLX Failed to create context GLXBadFBConfig Unable to create
  • 为什么拥有单独的投影矩阵但结合模型和视图矩阵会有好处?

    当您学习 3D 编程时 您会被告知用 3 个变换矩阵来思考是最简单的 模型矩阵 该矩阵对于每个模型都是独立的 它根据需要旋转和缩放对象 最后将其移动到 3D 世界中的最终位置 模型矩阵将模型坐标转换为世界坐标 视图矩阵 对于大量对象 如果不
  • 使用 JOGL 和 Android OpenGL 编写可移植 Java 应用程序

    我计划编写一款可以在 PC 和 Android 上运行的 Java 3D 游戏 不幸的是 这两个平台似乎没有通用的 OpenGL API API 是否有显着差异 有没有办法在两个版本中使用相同的 3D 代码 这是不是一个好主意 Androi
  • OpenGL 3.1 中已弃用 glLineStipple

    glLineStipple在最新的 OpenGL API 中已被弃用 它被替换成什么 如果不更换 怎样才能达到类似的效果呢 我当然不想使用兼容性配置文件 抱歉 它还没有被任何东西取代 我想到的第一个模拟它的想法是几何着色器 您向几何着色器提
  • 使用 GLSL 直接在着色器中从位置计算平移矩阵

    我正在开发 C OpengL 程序以及 GLSL 顶点和片段着色器 我正在创建同一对象的多个实例 我只需要改变实例之间的对象位置 这是我所做的 我正在使用一个统一变量 它是一个变换矩阵数组 每个矩阵代表一个对象实例 MVP 也是一个变换矩阵
  • 使用 pyclutter 进行编程

    我是混乱 和 pyclutter 的新手 我一直在尝试使用 pyclutter 到目前为止我还没有找到任何好的教程 我的意思是没有真正正确解释的内容 我看到了几个示例程序 但是当我尝试使用 pyclutter 时 我没有得到任何好的结果 这
  • 简单的openGL程序无法在ubuntu中链接

    我正在尝试进入 opengl 编程 但无法编译我的第一个非常非常简单的程序 链接过程每次都会失败 我发现这个答案 https stackoverflow com questions 859501 learning opengl in ubu
  • wglCreateContextAttribsARB 函数崩溃

    我尝试写下代码 我有InitializeOGL 的代码 bool Ogl InitializeOGL bool vSync cout lt lt Init OpenGL lt
  • 如何从横滚、俯仰和偏航获取相机向上矢量?

    我需要从滚动角 俯仰角和偏航角 以度为单位 获取相机的向上矢量 以获得正确的外观 我已经尝试了几个小时不同的事情 但没有运气 这里的任何帮助将不胜感激 横滚 俯仰和偏航定义 3 轴旋转 从这些角度 您可以构建一个 3x3 变换矩阵来表达该旋
  • 如何使用现代 OpenGL 在透视投影中绘制对象的正交轴? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有带有透视投影的 3D 场景 我还可以选择场景中的一个对象 我需要为选定的对象绘制轴 问题是轴不会在透视投影中保存其大小 如果物体远离眼睛
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和

随机推荐

  • mac os x 下进程使用的内存

    给定PID 如何获取进程当前使用的内存 具体来说 我正在寻找 进程使用的私有物理内存 RAM 进程使用的交换空间 但我对映射文件和共享内存不感兴趣 简而言之 我想确定通过终止 PID 将释放多少内存 RAM 和交换 这有用吗 您可以使用ps
  • Django 中的 2 个表单、1 个视图、2 个 SQL 表

    我正在努力了解如何将两个 django 表单中的数据提交到两个单独的数据库表中相同的观点 我只想要一个提交按钮 尽管this https stackoverflow com questions 1395807 proper way to h
  • 一个按钮是否可以有 2 种不同的背景颜色(以及 css 按钮)

    我想要实现的就是这样的事情 你好 hi 位于两种颜色的中间 我让它适用于一种颜色和下面的另一种颜色 但希望颜色在文本中间分开 如果没有人能想出使用 css 的解决方案 我将使用按钮图像 尽量避免使用图像 编辑 当然CSS结果必须跨浏览器 即
  • 最后一个分叉的孩子不会死

    我的主进程分叉了两次 从而创建了两个子进程 这两个孩子是这样相互沟通的 ls more 现在的问题是 第二个孩子永远不会死 这是为什么 管道中的最后一个孩子什么时候真正死亡 删除一个wait 调用显示了预期结果ls more但给出了一些进一
  • 如何使用 SevenZipSharp 创建压缩的 SFX 文件?

    我将了解如何使用 SevenZipSharp 库创建 SFX 首先 我需要说我找不到任何属性来设置压缩级别 等等 当我尝试制作文件的 SFX 时 出现以下错误 Object reference not set to an instance
  • WinForms 中的 WPF 控件 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 NET 世界的新手 对 winform 的经验很少 我想知道是否可以将WPF与Winforms混
  • JavaScript 中 FileReader#readEntries 可以读取的目录最大文件数

    我正在创建一个 Chrome 应用程序 我必须读取目录的文件并且我正在使用目录入口API https developer mozilla org en US docs Web API DirectoryEntry and 目录读取器API
  • 如何创建一个程序来列出 Mac 中的所有 USB 设备?

    我对 Mac OS X 操作系统的接触有限 现在我开始使用 Xcode 并正在研究 I O 套件 我需要在命令行工具下在 Xcode 中创建一个程序 以便列出 Mac 系统中连接的所有 USB 设备 请有过这方面经验的人帮帮我 如果有人可以
  • Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用

    在让我的表单助手工作之前 我使用以下内容作为我的选择下拉列表 这非常适合调用我的 filter by city js erb 并更新一些其他值 使用
  • Python 3.7:将代理应用于 pip 安装的所有部分,无法维护代理变量

    我有以下问题 我正在使用命令 pip install pyinstaller proxy http webdefence global blackspider com 80 trusted host pypi python org 我遇到的
  • 通过正则表达式进行不区分大小写的有序单词搜索

    我刚开始使用 Perl 中的正则表达式 在尝试了各种在线教程之后 我想要编写一个正则表达式来匹配顺序指定的不区分大小写的单词匹配 我正在尝试确定字符串 A 是否由字符串 B 的单词或单词序列组成 并且我想不区分大小写地执行此操作 例如 如果
  • React 无状态组件 - 性能和 PureRender

    大家都说用stateless组件将提高应用程序性能 然而 我注意到在错误的地方使用无状态组件真的会reduce应用性能 发生这种情况是因为无状态组件总是渲染 即使属性没有改变 如果是stateful我们可以使用的组件PureComponen
  • 如何居中和左对齐图像?

    我正在创建一个图像库 希望图像的容器完全居中在页面上 但图像保持对齐 这是我想要的输出 但是 当我尝试做一个text align center在容器上 id gallery 我得到的图像显示如下 我尝试效仿之前的堆栈溢出问题 CSS 居中块
  • 从 Gradle 开始 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不知道像 Ant Maven 或
  • open()、_open() 和 fopen() 在 MSVC 编译器方面的区别?

    我发现这三个函数都与打开文件有关 open https msdn microsoft com en us library ms235491 v vs 120 aspx 此 POSIX 函数已弃用 使用符合 ISO C 标准的 open 反而
  • symfony2 和doctrine2 较短的实体名称

    谁应该摆脱在 DQL 查询中使用命名空间 我想为我的包中的所有学说请求分配默认名称空间 在查询生成器中使用默认命名空间也是完美的 我想拥有 dql select i from MyCompanyMySuperPuperBundle Issu
  • 有没有办法检查Java中的流是否是有限的? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我知道有infiniteJava 中的流 有没有办法检查流是否是有限的 像这样的方法isStreamFinite Stream
  • 如何在 Windows 7 中更改 git shell 的起始目录

    我下载并安装了 GitHub 提供的程序 包括 Git Shell 问题是我想将 Git Shell 程序的主目录设置为自定义目录 但我不知道该怎么做 我尝试从 Git Shell 快捷方式的属性菜单中更改 开始于 字段 但没有成功 任何人
  • 使列表尽可能不排序的函数

    我正在寻找一个函数来使列表尽可能不排序 最好用Python 背景故事 我想检查 URL 状态并查看 URL 是否给出 404 我只是用asyncio and requests模块 没有什么花哨 现在我不想让服务器超载 所以我想尽量减少同时检
  • 我可以在 OpenGL 中使用不同的多 GPU 吗?

    我读到OpenGL 多 GPU 支持 https stackoverflow com questions 43811699 opengl multi gpu support 我目前使用的是支持 OpenGL 4 5 的 NVIDIA 卡 我