⇣ Содержание
Опрос
|
реклама
Обзор и тестирование AMD Mantle
Дискретные графические адаптеры для настольных компьютеров являются во многих отношениях стандартизированными и абсолютно взаимозаменяемыми устройствами. Вы не можете просто так заменить процессор Intel процессором AMD без сопутствующей замены материнской платы (да и в рамках продукции одного производителя регулярно происходит апгрейд платформы — системной логики, разъема, типа оперативной памяти), а графические карты, напротив, можно менять сколько вздумается. Системная шина PCI-E, воцарившаяся на долгие годы, не накладывает на это никаких ограничений. Программная среда для GPU также давно устоялась. Любой видеоадаптер поддерживает API DirectX, а вне ОС Windows эти функции выполняет OpenGL. С одной стороны, такая ситуация благотворна для производителей. Она сделала возможным непрерывный цикл обновления GPU на более производительные новинки и перемещение линии фронта в конкурентной борьбе AMD и NVIDIA. С другой стороны, любой GPU чрезвычайно трудно дифференцировать от аналогов по какому-либо признаку, помимо производительности, которую он предоставляет в данном ценовом сегменте. Конечно, среди квалифицированных покупателей есть люди с устойчивыми предпочтениями в пользу AMD либо NVIDIA — те самые, которые каждый раз яростно бьются в комментариях к обзорам видеокарт. Это явление сродни азарту футбольного болельщика. Есть и сугубо практические причины любить или отвергать устройства NVIDIA либо AMD, но давайте признаем, что конъюнктура на рынке меняется с каждым новым витком прогресса GPU, подчас совершенно непредсказуемо, а фанаты остаются фанатами. Менее квалифицированные покупатели, не столь погруженные в технические тонкости, также имеют свои предпочтения. Здесь большое значение имеет имидж производителя и его продукции. NVIDIA и AMD совершенно не похожи в том, какое послание несут потенциальному покупателю. Маркетинг NVIDIA традиционно более силен и настойчив в коммуникации с конечным пользователем. Пользуясь преимуществом в производительности, которое сопутствует марке GeForce на протяжении всей ее истории, за исключением нескольких отдельных периодов неудач, NVIDIA позволяет себе держать относительно высокие цены. Пусть GPU NVIDIA дороже, «но ведь дороже — значит лучше» — таково их скрытое сообщение. AMD сформировала для марки Radeon противоположный имидж. Ценовая политика «красных», как правило, агрессивна во всех сегментах производительности. Массы привыкли думать, что в среднем ценовом диапазоне Radeon — это более экономный аналог GeForce, обладающий сопоставимой производительностью, а наверху Radeon пусть и не столь быстр, как лучшие представители линейки GeForce, зато по-прежнему стоит дешевле. Между тем с чисто технической точки зрения эпоха 28 нм была триумфальной для AMD. Давненько не было такого, чтобы видеокарты Radeon занимали паритетные позиции с конкурентами от NVIDIA в сегменте High-End. Теперь AMD переходит в масштабное наступление уже на идейном фронте. Недостаточно, чтобы Radeon считали быстрым и доступным. Нужно предложить покупателю нечто уникальное, чего не может дать конкурент. NVIDIA давно работает в этом направлении. Именно она первой презентовала GPU как ускоритель вычислений: API CUDA. Много усилий и денег было вложено в продвижение технологии PhysX. Во времена бума стереоскопического 3D NVIDIA успешно оседлала волну, выпустив набор 3D VISION. Из последних инициатив — консоль SHIELD с поддержкой трансляции игровой картинки настольного ПК, модуль G-SYNC для дисплеев. Это не считая чисто софтверных технологий, выпущенных NVIDIA в свободный полет: метода сглаживания TXAA и собственной разновидности Ambient Occlusion — HBAO. В общем, NVIDIA пытается выстроить вокруг марки GeForce собственную экосистему. AMD до поры не занималась чем-либо подобным. Если продукты Radeon и выделялись уникальными характеристиками, то была ранняя поддержка общепринятых стандартов — свежих версий DirectX и портов вывода. Сейчас все резко меняется. AMD выступила с рядом дерзких инициатив — внедрение HSA в APU семейства Kaveri, аппаратный DSP TrueAudio в последних GPU на базе архитектуры GCN и, собственно, Mantle. Что общее у всех трех нововведений — это сугубо технический, фундаментальный характер. AMD в меньшей степени стремится создать экосистему и в большей — дать своим продуктам зримые преимущества, поддерживающие их основную функцию — 3D-рендеринг в играх. ⇡#Низкоуровневый API: от 3dfx до next-gen-консолейMantle — чрезвычайно амбициозный шаг. Будучи до сих пор последовательным сторонником стандартных решений, AMD вдруг решила дернуть одеяло на себя, выступив с проприетарным низкоуровневым интерфейсом для GPU на базе архитектуры Graphics Core Next. Такого никто не делал со времен 3dfx и ее API Glide. Но 3dfx был первопроходцем, и создание собственного API для нового класса устройств — 3D-ускорителей — было неизбежным. Сегодня стандарты определены. Вы пишете игры либо под DirectX, либо — под OpenGL. А по факту — DirectX давно одержал победу в Windows. Нужны серьезные основания для того, чтобы поддержать третьего, совершенно незнакомого кандидата. И такие основания есть. Во-первых, ситуация, в которой Mantle противостоит DirectX, совершенно не похожа на то, как с DirectX когда-то соревновался Glide. Glide уходил в небытие вместе с ускорителями 3dfx. DirectX шел на подъем вместе с продуктами NVIDIA. Позиции AMD, напротив, сильны как никогда. Благодаря архитектуре GCN компания упрочила положение на рынке десктопной графики и, более того, заполучила монополию на поставки GPU для всех консолей нового поколения. Собственно, консоли нового поколения — это добрая часть всей истории про API Mantle. Если вкратце, Mantle вполне может оказаться портом низкоуровневого API с Xbox One на PC, хотя официально Microsoft не подтверждает эту гипотезу. Напомним, что мы писали по этому поводу в общем обзоре линейки Radeon R7/R9. Консоли, будучи платформой изначально ограниченной в производительности и рассчитанной на долгий жизненный срок, побуждают разработчиков по максимуму задействовать вычислительные ресурсы. Происходит это не только за счет оптимизации игрового кода, но и благодаря тому, что для одной и той же консоли, как правило, доступны два API: высокоуровневый (вроде DirectX или OpenGL) и низкоуровневый, который дает прямой доступ к аппаратным ресурсам, минуя уровень абстракции с присущими ему ограничениями и снижением производительности. Возьмем Xbox One. Известно, что в качестве высокоуровневого API там используется не что иное, как DirectX 11.2, а сама ОС является разновидностью Windows. Но неизбежно должен присутствовать и низкоуровневый API графического процессора. Написанный под разновидность Windows… Можно ли считать совпадением, что незадолго до релиза новой консоли от Microsoft AMD представила низкоуровневый API к архитектуре Graphics Core Next для самой популярной десктопной ОС? Надо признаться, что пока нет прямых подтверждений тому, что Mantle является низкоуровневым API, портированным на Windows прямиком с операционки Xbox One. Вот только предположение выглядит уж очень убедительно. Ведь Mantle даже поддерживает родной для Xbox One Direct3D HLSL (High Level Shader Language). Да и сама AMD как на слайдах презентаций, так и устами своих представителей, не вдаваясь в подробности, говорит о том, что Mantle помогает перенести на ПК оптимизации консольных разработок. Если верить AMD, низкоуровневый интерфейс программирования GPU — это то, чего разработчики игр под Windows вожделели долгие годы. А коли действительно так, то понятно почему. В целом любой дополнительный уровень абстракции забирает на себя определенную долю производительности, подчас существенную. Прямой доступ к GPU, минуя вызовы DirectX, по определению способен высвободить определенный процент скрытого быстродействия. К тому же AMD лучше, чем кто бы то ни было, осведомлена об особенностях архитектуры GCN и знает, где можно срезать углы. ⇡#Проблема draw callsШирокой публике известно не очень много технических подробностей о свойствах и конкретных преимуществах Mantle. Да и сам материал по большей части непонятен для публики, далекой от программирования (в особенности программирования 3D-рендеринга). В фокус внимания попал один предмет, которым Mantle наиболее выгодно отличается от DirectX, — draw calls. Количество draw calls — это то, что отличает кадр со множеством отдельных объектов от кадра с немногими сложными объектами, пусть совокупная сложность видимой геометрии у них одинакова. Когда мы видим 3D-модель автомобиля, мы имеем дело с небольшим количеством «крупных» draw calls. Игровая сцена из шутера с массой разлетающихся обломков от взрыва, армия в RTS, толпа игроков в MMORPS — во всех этих случаях используется много «мелких» draw calls. И здесь вполне вероятно, что CPU станет бутылочным горлышком для производительности, в то время как GPU будет пропускать такты. Эта проблема всплыла во время перехода от DirectX 9 к DirectX 10, где «непродуктивные» затраты производительности на отработку draw calls существенно сократились. И все-таки даже при условии широкого внедрения DirectX 11, унаследовавшего оптимизации десятой версии, трудности никуда не делись. Компромиссное решение — использовать как можно меньше draw calls — допустимо не всегда. И вот появляется Mantle, призванный свести overhead на отработку draw calls до минимума: теоретически можно получить девятикратную скорость генерации draw calls по сравнению с DirectX 11. Оптимизация draw calls — особенно выгодный предмет для AMD. Любой разработчик и геймер скажет спасибо за дополнительные FPS в тормозящих сценах, наполненных разрозненной геометрией. Но особенно остро вопрос встает в условиях дефицита мощности CPU. А это как раз случай AMD. Даже Mantle не может спасти процессоры AMD FX, а вот для APU при умелом использовании он сослужит хорошую службу. Другая польза от быстрых draw calls — оптимизация физики разрушений, взрывов и подобных процессов, причем не просто для того, чтобы сделать эффекты более пышными, а с целью обеспечить интерактивное взаимодействие с динамически формируемой средой. Позволим себе более подробный экскурс в эту тему. Унифицированные шейдерные архитектуры дали возможность симулировать на GPU разлет осколков, текучие вещества и подобные предметы, требующие масштабных параллельных вычислений, которые слишком медленно решаются силами CPU. Проблема в том, что в большинстве игр дополнительная геометрия, порожденная GPU, остается не более чем визуальным эффектом, наложенным на сцену. Красивый дым, туман, осколки, но взаимодействие с ними ограничено. Почему? Механизм можно описать так. CPU просто отдает задание на генерацию объектов графическому профессору посредством API PhysX или OpenCL. Но более глубокое участие игрового движка в судьбе того, что получилось в результате, потребовало бы передавать большие объемы данных по шине PCI-E, с соответствующим ущербом производительности. Проблема решается внедрением архитектуры HSA, в рамках которой CPU и GPU имеют доступ к общему адресному пространству и обмениваются не данными, а указателями. Но учитывая, что AMD уже позаботилась о внедрении HSA, осталось только добавить быстрые draw calls, чтобы приблизиться к по-настоящему реалистичной и интерактивной игровой физике. С технической точки зрения замысел, лежащий в основе Mantle, безупречен. Но успех в конечном счете зависит от того, поддержат ли разработчики начинание AMD. Компания особо подчеркивает, что запрос на Mantle исходил именно от разработчиков. Разумеется, мы никак не можем подтвердить либо опровергнуть это утверждение. Остается только наблюдать за рынком. Впрочем, нельзя не признать, что Mantle стартовал весьма бодро. Первой игрой, поддерживающей API, стала Battlefield 4. Вскоре к ней присоединится Thief, в более отдаленном времени — Sniper Elite 3 и не столь именитый проект — космосим Star Sitizen. В Oxide Games разработали универсальный графический движок Nitrous с поддержкой Mantle и опубликовали в Steam бенчмарк, демонстрирующий его возможности. Собственно, Battlefield 4 и Star Swarm (а также бета-версия драйвера Catalyst 14.1) дали нам долгожданную возможность протестировать производительность Mantle на практике.
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|