【问题标题】:How does SLI decide which VBO belongs to which GPU in OpenGL?SLI 如何决定 OpenGL 中哪个 VBO 属于哪个 GPU?
【发布时间】:2015-06-18 11:36:52
【问题描述】:

我的目标是在 AFR 模式下使用 SLI 来提高 FPS。我的印象是 NVIDIA SLI 驱动程序会自动智能地将 VBO 分配给各个 GPU。这是正确的吗?

我有一个代码,其中包含由 VAO 表示的大量顶点/面,具有三种不同的 VBO(顶点、颜色、索引)。使用双 GPU 和 SLI 不会增加 fps。

我复制具有相同顶点/面的 VAO 和 VBO,并在两个 VAO 之间交替调用 glDrawElements,希望 NVIDIA SLI 驱动程序足够聪明,知道一个 VAO 用于一个 GPU,但不幸的是仍然没有增加 fps。谁能告诉我我做错了什么?

我还尝试为其中一个 VAO 注释掉其中一个 glDrawElements 调用,它确实显示双倍 FPS 和闪烁的场景,实际场景和黑屏符合预期。

【问题讨论】:

  • 你得到什么帧率数据?如果您正在绘制非常简单的几何图形,那么您可能会受到 CPU 而不是 GPU 的限制。此外,仅当您有一个相当复杂的场景时,SLI 才能发挥其作用,其中一个 GPU 渲染单个帧的时间比一个显示器刷新周期所花费的时间长。
  • @datenwolf 我得到的 fps 大约是 25~30,场景来自一个 ply 文件,我正在按原样绘制。有很多顶点/面,但没有照明/阴影等,所以我不确定这是否“复杂”。我确定的一件事是,如果我只加载一半的顶点/面,则 fps 加倍。 SLI 不应该在这种情况下提供帮助吗?

标签: opengl gpu frame-rate fbo sli


【解决方案1】:

here所述,

值得注意的是,虽然帧到达的频率可能是 翻倍,产生帧的时间并没有减少

此外,我从未听说过专用于一个 GPU 的 VAO 或 VBO。据我所知,两个适配器都有相同的克隆缓冲区。复制发生在您甚至不知道的情况下,每个 GPU 都使用自己的副本来生成帧的一部分。我可能错了,但我对此表示怀疑。

这就是为什么如果您有 2x2 GB VRAM 适配器,您不会获得 4GB VRAM。您仍在使用 2 GB。此外,如果您的 SLI 适配器具有不同的容量,则较大的卡的内存会降低以与较小的卡对齐。您获得的所有性能提升都来自两个 GPU 的并行处理能力,以及您的内存带宽是两倍大的事实。据我所知,内存写入是硬件多播的,因此没有太大的开销。

编辑: Read these interesting points about SFR and AFR。事实证明,AFR 推荐用于重顶点负载,而 SFR 更适合像素着色器负载。即使对我来说,这也是一个有趣的发现。使用 AFR 时,您还应该确保双缓冲以充分利用它。缺乏多个缓冲区实际上会杀死 AFR。关闭你的垂直同步——它也会杀死它!

【讨论】:

  • 您是否还在“用相同的顶点/面复制 VAO 和 VBO,并在两个 VAO 之间交替调用 glDrawElements,希望 NVIDIA SLI 驱动程序足够聪明,知道一个 VAO 用于一个 GPU” ?
  • 您是否考虑过检查您的 FPS 计算代码、进程优先级设置、睡眠上限等?如果不是这样,我猜你最大的瓶颈不是渲染,而是内存输出。您应该考虑压缩顶点。你在渲染什么样的几何图形?它是否局限于某个恒定范围?你需要颜色吗?有多少个索引?
  • “带颜色的索引”是什么意思?此外,5000 万个索引占用了多达 190 MB 的 VRAM,这并不是那么致命。你有多少个顶点?您是否有与这些顶点相关的颜色、纹理坐标、法线等。我怀疑除了更好的硬件之外的任何东西都能够处理大数据。但是,您甚至没有提到您实际使用了多少数据。
  • 在处理图形优化时,您需要做三件事:1. 预计算,2. 压缩,3. 使用您可以挤出的所有硬件功能。我不知道 SLI 是否可行,因为条件太多。你在笔记本电脑上吗?您是否从 nVidia 控制面板打开了 SLI?您是否配备了两个相同的适配器?您是否处于高性能电源模式?您分配的 VRAM 是否比您拥有的多?
  • 我有 25M 顶点和 50M 索引,每个顶点都有 8x3 位顶点颜色。没有纹理没有法线。我只是从 ply 文件中加载数据并显示它。我在台式机上,SLI 已打开,配备了两个 GTX 泰坦黑,在高性能电源模式下,每个都有 6GB 的 VRAM,GPU-Z 显示我没有使用超过限制的 VRAM。
猜你喜欢
  • 2012-06-22
  • 2022-06-17
  • 1970-01-01
  • 2019-05-18
  • 2010-10-14
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
相关资源
最近更新 更多