GPGPU находит ещё одно практическое применение
Всего несколько месяцев назад представители
Наконец ситуация начала меняться. Всё больше и больше игр включают поддержку DirectCompute. В данной статье мы протестируем четыре из них: Battlefield 3, DiRT 3, Civilization 5 и, конечно, Metro 2033. В отличие от предыдущих игр, которые мы тестировали, сейчас наше внимание сконцентрировано не на чистой производительности системы или отдельных компонентов. Да, это ещё одна статья, в которой AMD оказывает помощь в технических аспектах и при разговорах с разработчиками, поэтому мы рассматриваем APU этой компании и сравниваем их с дискретными видеокартами. Но в данном материале мы изучаем не только влияние на частоту кадров. Здесь мы рассматриваем технологии, которые помогают добиться более высокого уровня реализма, который без поддержки вычислений на базе GPU был невозможен.
Нил Робисон (Neal Robison) – директор по связям с ISV из компании AMD говорит, что за последние годы получать более высокую скорость в играх, основанных исключительно на аппаратных усовершенствованиях, стало не так эффективно, как раньше. По его словам разработчикам ПО обычно не приходится переписывать свой софт, поскольку улучшения аппаратного обеспечения в большинстве случаев дадут им двойной прирост производительности по сравнению с предыдущим поколением. Но наступил тот момент, когда мы добавляем ядра, а не увеличиваем производительность отдельных компонентов. Разработчикам, по сути, придётся делать изменения в своём ПО, и в некоторых случаях фундаментальные изменения в архитектуре. Гетерогенные вычисления – это один из ключей, который позволит вам как разработчику в буквально смысле покопаться во внутренностях процессора и сделать гигантский скачок вперёд, подталкивая пользователей к обновлению своего софта.
Оценка Робисона относительно того, что разработчики будут делать с гетерогенными вычислениями имеет место, когда речь идёт о таких приложениях, как Adobe Premiere Pro CS 5 (в частности движок Mercury Playback Engine с поддержкой CUDA) и в перекодировании видео. Обе параллельных нагрузки легко используют преимущества графического процессора. Тем не менее, мы ещё не видели пользу от OpenCL или DirectCompute в играх. Оба API, кажется, позволяют разработчикам ПО, использующим новые подходы, добиться увеличения уровня реализма. Хотя нам по-прежнему интересно, как в топовых играх используются последние достижения в гетерогенных вычислениях и как они развиваются. За ответом на эти вопросы необходимо обратиться к разработчикам, и это именно то, что мы искали.
Прежде чем двигаться дальше давайте немного поговорим о производительности. В недавнем обзоре под названием
Но не забывайте, что до появления новых процессоров от Intel и новых APU Trinity от AMD осталось совсем немного. Показатели производительности должны вырасти и надлежащая поддержка обоих вычислительных стандартов почти наверняка улучшит впечатления от ваших любимых игр, и обе компании смогут обеспечить больше кадров в секунду на оборудовании нового поколения.
DirectCompute помогает реализовать Ambient Occlusion
Способность GPU выполнять большие параллельные рабочие нагрузки довольно много обсуждалась на
В теории, такой подход к обработке может существенно увеличить пропускную способность, поскольку у вас будет память GDDR5 со скоростью 4 GT/s вместо системной памяти со скоростью 1600 MT/s или около того, а также большой прирост вычислительной производительности и производительности на ватт, когда используются верные алгоритмы. Также учитывайте, что хотя CPU всё же превосходит GPU во многих задачах, ресурсы и задержки, необходимые для коммуникации между чипами, могут сильнее навредить скорости, чем выполнение задачи только на GPU.
Использование дополнительного потенциала GPU требует дополнительной работы над софтом. Есть несколько способов использовать способности аппаратного обеспечения, и DirectCompute – часть DirectX – это API от Microsoft, связывающие GPU и приложения. В прошлом, мы рассматривали, как ранние попытки использовать универсальные вычислительные возможности графического процессора давали пользу для различных рынков, таких как рынки исследования (например, SETI @ Home и Folding @ Home), научного моделирования и изучения. Оттуда GPGPU начали просачиваться на потребительский рынок, но очень медленно, особенно видеообработка и перекодирование. Теперь мы видим, как DirectCompute и OpenCL выполняют дополнительные функции. Разработчики игр начинают применять DirectCompute для улучшения рендеринга, AI, окклюзии, освещения и физики.
Использование DirectCompute для затенения фонового освещения (Ambient Occlusion (AO))
Наиболее часто DirectCompute используется в играх для технологии Ambient Occlusion (изначально разработанной компанией Industrial Light and Magic более десяти лет назад), которая имитирует, как свет взаимодействует с поверхностью и текстурами. Лучи исходят от всей поверхности и те, которые достигают фона, добавляют яркость поверхности, в то время как луч, который ударяется о другой объект не даёт света, а поглощается. Таким образом, объекты, окружённые другими объектами тёмные, а те, которые не окружены препятствиями, более яркие.
Если представить угол в затенённом переулке, для ваших глаз он будет выглядеть темнее, поскольку в него проникает и отражается меньше света. Стены мешают проникновению света в эту область, кроме того, который отражается от соседних зданий. Технология AO ответственна за такое “улавливание света”. Без неё поверхности кажутся плоскими и искусственными.
Гарет Томас (Gareth Thomas) из Codemasters представил нам скриншоты из DiRT 3, чтобы проиллюстрировать данный эффект. Обратите особое внимание на область покрышек.
AO выключено
AO включено
Как объяснил Томас, затенение фонового освещения высокой чёткости (HDAO) – это экранный эффект, который отвечает за глубину картинки и вычисляет коэффициент затемнения зависящий от того, закрыта или открыта область с точки зрения буфера глубины. Например, расщелины между покрышками на скриншотах должны быть более тёмными, поскольку меньше отражённого света может достичь этой области. HDAO можно охарактеризовать как количество отражённого света, которое может увидеть пиксель. Потом он включается в модель освещения при рендеринге сцены. Это не самый идеальный метод, поскольку глубина сцены с точки зрения камеры содержит недостаточно информации для корректного расчёта AO. Однако так определённо лучше, чем без затенения фонового освещения вообще.
Затенение фонового освещения можно также представить через пиксельные шейдеры. Разработчики могут выбирать между двумя методами, и на данном этапе нам непонятно, почему DirectCompute может быть предпочтительнее. В конце концов, в более ранних тестах мы видели как DC-эффекты оказывали значительной влияние на производительность (и не обязательно положительное). Использовать вычислительные ресурсы, чтобы получить функции, которые нельзя получить иным путём – это одно дело, но зачем выбирать DirectCompute, когда с этой работой вполне могут справиться шейдеры? Ну, для начала, DirectCompute больше не влияет на производительность в отличие от пиксельных шейдеров.
По словам Томаса, каждый пиксель, для которого рассчитывается AO, требует множества считываний глубины текстуры. В пиксельном шейдере каждое считывание текстуры занимает цикл. В вычислительном шейдере LDS (локальный обмен данными) заполнен информацией глубины текстуры, и последовательные считывания проходят намного быстрее, чем текстурная выборка.
От tbubb на umbcretrievers.wordpress.com
В этой части мы хотим вернуться к вопросу гетерогенных вычислений и насколько сегодняшнее аппаратное обеспечение адаптировано под обсуждаемые задачи. Как справляются APU по сравнению с дискретной графикой и отдельным процессором, работающими через PCI Express? Сможет ли выборка текстур, которая идёт из памяти (а APU полагаются на архитектуру общей системной памяти), помешать APU эффективно выполнять задачи, или же близость к ресурсам хост-процессора благоприятно повлияет на процесс?
Источник: www.geforce.com
Источник: www.geforce.com
Томас говорит, что HDAO требует глубину сцены только как вход. Сначала она должна быть визуализирована, но на практике в большинстве игр эта информация уже находится в g-буфере или буфере глубины. Буфер глубины – это ресурс видеопамяти и HDAO выполняется одинаково как на APU так и на GPU. Метод очень эффективный, поскольку для вывода текстуры необходима только дополнительная память. Это ещё одна причина того, почему популярность данного метода быстро растёт.
Стоит отметить один важный момент, который выявился во время наших тестов. В предстоящих результатах Battlefield 3 вы увидите, как с включённым HBAO (horizon-based ambient occlusion) APU достигает только 14 FPS, что определённо недостаточно для комфортной игры. После установки видеокарты
Просто Battlefield 3 – слишком тяжёлая нагрузка для APU. Это не значит, что гетерогенная архитектура снижает производительность. Просто нужно более мощное оборудование.
Battlefield 3
Компания DICE использует
Архитектор по визуализации компании DICE Ёхан Андерсон (Johan Andersson) говорит, что
Работу этого метода можно увидеть в демо ролике “Leo” от AMD, которым сопровождался выход
Как и большинство игр, Battlefield 3 во многом рассчитывает на вычислительные шейдеры для большинства эффектов, поэтому чтобы справиться с ограничениями шейдеров, нужно искать обходные пути. Например, для ускорения методик рендеринга выбранного экранного пространства используется вычислительный шейдер двустороннего увеличения. В этом процессе сначала происходит рендеринг желаемого эффекта (например SSAO) на половине разрешения, потом это низкое разрешение интерполируется обратно в целевое разрешение с фильтром сохранения краёв высокого качества, который осуществляется с
Томас из Codemasters отметил, что DiRT 3 использует похожую тактику интерполяции с функцией HDAO (high-definition ambient occlusion). Причина того, что HDAO вычисляется на половине разрешения заключается в том, что выборка из буфера глубины на половине разрешения эквивалентна выборке из ядра образцов двойного диаметра на полноэкранном разрешении. Данный эффект можно запускать на полноэкранном разрешении, но качество улучшиться лишь немного, а размер ядра выборки сильно повлияет на эффективность. Похоже половина разрешения, на данный момент более приемлема.
Однако помощь
Нил Робинсон (Neal Robison) из AMD говорит, что важно тестировать области с большим количеством источников освещения, как например зону метро на карте Metro MP. Вычисление необходимо в самых “тяжёлых” областях, где больше всего источников света, а не в ситуациях со средней или высокой производительностью. Хотя вычисление всегда активно, из-за дополнительной нагрузки оно, по сути, снижает производительность в сценах, где есть всего пара источников света.
Для всех наших тестов мы используем данный ролик из Battlefield 3. Он сочетает тусклые условия закрытого помещения и яркие (хоть и пасмурные) условия открытого пространства, что в целом даёт достаточно сбалансированное среднее освещение.
Ранее было выявлено, что текущие модели APU от AMD не способны обеспечить комфортный уровень FPS в этой игре, за исключение самых низких настроек качества. Поэтому для того, чтобы предоставить равные условия для всех конфигураций, во всех тестах Battlefield 3, мы выставили качество текстур, теней, эффектов, сетки, количество и качество объектов окружающей среды на самое низкое значение. Сглаживание и размытие движений выключено, анизотропная фильтрация выставлена на 1x.
DiRT 3
DiRT 3 использует
Metro 2033
Для эффекта улучшенной глубины резкости (DoF) в Metro 2033 необходимо три визуализации. Две из них включают пиксельные шейдеры, а третья использует
Civilization 5
Civilization 5 пользуется DirectX 11 и
Как объяснил Нил Робинсон, текстуры на диске хранятся в формате типа DCT (Discrete Cosine Transfer). Это значит, что данные текстур хранятся во многих местах, поскольку это обеспечивает оптимальное сжатие, как для JPEG. Шейдер используется для быстрой распаковки этих данных в реальном времени и повторного сжатия на лету в формат текстур DCT, который поддерживается непосредственно графическим процессором. Это позволяет значительно сократить необходимое для текстур пространство, и что более важно, существенно увеличить скорость загрузки высококачественных текстур высокого разрешения в видеопамять по сравнению с CPU. Именно поэтому сцены превосходного качества появляются в игре почти мгновенно, независимо от количества цивилизаций.
Для тестов производительности сжатия/распаковки на базе
Мы не меняли тестовую конфигурацию с прошлой части серии, за исключением обновления BIOS материнской платы Asus Crosshair V Formula.
Тестовая конфигурация | |
Тестовая система 1 | |
Процессор | AMD FX-8150 (Zambezi) 3.6 ГГц, Socket AM3+, 8 Мбайт общего кэша L3, Turbo Core вкл., 125 Вт |
Материнская плата | Asus Crosshair V Formula (Socket AM3+), AMD 990FX/SB950 |
Память | 8 Гбайт (2 x 4 Гбайт) AMD Performance Memory AE34G1609U2 (1600 MT/s, 8-9-8-24) |
SSD | 240 Гбайт Patriot Wildfire SATA 6 Гбит/с |
Видеокарта | AMD Radeon HD 7970 3 Гбайт AMD Radeon HD 5870 1 Гбайт |
Питание | PC Power & Cooling Turbo-Cool 860 Вт |
Операционная система | Windows 7 Professional, 64-bit |
Тестовая система 2 | |
Процессор | AMD A8-3850 (Llano) 2.9 ГГц, Socket FM1, 4 Мбайт кэша L2, 100 Вт, Radeon HD 6550D Graphics |
Материнская плата | Gigabyte A75-UD4H (Socket FM1), AMD A75 FCH |
Память | 8 Гбайт (2 x 4 Гбайт) AMD Performance Memory AE34G1609U2 (1600 MT/s, 8-9-8-24) |
SSD | 240 Гбайт Patriot Wildfire SATA 6 Гбит/с |
Видеокарта | AMD Radeon HD 7970 3 Гбайт AMD Radeon HD 5870 1 Гбайт |
Питание | PC Power & Cooling Turbo-Cool 860 Вт |
Операционная система | Windows 7 Professional, 64-bit |
Battlefield 3 на разрешении 1920×1080
Мы тестируем Battlefield 3 с помощью программы Fraps и отрывка длительностью 90 секунд, взятого из миссии Going Hunting.
В двух словах, при работе алгоритма SSAO пиксельный шейдер производит выборку значения глубины для каждого пикселя на экране вокруг текущего пикселя и пытается вычислить количество преград от каждой из выбранных точек. Поскольку на высоких разрешениях этот процесс требует много ресурсов, SSAO часто использует случайную выборку вместе с постобработкой размытия. Как видно из предыдущих скриншотов, AO на базе
Хотя на конфигурации с одним только APU играть в BF3 на разрешении 1920×1080 практически невозможно, да и с картой
Из общего количества кадров складывается та же картина.
Для игр такого класса и с таким разрешение необходима дискретная видеокарта – это очевидно, но всё же обратите внимание, что производительность FX-8150 выше, чем производительность A8-3850 с такой же видеокартой в 2.2 раза. Это снова говорит о том, что необходимо соблюдать баланс конфигурации системы. Понятно, что производительность компании в Battlefield 3 сильно зависит от графики, но CPU следует выбирать того же класса, что и GPU, поскольку их надо рассматривать в тандеме.
Battlefield 3 на разрешении 1280×768
Что необходимо сделать, чтобы в Battlefield 3 можно было играть на платформе только с APU A8? Как и описано, нужно выставить все настройки качества на самый низкий уровень, поэтому не ожидайте особых впечатлений, хотя игра от этого не станет менее весёлой. Мы перепробовали много разрешений и наконец нашли то, на котором средний уровень FPS будет хотя бы 30 кадров в секунду, а именно 1280×768.
Далее следует общее количество кадров.
Оказалось, что данная конфигурация обеспечивает в среднем 30 FPS только при AO, да и то минимальная частота кадров опускается до уровня 20 FPS. Учитывая темп игры Battlefield 3, эти результаты далеки от идеала. Конечно, можно было попробовать и более низкие разрешения, но они редко используются, даже на ноутбуках (с APU уровнем ниже).
И снова заметно незначительное влияние функции HBAO на производительность. Конечно разница между 31.8 и 27.6 FPS, составляет 15% и звучит громко, но, по сути, это всего 4 FPS.
DiRT 3
В случае дискретной графики, о негативном влиянии
Однако в случая одного только APU мы видим, как смена настроек между “High” и “Ultra” даёт разницу в 37%. Причём в режиме “Ultra” средний уровень частоты кадров опускается почти до 20 FPS. Это гораздо ниже допустимой отметки для игр такого жанра. Но поскольку мы уже используем самые низкие настройки качества графики, единственное, что можно сделать – это понизить разрешение.
Сравнив общие результаты трёх платформ, становится очевидно, что лучшую производительность вы получите на системе с дискретной видеокартой, где высокая мощность рендеринга даёт высокую разницу между режимами ambient occlusion. В принципе на APU играть возможно, но такие красочные игры как DiRT 3 заслуживают того, чтобы их возможности были включены для максимального эффекта от геймплея. На сегодня даже самые лучшие APU на базе Llano этого позволить не могут. Однако мы надеемся на архитектуру Trinity с обновлёнными вычислительными ядрами и более эффективной графической архитектурой, выход которой ожидается в ближайшие пару месяцев.
Metro 2033
Благодаря впечатляющему тестовому модулю игры Metro 2033 мы можем более подробно показать, как работает игра и почему частота кадров может оказаться ниже ожидаемой. Ниже представлены два графика, отражающие работу процессора FX-8150 вместе с видеокартой
Разница есть, не правда ли? Очевидно, что Metro 2033 использует
Хотя нам непонятно, откуда такая разница, особенно без объяснений 4A Games, но провалы при выключенной глубине резкости в частоте кадров ниже, что странно. Результатом является контраст между скоростью и стабильностью.
На самой лучшей конфигурации средняя частота кадров падает на 50% при включении глубины резкости, мы ожидали такого результата больше остальных в этом обзоре. Эта функция предназначена для увеличения реалистичности и естественно влияет на производительность. В случае Metro 2033 наш опыт подсказывает, что активация DoF просто сильнее нагружает систему, чем другие опции.
Однако интересно, что разница, вызванная включением функции DOF на APU A8 с такой же видеокартой составляет 26%. На этой конфигурации мы видим, как результаты с включённой глубиной очереди колеблются сильнее, чем с выключенной. Мы предполагаем, что это вызвано производительностью
Чтобы разобраться в этом более подробно мы подключили видеокарту Radeon HD 5870 для сравнения.
И снова наблюдается понижение частоты кадров на 50% на платформе с процессором FX-8150. Но как насчёт A8-3850? Вот это да! Хорошие новости в том, что DOF меньше влияет на частоту кадров. Плохие новости в том, что средняя частота кадров понизилась до уровня приблизительно 20 FPS в обоих случаях. Ещё одно очко в пользу сбалансированной системы, хотя мы не уверенны, что слово баланс применимо к четырёхядерному CPU с частотой 2.9 ГГц и старой видеокарте, неспособной полностью поддерживать современные игры. “Агрессивная” система подошла бы лучше.
Здесь мы ясно видим, как интегрированный графический движок далёк от нормального уровня производительности в данной нагрузке. И даже здесь DOF на базе
Что ещё можно добавить к последней диаграмме, которая и так довольно красноречива? Мощная дискретная видеокарта сильно влияет на производительность и текущие APU от AMD с трудом могут предоставить нормальную работу в современных играх на общепринятых настройках. Вся надежда на APU Trinity.
Civilization 5
Мы хотели использовать Civilization 5 чтобы подтвердить наши наблюдения по поводу карты Radeon 5870, также мы впервые тестируем эту игру с видеокартой
И снова чип FX раскрывает производительность самой быстрой видеокарты AMD с одним GPU, которая просто недоступна четырём ядрам APU A8.
С более производительным процессором FX включение рендеринга с
Переключившись на Radeon HD 5870,
Несмотря на то, что Civilization 5 – очень занимательная игра, она не стремится (и не должна) к фотореализму. Движок игры использует DirectX 11 для улучшения производительности, а не для реалистичных эффектов, и поэтому мы видим заоблачные результаты на топовых платформах.
По той же причине мы получили 85 FPS на разрешении 1920×1080 используя только APU. Очень приятно видеть, что не каждая игра, использующая DirectX 11 пытается достичь предела графических технологий. APU начального уровня вполне пригоден для обычных пользователей, с более скромными запросами.
Исходя из общей картины можно сделать вполне ожидаемый вывод, что наибольшее влияние на рендеринг при поддержке
GPU-вычисления в играх: в стадии разработки
По словам Ёхана Андерсона (Johan Andersson), в
В этих словах есть смысл. Нет ничего бесплатного, и
К сожалению, сегодня большинство консолей и GPU эпохи DirectX 10, наводнившие рынок, не поддерживают
Андерсон также добавил, что в будущем появится много других методов постобработки, освещения, рендеринга и имитирования, как например моделирования воды и поведения частиц, и компании будет интересно поэкспериментировать с ними с помощью
Естественно компания DICE не одинока.
Гарет Томас (Gareth Thomas ) из компании Codemasters утверждает, что в течение ближайших нескольких лет
Так что следите за новостями – лучшее впереди. Скоро мы представим следующую часть цикла статей, посвящённых гетерогенным вычислениям, в который рассмотрим ежедневную работу и сжатие.