SLI如何决定OpenGL中哪个VBO属于哪个GPU?

SLI如何决定OpenGL中哪个VBO属于哪个GPU?,opengl,gpu,frame-rate,fbo,sli,Opengl,Gpu,Frame Rate,Fbo,Sli,我的目标是在AFR模式下使用SLI来提高FPS。我的印象是,NVIDIA SLI驱动程序将自动、智能地将VBO分配给各个GPU。这是正确的吗 我有一个代码,它有大量的顶点/面,由VAO用三个不同的VBO(顶点、颜色、索引)表示。使用带SLI的双GPU不会增加fps 我复制了VAO和英伟达相同的顶点/面,并交替两个VAOS之间的GLD调用,希望NVIDIA SLI驱动程序足够聪明,知道一个VAO是一个GPU,但不幸的是,FPS没有增加。有人能告诉我我做错了什么吗 我还试着对其中一个VAO的一个Gl

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

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

我复制了VAO和英伟达相同的顶点/面,并交替两个VAOS之间的GLD调用,希望NVIDIA SLI驱动程序足够聪明,知道一个VAO是一个GPU,但不幸的是,FPS没有增加。有人能告诉我我做错了什么吗

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

如前所述

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

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

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

编辑:
. 结果表明,AFR建议用于重载顶点负载,而SFR更适合用于像素着色器负载。即使对我来说,这也是一个有趣的发现。在使用AFR时,您还应该确保使用了双缓冲区,以充分利用它。缺少多个缓冲区实际上会杀死AFR。关闭你的vsync,它也会杀死它

你得到的帧速率是多少?如果你画的是非常简单的几何图形,那么你可能会被CPU而不是GPU所限制。此外,只有当您有一个相当复杂的场景,其中渲染单个帧所需的时间比一个监视器刷新周期所需的时间更长时,SLI才能发挥其肌肉。@datenwolf如果我得到的fps大约为25~30,则该场景来自ply文件,我正在按原样绘制。有很多顶点/面,但没有照明/阴影等,所以我不确定这是否“复杂”。我确信的一件事是,如果我只加载fps加倍的一半顶点/面。SLI不应该帮助这种场景吗?你仍然在“复制VAO和VBOS,并具有相同的顶点/面,并交替两个VAOS之间的GLD调用,希望英伟达SLI驱动程序能够足够聪明地知道一个VAO是一个GPU”?你是否考虑过检查FPS计算代码,处理优先级设置,睡帽等?如果不是这样,我想最大的瓶颈不是渲染,而是内存输出。你应该考虑压缩你的顶点。您正在渲染哪种几何体?它是否被限制在某个恒定范围内?你需要颜色吗?有多少个索引?有颜色的索引是什么意思?此外,5000万个索引占用高达190MB的VRAM,这并不是致命的。你有多少个顶点?是否有与这些顶点关联的颜色、纹理坐标、法线等。我怀疑,除了更好的硬件之外,其他任何东西都无法应对大数据。但是,您甚至没有提到实际使用的数据量。预计算,2。压缩,3。使用您可以使用的所有硬件功能。我不知道SLI是否有效,因为条件太多了。你在用笔记本电脑吗?您是否已从nVidia控制面板打开SLI?您是否配备了两个相同的适配器?您是否处于高性能电源模式?您分配的VRAM比您分配的多吗?我有25M个顶点和50M个索引,每个顶点有一个8x3位的顶点颜色。没有纹理,没有法线。我只是从ply文件加载数据并显示它。我在桌面上,SLI已打开,配备两个GTX titan black,在高性能电源模式下,每个屏幕上都有6GB的VRAM,GPU-Z显示我使用的VRAM没有超出限制。