Pull to refresh
0

Хозяйка из настоящего — интегрированная графика (Intel GPU) 2013 или «миелофон у меня!»

Reading time 7 min
Views 83K

В феврале, когда многие еще раздумывали о том, не пора ли выкинуть новогоднюю елку, я решила, что уже пора познакомить читателей хабры с тем, что их ждет летом, и создала пост Гостья из будущего, рассказывающий про интегрированную графику (GPU) на тот момент готовящихся к выходу процессоров Intel под кодовым названием Haswell.

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

Итак, графический процессор Intel интегрирован во все без исключения мобильные, настольные и встраиваемые, а также в половину серверных моделей 4-ого поколения CPU Intel Core (известного перед выпуском как «Haswell»). Для интересующихся — Полный список моделей CPU со всеми характеристиками.

Это — седьмое поколение графических решений Intel, если начинать отсчет с культовой Intel740 (отсюда, кстати, и неофициальное название этого семейства Gen7) и третья версия микроархитектуры Intel HD Graphics, — та, которая использовалась еще в предыдущем семействе CPU — Ivy Bridge, но с некоторыми дополнениями и улучшениями, так что фактически эти GPU относятся к Gen7.5.

Вообще, начинать знакомство с имени — неоригинально. Но зато очень практично. В таблице ниже, взятой из материалов IDF 2013, приведено соответствие предрелизных обозначений модификаций Intel GPU 2013 с их официальными наименованиями, а также областью применения.


Младшая модификация GT1 с 10 исполнительными устройствами (EU) называется просто Intel HD Graphics,
GT2 с 20 EU — это, в зависимости от частоты, Intel HD Graphics 4200/4400/4600.
Haswell GT3 с 40 EU, способный работать на максимальной частоте 1.1GHz, именуется Intel HD Graphics 5000. Кстати, именно эта модель использована в MacBook Air.
И, наконец, две топовые версии с 40 EU и частотой 1.3GHz, получили имя собственное Iris, что можно воспринимать или как просто «красивое женское имя» или как «радужку глаза»: Intel Iris graphics 5100 и Intel Iris Pro graphics 5200 (представляющая собой Intel Iris graphics 5100 с интегрированной DRAM).
Поддерживаемые новым поколением Intel HD Graphics API, а также внутреннее устройство модификаций GT1-GT3 описано в вышеупомянутом посте, так что не буду повторяться, а сразу обращу ваше внимание на GT3e - Intel Iris Pro graphics 5200. Эта модель отличается от остальных наличием 128MB интегрированной памяти — eDRAM. Зачем это нужно?

Хотя CPU и GPU Intel находятся на одном кристалле, весь обмен данными между ними осуществляется через общую системную память, что конечно же является «узким местом» — причиной проблем с производительностью. Решение — добавление в систему «быстрой памяти», полностью разделяемой между ядрами CPU, графической и медиа подсиистемами GPU. И не просто памяти, а кэш-памяти, которая будет являться в данной системе кэшем 4-ого уровня (L4). Нетрудно догадаться, насколько положительно этот кэш скажется на производительности графических операций, многократно переиспользующих данные, т.е. на текстурировании и сглаживании (anti-aliasing).

Также хочу обратить ваше внимание на значения тепловой мощности (TDP) для GT3, приведенные в таблице выше — в зависимости от частоты 15W или 28W. Это само по себе удивительно мало, но если еще и заметить, что эти цифры относятся не только к GPU, а ко всей системе CPU и GPU в целом, то они становятся еще фантастичнее. Кстати, TDP Iris Pro graphics 5200 (также в связке с CPU) — 47W.

И еще — заметим, что графика Iris, да и вообще вся верхняя серия GT3 используется исключительно в ноутбуках и моноблоках (All in One = AIO), в десктопные же CPU любого уровня интегрируются только более скромные модели Intel HD Graphics.

От железа перейдем к софту. Значительные изменения произошли в драйверах интегрированной графики Intel — они значительно похудели. Ниже приведена пояснительная картинка из серии было-стало (справа, на белом фоне — новая архитектура, слева, на сером — старая):

Как видите, из драйвера полностью исчез Hardware Abstraction Layer, а его функции частично взяли на себя драйвера пользовательского режима (user mode drivers), которые теперь специально создаются и оптимизируются под каждую конкретную платформу. Но, в целом, драйвера стали делать меньше работы по оптимизации, а значит, производительность теперь в гораздо большей степени зависит от самих приложений!

Тестов производительности графики Intel 2013 сейчас имеется предостаточно. Самый полный список тестов — игр и бенчмарков графики Intel в сравнении с картами других производителей находится на notebookcheck.net: для Iris Pro, для Iris. Но общий вывод приведу здесь — На системах с Iris Pro graphics 5200 многие современные игры (2013) могут отлично работать на средних или высоких настройках качества при разрешении 1366x768. Для более ранних или менее требовательных к графике игр, таких как Diablo III или Fifa 2013, возможны даже более высокие разрешения или настройки качества. На системах с Intel Iris graphics 5100 современные игры могут свободно работать на низких или средних настройках качества при разрешениях 1024x768 или 1366x768.
А сравнение моделей Intel HD Graphics «между собой»- Intel HD Graphics 3000/4000/4400/5000, можно найти в статье anandtech

Здесь же предлагаю внимательно посмотреть на красивый и полезный бенчмарк Unigine Heaven 4.0. Он не только нагружает GPU по полной программе, причем абсолютно реальной игровой нагрузкой (в основе Heaven лежит настоящий игровой движок Unigine), но и позволяет выбирать между тремя API — OpenGL, DirectX9 и DirectX11.


Для тестов использовалась система с Intel Core i7-4850HQ (Intel Iris Pro graphics 5200), Windows 8.0, последняя на момент написания поста версия драйверов 9.18.10.3257 (15.31.17.64.3257).
Heaven 4.0 запускался в полноэкранном режиме при разрешении 1920x1200 и средних (middle) настройках качества с остальными параметрами по умолчанию.
Получившиеся результаты сведены в таблицу ниже:
API Score FPS FPS min FPS max
DirectX 11 435 17.3 6.3 31.8
DirectX 9 445 17.6 6.4 38.4
OpenGL 415 16.5 6.1 30.0

То есть, самый высокий результат по очкам показывает DirectX 9, от него на 2% отстает DirectX 11 и на 7% — OpenGL. Отставание, вроде бы, несущественное, но если мы сравним максимально достижимую в тесте частоту кадров, то тут разница становится впечатляющей — по сравнению с DX9, DX11 проигрывает более 20%, а OpenGL — 28%!
Почему так происходит? Разные драйвера (как сказано выше), разные накладные расходы. Что делать — очевидно — для максимальной производительности при прочих равных выбирать DX9.

Теперь давайте посмотрим, чем именно вызван такой резкий провал в производительности на некоторых сценах — до всего шести с небольшим кадров в секунду! Вот с максимальной частотой кадров все понятно «на глаз» — она достигается, например, на затемненных сценах или крупных планах, когда значительная часть деталей просто не отрисовывается. Но почему же вдруг среди нормальных, дневных сцен, с тенями, бликами, сглаживанием и производительностью около 25 FPS, например, таких, как на скриншоте ниже, вдруг случается замедление в четыре раза?

(Нормальный кадр, FPS ~25)


(Очень медленный кадр, FPS<7)

Может, во всем виновата трава на переднем плане? Исчерпывающий ответ на этот вопрос дает отличный бесплатный инструмент Intel Graphics Performance Analyzers (GPA).
Скачав и установив версию для Windows (кстати, есть еще и версия для Android), запускаем GPA Monitor и настраиваем триггер так, чтобы когда частота кадров Heaven опустится ниже 7, произошел автоматический захват данных соответствующего кадра:



После чего запускаем из GPA Monitor наш бенчмарк и идем заниматься чем-нибудь другим, например, читать habrahabr.
Минут через пять (или часов через пять — это уж кого как получится) возвращаемся и открываем другой компонент GPA — Frame Analyzer (Анализатор Кадров), где выбираем из предложенного списка захваченных кадров нужный нам и загружаем его (кроме нужного захватывается ряд кадров в начале загрузки бенчмарка — на стадии показа меню, когда FPS низкий просто по дизайну Heaven). В результате получается примерно такая картина (по клику на картинке ниже — полноразмерная версия):


Верхняя часть рабочей области окна показывает все операции по отрисовке данного кадра в виде эргов (erg) -условных «единиц работы GPU», которыми могут быть как вызовы отрисовки различных объектов, так и очистка буферов и тп. Высота столбиков показывает время, затраченное на каждый эрг.

Столбец слева показывает буфера отрисовки (Render Targets, RT), использованные при создании данного кадра, и, конечно же, их содержимое. Видно, что в данном кадре задействовано целых 37 RT! Но используются они грамотно с точки зрения производительности, т.е. последовательно, по очереди. Это видно из информации в скобках под каждым RT — номера эргов, их использующих.

Теперь давайте выберем самый высокий столбик, одиноко возвышающийся в довольно ровном профиле эргов справа, с длительностью, превышающей 10 тысяч микросекунд, и посмотрим чему именно он соответствует.
После выделения этого эрга, GPA автоматически подсветит соответствующий ему RT, покажет, что именно происходит (в данном случае в эрге #1708 отрисовываются 506 примитива по индексам) а главное, даст возможность посмотреть, какие именно пиксели он отображает. Вот они — на скриншоте ниже (исходный размер по клику на картинку):


Как видите, это совсем не трава, а дымка (облака?) вдали. Причем, их значительная часть не видна на самом кадре, т.к. загораживается объектами сцены. Поэтому от дымки можно или отказаться вовсе или сильно ее упростить.
GPA позволяет провести эксперимент — «отключить» выбранные эрги и посмотреть, как будет выглядеть кадр без них. В данном случае кадр оказался настолько похожим на исходный, что я не буду приводить картинку. Зато время, затраченное на изучаемый кадр, сократилось на 15%, что в нашем случае дало рост FPS почти на целый кадр. Так что, если вы хотите поиграть в игру, в настройках которой можно управлять particle effects (а именно таким эффектом и является дымка), то вы понимаете, что нужно делать. Также, примерно понятно, что делать для обеспечения максимальной производительности на Intel GPU разработчикам игр. Но только примерно. Если вам нужны более конкретные и развернутые советы, то их можно прочитать (пока только на английском) в обновленном Руководстве Разработчика под Intel GPU — Graphics Developer's Guide for 4th Generation Intel® Core™ Processor Graphics.
Tags:
Hubs:
+15
Comments 40
Comments Comments 40

Articles

Information

Website
www.intel.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
США
Representative
Анастасия Казантаева