首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OpenGL中,SLI是如何决定哪个VBO属于哪个GPU的?

在OpenGL中,SLI是如何决定哪个VBO属于哪个GPU的?
EN

Stack Overflow用户
提问于 2015-04-13 16:04:56
回答 1查看 280关注 0票数 5

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

我有一个代码,它有大量的顶点/面,由VAO用三个不同的VBO(顶点,颜色,索引)表示。使用带有SLI的双GPU不会增加fps。

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

我还试着注释掉其中一个VAO的glDrawElements调用,它确实显示了双FPS和闪烁场景,与预期的实际场景和黑屏一样。

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 17:29:58

正如前面提到的here

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

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

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

编辑:Read these interesting points about SFR and AFR。事实证明,AFR适用于较重的顶点加载,而SFR适用于像素着色器加载。即使对我来说,这也是一个有趣的发现。当使用AFR时,你也应该确保你是双缓冲的,以最大限度地利用它。缺少多个缓冲区会扼杀AFR。关闭你的vsync -它也会杀死它!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29600589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档