NVIDIA медленнее встроенного INTEL-a

Думается мне, что что-то тут не так. Бредятина какая-то. Высокопроизводительная дискретная карта почему-то работает в 2-3 раза медленнее встроенной. Зачем она тогда нужна? Энергии она жрет больше, а работает медленнее встроенной. Вроде бы как задумка-то как раз такая, что встроенная карта должна меньше потреблять но ценой потери производительности, а дискретная быстро работать но ценой большего потребления. А в нашем случае какая-то вообще нелепица получается.
Ха! Вот чего нарыл http://www.nvidia.in/object/geforce-gt-640m-le-in.html

Accelerate your laptops performance by up to 4x with cutting-edge NVIDIA GeForce GT 640M LE dedicated graphics. Compared to Intel HD 4000 Integrated Graphics.

Т.е. дискретная видюха должна в 4 раза быстрее интела работать. Так и то это 640LE у которой производительность еще ниже.
Вот еще проблема правда как я понял под Windows https://www.pcspecialist.co.uk/forums/showthread.php?19127-Intel-HD-4000-outperfoming-nvidia-640M-Help-!
Там правда все разрулилось обновлением дров.
Читал, читал тему, так и не понял. У вас сейчас драйвер нуво или нвидия? А еще glxgears - тест "ни о чем". Проверяйте производительность в реальных приложения.
Сейчас nvidia. Про нуво я упомянул, потому, что проблема была точно такая-же - низкая производительность, просто в случае с нуво я все списал на недоработку открытого драйвера.

Насчет glxgears c одной стороны конечно согласен, что синтетические тесты они не совсем то что надо.

Но во первых сама проблема была обнаружена как раз в реальном приложении (игрушка со стима). С optirun/primus производительность просела так, что стало заметно "невооруженным взглядом".

А во вторых glxgears это утилита, которая есть практически в любом дистре и которая выдает хоть какие-то осмысленные цифры, позволяющие проводить сравненния.

Ну и в третьих - хоть и синтетические бенчмарки они "ни о чем", но разница в 2-3 раза это все-таки существенный фактор, который трудно игнорировать даже в этом случае.
Тааак - нарыл еще подозрительную штуку

Intel
$ xdriinfo
Screen 0: i965

Nvidia
$ primusrun xdriinfo
libGL is too old.

Т.е. судя по всему DRI на nvidia не работает т.к. с ним в комплекте идет устаревшая libGL (относительно чего только она устарела не вполне понятно)
На этом я пока иссяк :(

Похоже проблемы такой или нет ни у кого или просто никто внимания не обращает.
Попробуйте с glxspheres и поиграйтесь с настройками:
https://wiki.archlinux.org/index.php/bumblebee#Optimizing_speed_when_using_VirtualGL_as_bridge

С glxgears у меня та же фигня, как у вас. А вот с glxspheres:
% glxspheres              
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ironlake Mobile 
41.386147 frames/sec - 43.620999 Mpixels/sec
44.117226 frames/sec - 46.499556 Mpixels/sec
44.358974 frames/sec - 46.754359 Mpixels/sec
% optirun glxspheres  
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: NVS 3100M/PCIe/SSE2
144.988679 frames/sec - 152.818068 Mpixels/sec
146.901145 frames/sec - 154.833807 Mpixels/sec
148.460658 frames/sec - 156.477533 Mpixels/sec
% primusrun glxspheres
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: NVS 3100M/PCIe/SSE2
62.187204 frames/sec - 65.545313 Mpixels/sec
59.840010 frames/sec - 63.071371 Mpixels/sec
59.833217 frames/sec - 63.064210 Mpixels/sec
Низкое значение primusrun получается из-за эффекта vsync:
https://github.com/amonakov/primus#faq

Но при vblank_mode=0 показатели не сильно увеличились:
% vblank_mode=0 primusrun glxspheres
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Polygons in scene: 62464
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: NVS 3100M/PCIe/SSE2
68.726311 frames/sec - 72.437532 Mpixels/sec
76.273895 frames/sec - 80.392686 Mpixels/sec
77.158359 frames/sec - 81.324910 Mpixels/sec
82.771930 frames/sec - 87.241614 Mpixels/sec
83.429963 frames/sec - 87.935181 Mpixels/sec

А у вас?
C glxspheres я тоже экспериментировал, но на всякий случай попробовал еще раз (все таки много чего менял). Вот, что у меня получилось:

Intel

$ vblank_mode=0 glxspheres
Polygons in scene: 62464
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile
196.493652 frames/sec - 219.286916 Mpixels/sec
227.635506 frames/sec - 254.041224 Mpixels/sec
227.148957 frames/sec - 253.498236 Mpixels/sec

Nvidia

$vblank_mode=0 primusrun glxspheres
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Polygons in scene: 62464
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 640M/PCIe/SSE2
199.666247 frames/sec - 222.827532 Mpixels/sec
204.844571 frames/sec - 228.606541 Mpixels/sec
204.993964 frames/sec - 228.773264 Mpixels/sec

$ vblank_mode=0 optirun glxspheres
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 640M/PCIe/SSE2
215.914315 frames/sec - 240.960375 Mpixels/sec
226.120276 frames/sec - 252.350228 Mpixels/sec
226.914442 frames/sec - 253.236517 Mpixels/sec

Ну что - результаты хоть и улучшились, но все одно интел быстрее, хотя в случае с optirun практически идентичная производительность.
Я по прежнему не удовлетворён. Заявленная цель не достигнута - дискретная карта не дает никакого прироста производительности, а только лишь ненужный нагрев и потребление энергии.
vdemin
Низкое значение primusrun получается из-за эффекта vsync:
https://github.com/amonakov/primus#faq

Категорически не согласен - vblank_mode=0 выключает vsync, иначе мы будем видеть не реальный FPS, а синхронизированный с частотой обновления экрана, т.е. всегда значение порядка 60 в обоих случаях и соотвественно не сможем их сравнить.

По ссылке как раз и говорится про, то, что выключение vsync это ненужная потеря энергии т.к. нет смысла обрабатывать картинку быстрее, чем частота обновления экрана. Но бенчмарки надо делать именно с выключенным vsync т.е. vblank_mode=0.
 
Зарегистрироваться или войдите чтобы оставить сообщение.