5

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

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

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

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

4

1 回答 1

1

正如这里提到的,

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

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

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

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

于 2015-04-14T09:29:57.723 回答