Gputest linux как пользоваться

Проверяем производительность графической карты (GPU) в Linux с помощью glmark

Измеряем производительность графической системы

Недавно, когда я добавил новую видеокарту NVIDIA в один из моих настольных компьютеров, мне стало интересно оценить и сопоставить мощность этой видеокарты с той, которая была у меня раньше.

Один из способов это сделать — использовать программу тестирования производительности (benchmark tools), которая для измерения аппаратной мощности графического процессора запускает серию «рисующих» тестов. Или проще, более мощными будут графические процессоры, которые могут в единицу времени обработать и отобразить больше изображений/графиков (кадров в секунду).

Glmark – инструмент для проверки производительности

В Linux существует не так много инструментов для тестирования графических процессоров, и, потратив некоторое время с google, я наткнулся на эту небольшую инструментальную программу, которая называется glmark . Она разработана Linaro.

Glmark запускает серию тестов, отображающих на экране 2D- и 3D- графику различного вида, а затем измеряется производительность в терминах FPS (число кадров, отображаемых в секунду). Затем для того, чтобы вычислить для графического процессора итоговый показатель, происходит усреднение значений fps по всем тестам.

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

Для того, чтобы понять, что показывают результаты работы glmark, я запускал glmark2 на нескольких машинах с разными конфигурациями графических процессоров. Все машины являются настольными ПК, и ниже для каждой машины приводится ее краткое описание

  1. M1 – материнская плата Intel DG35EC + QuadCore + 8GB + Ubuntu 13.10 => встроенная графическая система «Intel® Graphics Media Accelerator (Intel® GMA) X3500 onboard graphics subsystem» Незначительное/ограниченное аппаратное ускорение
  2. M2 — материнская плата Gigabyte GA-G41MT-ES2L+ QuadCore + 4GB + Ubuntu 13.04 => «Integrated Intel Graphics Media Accelerator X4500» Незначительное/ограниченное аппаратное ускорение
  3. M3 — материнская плата Intel DG35EC + Nvidia GeForce 210 (драйверы Nouveau) + QuadCore + 4GB + Linux Mint 17
  4. M4 — материнская плата Intel DG35EC + Nvidia GeForce 210 (проприетарные драйверы Nvidia) + QuadCore + 4GB + Linux Mint 17

Первое, что нужно сделать, это установить программу glmark. В Ubuntu/Linux Mint она по умолчанию доступна в репозиториях.

Тестирование

Все, что вам нужно сделать для запуска тестов, это запустить команду glmark2 без всяких параметров. Внутри окна будет друг за другом отображаться большое количество анимаций различного вида, а в терминале одновременно будут выдаваться измеренные значения fps. Следите за тем, чтобы одновременно не запускались какие-либо ресурсоемкие приложения, иначе результаты тестов могут быть искажены.

В конце всех тестов программа glmark выдаст итоговый результат. Более высокий результат должен указывать на более мощный графический процессор. Итоговые результаты каждый раз при запуске теста не будут повторяться и различаются. Но они похожи. Поэтому вы должны запускать программу glmark несколько раз (я запускаю ее 3 раза) и брать среднее значение.

В некоторых случаях конкретный тест может давать очень высокой или очень низкий результат. Я просто отбрасываю эти значения и снова запускаю программу glmark.

Все тесты проводились на ЖК-мониторе Samsung с разрешениеи 1360×768 @ 60 Гц.

Смотрим результаты

Теперь давайте взглянем на результаты работы и оценки, выданные glmark.

M1 – встроенный графический чипсет — Intel GMA X350

Эта машина имеет обладает самой слабой графической системой и тесты glmark даже не смогли завершиться, поскольку система прекращала свою работу где-то в середине тестирования. 3D-анимация прошла, но с трудом.

Итоговый результат приблизительно равен 240, что является довольно низким значением. На этой конкретной машине игра Supertuxkart почти не шевелится, а игра 0AD просто превращается в обои 🙂

Обратите внимание, что в качестве средства визуализации используется MESA, что указывает, что ускорение 3D в данный момент эмулируется программным обеспечением, а не поддерживается аппаратно. Так образом аппаратное ускорение недоступно.

M2 – графический чипсет — Intel GMA X4500

Это материнская плата Gigabyte с интегрированным графическим блоком Intel GMA. По сравнению с предыдущей машиной эта машина имеет несколько большую графическую мощность.

Команда lspci выдает следующую подробную информацию об аппаратных средствах

Glmark может на этой машине выполнить все тесты и результаты следующие .

Итоговый средний результат для этой машины приблизительно равен 350. Это сравнительно лучше, чем на нашей предыдущей машине, графический процессор которой был слабее.

На этой машине игра supertuxkart работает немного лучше. Но такие игры, как 0AD, не работают. Но, опять же, прямое отображение осуществляется с помощью MESA, так что аппаратное ускорение отсутствует.

M3 – карта Nvidia GeForce 210 с драйвером nouveau

Эта машина имеет такую же самую материнскую плату Intel с внешним графическим процессором серии Nvidia GeForce 210, подключенным через слот PCI. В ней используется чипсет nvidia, выпущенный под брендом Zotac, который имеет 1 Гб встроенной памяти и частоту работы ядра графического процессора 520 МГц.

Сначала мы собираемся протестировать его с драйверами Nouveau, используемыми по умолчанию, и посмотреть, как она работает. Следующий тест будет выполнен с использованием фирменных драйверов Nvidia.

Читайте также:  Opening bin file linux

Средняя итоговая оценка остается приблизительно равной 335. Несмотря на наличие отдельного графического процессора Nvidia, оценка указывает на плохую графическую производительность. Это вызвано тем, что производительность драйверов Nouveau недостаточна и они не используют весь потенциал карт nvidia.

Такие игры, как supertuxkart и 0AD работают очень хорошо.

Обратите внимание, что итоговый результат для этой машины меньший/равен результату для предыдущей машины. Во время тестовых игр было видно, что эта машина имела лучшую графическую производительность.

Это объясняется тем, что данная машина имеет отдельный выделенный графический процессор, который работает независимо. На предыдущей машине библиотеки MESA для выполнения графической работы использовали главный процессор и, несмотря на хороший итоговый результат, машина не могла пользоваться этим процессором в случаях, когда запускались реальные приложения.

M4 – карта Nvidia GeForce 210 с драйвером nvidia-331

Это та же самая машина, что и выше, но в ней вместо драйверов Nouveaи используются фирменные драйверы Nvidia.

Команда lspci выдает следующую подробную информацию об аппаратных средствах

Результаты работы и итоговая оценка, выдаваемые программой glmark, следующие

На этот раз итоговая оценка выше 500 и эта машина имеет очень достойную производительность графики, так что простые игры воспроизводятся без всяких проблем. Такие игры, как Supertuxkart и 0AD, работают отлично и без глюков.

Драйвер Nvidia воспроизводит графику GL, что означает, что аппаратное ускорение 3D-графики доступно и работает нормально.

Проверьте производительность своего графического процессора

Чтобы проверить графический процессор вашей системы, выполните команду glmark и просмотрите выданные данные и итоговую оценку. При использовании фирменных драйверов вместо свободных драйверов производительность должна быть высокой.

В сети нет для сравнения таблицы итоговых оценок, но из выполненных выше тестов можно сделать заключение, что если оценка выше 500, то это хорошо и что если GL_RENDERER не является драйвером MESA, то это указывает на то, что используется аппаратное ускорение.

Если GL_RENDERER является драйвером MESA, то 3D-рендеринг осуществляется с помощью программного обеспечения, а не с помощью аппаратных средств, и, следовательно, при воспроизведении 3D-приложений и игр производительность будет очень низкой.

Если вы на свою машину добавляете новую видеокарту, то первое, что нужно сделать, это — получить для нее наилучший драйвер. Фирма Nvidia для большинства своих современных видеокарт предоставляет драйверы для Linux, которые с Linux работают очень хорошо.

Для Linux вы можете получить список некоторых самых производительных графических процессоров по ссылке http://www.free3d.org /.

Подведем итог

Из приведенных выше тестов видно, что по мере того, как в каждом отдельном тесте растет итоговая оценка, постепенно возрастает значение FPS. Поэтому высокопроизводительные графические процессоры способны обеспечить рендеринг с большим значение FPS. Однако значение FPS не следует путать с частотой обновления монитора, которая равна 60 гц и останется такой.

Значение FPS, указываемое в тесте, сообщает, сколько кадров в секунду может обработать и сгенерировать графический процессор (или вся система).

Обратите внимание, что оценка glmark не является неоспоримым тестом производительности графической подсистемы. Как видно из третьего теста, результаты могут иногда вводить в заблуждение. Например, машина с высокой производительностью центрального процессора и без аппаратного ускорения может дать такую же оценку, как и машины с умеренной производительностью центрального процессора и низкой производительностью графического процессора. Это вызвано тем, что программы, осуществляющие рендеринг с использованием высокопроизводительного центрального процессора, сопоставимы по производительности мощности аппаратного ускорения низкопроизводительного графического процессора, работающего самостоятельно. Однако это ограничение инструментального средства, которое должно развиваться дальше с тем, чтобы могло использовать более сложные тесты и выполнять анализ, позволяющий дать более точную картину.

Так что теперь запустите программу glmark на своей машине и сообщите нам в комментариях о том, какую итоговую оценку вы получили, а также укажите марку/модель вашего графического процессора.

Источник

Оптимизация Linux для desktop и игр

В этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.

Лично я считаю часть, где я написал про тюнинг ядра все же немного устарела и современное железо уже априори выдает необходимую производительность для нормальной работы, но, как мне удалось заметить недавно, с играми все равно, даже сейчас, есть проблемы, даже на мощном железе.

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.

1. Купите SSD, если у вас его еще нет

Почему-то многие люди скептически относятся к SSD, хотя это первый и важнейший компонент компьютера, который собирается быстро работать.

Серьезно, все что описано дальше в статье даст вам какой-то прирост в производительности и времени отклика, но любой, даже самый дешевый SSD, сократит время запуска большинства программ до 0, что, визуально, будет очень заметно. Почти в любом компьютере (и сервере) главный тормоз это всегда дисковая подсистема и никакой HDD никогда не даст вам нужной скорости поиска (которая у SSD стремится к 0 мс). За все время общения с компьютерами и их апгрейда, только переход на SSD дал значительный прирост в скорости работы и отклике. Помните как медленно работают дискеты, какое у них огромное время поиска? Примерно вот так воспринимается жесткий диск после SSD.

Читайте также:  Windows default domain name

Так что если у вас еще нет SSD, то продолжать дальше смысла нет, ваш компьютер (хоть даже оснащенный 12-ядерным Xeon’ом) все равно будет работать медленно, так что вперед за покупками.

Касательно надежности: есть миф что SSD умирают спустя год. Его рождению мы обязаны первым SSD на бажных чипах SandForce. Естественно, любой новый SSD из магазина как минимум надежнее и долговечнее современных жестких дисков, так что не стоит беспокоиться по этому поводу вообще. Свой SSD я купил 2 года назад б/у, на то время он был в использовании год. Сейчас у него 11 681 часов наработки и использование ресурса 10%, так что при том же режиме использования, мне его хватит еще на 27 лет. Думаю, к этому времени технологии хранения данных уже несколько раз изменятся. Так что повторюсь, проблемы с надежностью более чем надуманы.

Более подробно о мифах SSD расписал товарищ Вадим Стеркин в своём блоге. Правда, блог у него о Windows, но сути это не меняет. Настоятельно советую почитать, очень интересно.

В Ubuntu 14.04 SSD работают из коробки, опция discard автоматом прописывается в fstab, кроме этого больше ничего не нужно делать.
В других дистрибутивах нужно проверять, есть ли эта опция у разделов на SSD. Стоит упомянуть, что данную опцию поддерживает только ext4. Для других ФС придется пользоваться fstrim из планировщика.

2. Таблица разделов

Не делите диски на разделы.

Для домашнего компьютера это бессмысленно и вредно. На SSD у вас должен быть один раздел для корня, там у вас будет хранится система и все данные. На HDD (если нужен) у вас должен быть один раздел с точкой монтирования в /mnt (у меня /mnt/data), где будут хранится большие малоиспользуемые данные (фильмы, музыка, игры). НЕ НУЖНО делать HDD точкой монтирования /home, так как в /home 99% программ хранит свои данные и постоянно к ним обращается, поэтому /home должен быть на SSD.

Повторюсь кратко: на SSD у вас должно быть все, к чему система постоянно обращается (пишет/читает)!

Не слушайте вредных советов по вынесению таких данных на HDD, как уже было сказано проблемы износа SSD нет, это миф, и большое число циклов записи вообще не влияет на долговечность SSD. Еще раз отсылаю к стате Вадима Стеркина, там это все описано более подробно и подкреплено объяснениями.

Насчет SWAP-раздела: он вам не нужен. Если у вас не хватает оперативной памяти, то OOM-killer будет прибивать ресурсоемкие приложения, если это происходит то докупите оперативки, благо ее цена не сильно кусается. Использование swap как расширителя оперативной памяти значительно замедляет работу компьютера. Есть много мнений, что без SWAP будут какие-то проблемы, но ИМХО, корни эти разговоров растут от Win9x и на сегодня это уже мифы, лично я не замечал никаких проблем от отказа от SWAP. Как пруф: на VPS сейчас редко увидишь подключенный SWAP и работают же как-то!
suspend-to-disk вам тоже не нужен, потому что холодный старт с SSD быстрее чем восстановление из спячки с HDD, так что пользуйтесь suspend-to-ram или выключайте компьютер полностью. Единственный плюс от свапа — возможность уйти в гибридную спячку, это когда система готовится к suspend-to-disk, но выполняет suspend-to-ram, так что позже, если все хорошо, идет простой выход из спячки, а если произошел сбой питания — то система восстановится с диска.

Я использую везде файловую систему ext4, так как с другими мне не удалось получить заметной разницы в производительности, а ext4 наиболее распространена, плюс имеются утилиты для восстановления данных (но не надейтесь на них, а делайте бэкапы). При создании используйте -T largefile или largefile4.

3. Используйте 64-битное ядро

От производительности оперативной памяти мало что зависит, от нее не увеличится FPS в играх и не станут быстрее запускаться приложения. Использование 64-битных приложений тоже не дает никакого прироста для обычных задач, только для очень специфичных математических расчетов и операций архивирования. Также, использование 64 ядра не требуется для адресации более 4 ГБ памяти, PAE позволяет адресовать до 64 ГБ памяти на 32 битной системе.

Но используя 64-битное ядро, приложения могут адресовать больше чем 4 ГБ памяти, что довольно полезно, так как иначе может возникать ситуация когда OOM-killer будет прибивать программы, хотя оперативки еще достаточно. Также на 64-битной системе можно адресовать сразу же всю физическую память, на 32 битной же все что выше

800 МБ надо постоянно ремапить, что несколько снижает скорость страничного обмена, хотя, как я уже сказал, это особо не влияет на скорость работы.

Еще замечал эффект, что OOM-killer может прибивать процессы, которые вроде бы еще не заняли 4 ГБ. У меня такое было с некоторыми играми. Проблема решилась переходом на 64 бита. Так что без 64-битного ядра уже никуда, хоть это и добавляет небольшие накладные расходы на использование памяти.

4. Используйте патсет pf-kernel

pf-kernel — это набор патчей для ядра linux, собранные украинцем Александром Наталенко (pfactum) направленные на улучшения desktop-experience linux-систем.

  • Патчсет -ck с BFS
  • BFQ I/O scheduler
  • TuxOnIce
  • UKSM

Наиболее полезными являются патчи BFS и BFQ, про которые уже очень много написано. BFQ борется с проблемой тормозов системы во время выполнения больших дисковых операций (знаменитый баг 12309, который по документам исправлено, но по факту продолжает досаждать), BFS — планировщий процессов, более подходящий для десктопной работы, чем те что идут в ядре. Например CFS, который используется по умолчанию допускает ситуацию, когда 2 процесса, которые требуют приоритет реального времени будут исполнятся на одном ядре, хотя другие ядра заняты низкоприоритетными задачами. Естественно, такое поведение приводит к глобальным тормозам. Зато «честный планировщик». BFS не такой «честный», но зато намного более приближен к реалиям настольных компьютеров с небольшим (большое — это 4096) количеством ядер.

Читайте также:  Хронология развития ос windows

Для установки, я качаю с kernel.org необходимую версию ядра без стабилизационнх патчей и накладываю на него pf-kernel. В общем случае это выглядит так:

Это очень важный патчсет, именно он позволяет системе быть отзывчивой, даже в моменты большой нагрузки. В результате, например, даже при максимальной нагрузке, время запуска приложений остается таким же, как и при простое!

Вот, например, скриншот htop при работе Dota 2 + The Sims 3 (multiseat):

При такой нагрузке на третьем экране можно спокойно работать и 25% (в 5-минутном окне по данным load-average) перегрузка CPU даже не чувствуется. Хотя, конечно, проц надо менять 🙁

5. Тюнингуйте ядро!

В ядре по умолчанию используются не очень оптимальные параметры, обусловленные историческим предназначением linux для серверов и доступности для отладки.

Так что делайте make xconfig

Я расскажу о наиболее важных опциях для оптимизации

Выключаем preemption, устанавливаем низкую частоту таймера и выключаем dynticks!

ДА! Мы действительно, даже вопреки документации к BFS отключаем «жизненно важные» опции для повышения отзывчивости системы. А причина в том что они — устарели, толку от них никакого и к тому же preemption негативно влияет на производительность.

Было время, когда у меня был одноядерный процессор, тогда еще в готовых ядрах не включали preemption и высокочастотный таймер, вот тогда, после включения этих опций был огромный эффект. А именно, тяжеловесное приложение, занимающее 100% CPU, даже при наличии дискового ввода-вывода и нехватке ОЗУ никак не влияло на интерактивность и отзывчивость. В те времена, еще кроме WinXP ничего не было, а подробно рассказывать как ужасно себя ведет XP в таких ситуациях, думаю, не надо, она обычно намертво виснет, заставляя тянуться к кнопке reset. Так что иметь систему, которая почти никогда не тормозит и не зависает было приятно.

Но те времена прошли, многоядерные процессоры и огромные объемы памяти сами по себе решают проблемы отзывчивости под нагрузкой, так что дополнительно решать их программными средствами не только бесполезно, но и вредно.

Так что идем в Processor type and features и выбираем для параметра Preemption Model значение No Forced Preemption (Server). Не пугаемся фразы «ocasional longer delays are possible» потому что данную проблему у нас эффективно решает BFS и многоядерный процессор. Как и написано в описании, мы выигрываем в «raw processing power».

Также, в целях оптимизации, для параметра Processor family выберите свой процессор.

Далее, устанавливаем для параметра Timer frequency значение 300 HZ. 100 все же будет маловато, да и смысла особого нет (читайте в описании почему), но вы можете поэкспериментировать. Также, 300 Гц нацело делится и на 25 и 30, что является типичными частотами для видео, это вносит свой вклад в борьбу с тирингом (это из хелпа. По факту, с тирингом успешно борется только тройная буферизация + vsync).

В этом разделе есть немало интересных опций, посмотрите, например можно выключить hot-plug для cpu и памяти, так как на десктопе это просто невозможно сделать (а выключать-включать на лету ядра редко кому нужно).

Так как у меня не ноутбук, я выключаю все что связано с энергосбережением, то есть к примеру выключаю поддержку CPU Frequency scaling вообще.

Теперь отключим динамический таймер. Не уверен точно, так как не проверял конкретно, но похоже именно эта опция приводит к постоянным «подергиваниям» на некоторых видео и особенно в играх. Так что идем General setup -> Timers subsystem и для опции Timer tick handling выбираем Periodic timer ticks (constant rate, no dynticks).

По умолчанию BFQ выключен и его надо включить а также выбрать используемым по умолчанию.

Идем Enable the block layer -> IO Schedulers включаем опции BFQ I/O scheduler и BFQ hierarchical scheduling support, для опции Default I/O scheduler выбираем, очевидно, BFQ.

Можно предварительно связать с исполняемыми файлами динамические библиотеки, что позволяет еще более уменьшить время запуска приложений. По этой теме есть отдельная статья от peter23.

7. Заключение

Самое главное, что я всегда замечаю — после наложения патчсета и тюнинга ядра уходят «подергивания» в играх. Чем слабее железо, тем заметнее эти подергивания, хотя у меня есть подозрения что это все же какая-то проблема в драйверах nVidia, потому что разные версии ведут себя по-разному.

Ради пруфов решил провести тесты с помощью Geekbench 3 из Steam и gputest, результаты которых немного странные:

3.14-pf:
Single-Core Score 2421
Multi-Core Score 8209
gputest: 3720 pts, 62 FPS

3.13-generic:
Single-Core Score 2646
Multi-Core Score 8414
gputest: 3713 pts, 61 FPS

Windows:
Single-Core Score 2572
Multi-Core Score 8242
gputest: 3634 pts, 60 FPS

Как видно, почему-то на «оптимизированный» вариант в тесте CPU набирает меньше попугаев, а в тесте GPU — больше. Только сейчас я заметил что тестировал разные ядра, возможно в этом и причина различий результатов. Как будет время, проведу эти же тесты на 3.16, надеюсь, удастся найти причину. Самое же веселое тут в том, что у Windows результаты хуже, особенно в 3D значительно.

Источник

Оцените статью