为什么在没有 optirun 的情况下 glxgears 更快

Sup*_*ric 5 hardware nvidia nvidia-optimus bumblebee

使用集成显卡时,glxgears 似乎比使用 bumblebee 的 optirun 或 primusrun 激活显卡时要快得多。

当我使用 optirun 运行 glxgears 时,我得到约 1250 FPS。Primusrun 获得相同的帧速率。当我在没有显卡的情况下运行它时,我得到了大约 5500 FPS。

为什么显卡速度变慢?我正在使用全新安装的 Ubuntu 14.04。显卡是Nvidia GeForce GT 650M。

使用 optirun 运行它:

mkg@loam:~/projects/external/Theano$ vblank_mode=0 optirun glxgears 
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
5921 frames in 5.0 seconds = 1184.094 FPS
6359 frames in 5.0 seconds = 1271.791 FPS
6258 frames in 5.0 seconds = 1251.515 FPS
Run Code Online (Sandbox Code Playgroud)

不使用 optirun 运行:

mkg@loam:~/projects/external/Theano$ vblank_mode=0 glxgears 
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
28295 frames in 5.0 seconds = 5658.941 FPS
27970 frames in 5.0 seconds = 5593.883 FPS
Run Code Online (Sandbox Code Playgroud)

al0*_*l0s 0

Glxgears 不适用于基准测试,您应该使用 glxspheres 代替。这些结果在我的系统中类似,但无需担心没有问题。

将两张卡与 glxspheres 进行比较,检查是否有问题。

要安装 glxspheres:

从以下位置下载 VirtualGL (.deb): http ://sourceforge.net/projects/virtualgl/files/VirtualGL/

导航到包含 deb 包的文件夹并安装它

sudo dpkg -i VirtualGL_*.deb
Run Code Online (Sandbox Code Playgroud)

运行 glxspheres:

cd /opt/VirtualGL/bin/
Run Code Online (Sandbox Code Playgroud)

vblank_mode=0 ./glxspheres

使用 nvidia 卡运行:

vblank_mode=0 optirun ./glxspheres
Run Code Online (Sandbox Code Playgroud)

注意:“vblank_mode=0”用于禁用垂直同步,它会消耗大量电池电量。一般情况下不需要使用。

  • 你真的应该解释 **为什么** _“Glxgears 不适合基准测试”_ & _“无需担心没有问题”_。我认为真正的答案是: https://github.com/Bumblebee-Project/Bumblebee/issues/478#issuecomment-186781693 _“当使用 nvidia gpu 并有足够的数据时,bumblebee 必须通过 PCIe 总线复制帧, PCIE 链接速度不够快,无法提供所需的带宽。这就是为什么每个高 fps 基准测试或高 fps OpenGL 应用程序都会在大黄蜂中看到非常糟糕的性能“_ - 即处理多边形等将显示出好处,但简单地发送垃圾帧不会” t。 (2认同)