как проверить, какой gpu активен в linux?

<p>у меня есть 2 графических процессора в моем нетбуке. как узнать, какой из них я использую в данный момент?</p>

<p>я только что прошел через адское время, пытаясь заставить мою дискретную графику работать в ubuntu, и отвечать на эти вопросы постоянно было непросто, поскольку упомянутый ранее метод lspci иногда может сказать, что оба являются <code>[vga controller]</code></p><p>я думаю, что следующая команда должна дать вам представление о вашем активном чипе:</p><pre><code>$ glxinfo|egrep "opengl vendor|opengl renderer" opengl vendor string: intel open source technology center opengl renderer string: mesa dri intel(r) sandybridge mobile для меня это говорит мне о том, что моя графика intel запускает шоу. если вы используете чип nvidia и используете пакет bumblebee, вы можете поставить перед этой строкой optirun, и он должен сообщить вам, что вы используете чип nvidia (optirun в основном говорит компьютеру использовать дискретный чип для запуска любой команды, но все остальное все еще использует интегрированный чип)$ optirun glxinfo|egrep "opengl vendor|opengl renderer" opengl vendor string: nvidia corporation opengl renderer string: geforce gt 555m/pcie/sse2 </code></pre><p><code>glxheads</code> также сообщает вам некоторую полезную информацию о том, какая видеокарта используется (в основном повторяет glxinfo в более компактной и удобной для чтения форме), и дает вам красивую визуализацию вращающегося треугольника.</p>

<p>чтобы проверить, какой gpu в данный момент находится в команде (то есть, который является активным контроллером vga), введите</p><pre><code>lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\s+\:\s+\])/' | grep vga </code></pre><p>любой контроллер с <code>[vga controller]</code> в конце ваш текущий активный графический процессор. остальные выключены. в следующем примере карта intel активна, а карта nvidia не используется:</p><pre><code>00:02.0 vga compatible controller [0300]: intel corporation core processor integrated graphics controller [8086:0046] (rev 02) (prog-if 00 [vga controller]) 01:00.0 vga compatible controller [0300]: nvidia corporation gf108 [geforce gt 540m] [10de:0df4] (rev ff) (prog-if ff) </code></pre>

<pre><code>nvidia-smi -l </code></pre><p>это дало мне то, что я хотел. эта команда показывает список графических процессоров, имеющихся на вашем компьютере. это может помочь вам понять, какие из них являются активными.</p><p>получил команду из потока здесь: <a href="https://devtalk.nvidia.com/default/topic/865161/ubuntu-box-with-multiple-nvidia-gpu-cards/">buntu box с несколькими видеокартами nvidia | devtalk.nvidia.com</a> </p>

<p><strong> <code>nvidia-settings</code> gui </strong></p><p>на ubuntu 15.10, после того как я установил <code>nvidia-352</code> и графический процессор работает:</p><pre><code>nvidia-settings </code></pre><p>показывает что-то вроде:</p><p> <a href="https://i.stack.imgur.com/p4auc.png"><img src="https://i.stack.imgur.com/p4auc.png" alt="enter image description here"></a> </p><p>обратите внимание, как это показывает:</p><pre><code>gpu 0 - (nvs 5400m) </code></pre><p>где <code>nvs 5400m</code> моя модель графического процессора.</p><p>затем, если я запускаю <code>glxgears</code>, использование графического процессора достигает> 90%.</p><p>поэтому я ожидаю, что если у вас будет несколько графических процессоров, вы сможете увидеть, сколько каждый из них используется одновременно.</p>

<p>какую ос вы используете? если вы используете lspci на большинстве linux-машин, вы получите список своих pci-устройств, просто grep для графических устройств, и он должен появиться на обоих. после этого просто проверьте конфигурацию каждого из них, вы должны увидеть детали up/on/active или что-то в этом роде.</p>

<p><code>nvidia-smi</code> очень полезно, но иногда я обнаруживаю, что оно не всегда включает в себя все. кажется, что при сбое процессов они не всегда перечислены.</p><p><code>sudo lsof /dev/nvidia*</code> всегда работал для меня. он также будет работать без <code>sudo</code>, но покажет только процессы, принадлежащие вам. если вы работаете на многопользовательской машине или используете докер, вы, вероятно, получите лучшие результаты с <code>sudo</code>.</p><p>если вы видите несоответствие между этими 2 командами, вы можете рассмотреть возможность использования <code>kill</code> дополнительных процессов, найденных с помощью <code>lsof</code>.</p>