Как узнать поддерживает ли видеокарта metal

Обновлено: 04.07.2024

Фреймворк относится к числу новейших разработок Apple, однако совместим с целым спектром чипов Intel, NVIDIA и AMD прошлых лет. Общий официальный ограничитель – сборка компьютера Mac должна быть не древнее 2012-го года, но все варьируется от модели к модели.


Mac, Metal

В свое время презентация Metal стала сенсационным событием для всех, причастных к миру компьютерных игр и передовых графических технологий. Затмить ее сумела лишь новость о том, что вслед за мобильным устройствами технология станет доступна и на десктопах, в частности, купертиновцы обещали полную поддержку Metal уже в OS X 10.11 El Capitan. Ключевой особенностью новинки стала горячо обсуждаемая система алгоритмов адаптируемой многопоточности, эффективно перераспределяющая нагрузку между CPU и GPU. Что же это означает с практической точки зрения?

Mac, Metal

В силу того, что модельный ряд Mac включает в себя десктопы, моноблоки и ноутбуки разных конфигураций, единое требование, «не старше 2012-го года», следует воспринимать с оговоркой.

Список моделей, поддерживающих Metal, ниже:

  • 21,5-дюймовые iMac от 2012 и новее.
  • 27-дюймовые iMac от 2012 и новее.
  • 27-дюймовые iMac с дисплеями 5K Retina образца 2013 и новее.
  • Mac Mini 2012 года выпуска и новее.
  • Mac Pro, выпущенные в середине 2012 и конце 2013 гг.
  • Новейшие 12-дюймовые MacBook образца весны 2015.
  • MacBook Air с дисплеями 11 и 13 дюймов 2012 и новее.
  • 13-дюймовый и 15-дюймовый MacBook Pro 2012 и новее.
  • MacBook Pro с Retina-дисплеем, обе модификации с диагональю 13 и 15 дюймов, новее 2012.

Как проверить дату выпуска своего Mac:

1. Нажмите на меню  и откройте раздел Об этом Mac.

Mac, Metal

2. Под названием операционной системы и данными о ее версии находим строку с типом модели и периодом ее выпуска.

3. В данном примере – очевидно, что все преимущества Metal не будут доступны владельцу этого компьютера.

OS X El Capitan Developer Preview уже доступна для авторизованных тестеров, практически без проблем устанавливается и запускается на компьютерах, что помнят еще старый добрый Mavericks. Однако полноценная сборка OS X El Capitan в виде бесплатного обновления вряд ли окажется доступна раньше осени текущего года. К тому же Apple не спешит публиковать конкретные системные требования, так что пока придется отталкиваться от косвенных данных по совместимости с моделями прошлых лет. Зато яблочная компания своевременно позаботилась предложить разработчикам инструментарий MetalKit с настойчивой рекомендацией не мешкать в его освоении. Что и было сделано, по крайней мере, Epic Games еще год назад показала Unreal Engine 4, адаптированный для максимально полного использования возможностей Metal.

image

На WWDC 2014 всех нас ждал сюрприз: анонс нового графического 3D API под названием Metal. Но на этот раз мы имеем дело не с новым высокоуровневым API поверх OpenGL ES (как было в случае с Scene Kit), а с новым низкоуровневым API для рендеринга и вычислений, которое может служить заменой OpenGL в играх. По словам Apple, Metal может быть до 10 раз быстрее, чем OpenGL ES (точнее говоря — может генерировать вызовы отрисовки [draw calls; передача данных на GPU] в 10 раз быстрее) и доступен только на устройствах с iOS и процессором последнего поколения A7.

Этот анонс спровоцировал новую волну обсуждения и споров насчет необходимости появления новых графических API, которые должны (или не должны — кто знает) заменить OpenGL. Предлагаемый вашему вниманию пост не намерен участвовать в этой дискуссии – его целью является разъяснение того, чем все-таки Metal отличается от OpenGL ES, чьей заменой он является. Чтобы понять, что такого особенного (или же наоборот, ничего особенного) есть в Metal API, нам придется немного заглянуть под «капот» графических API и GPU.

Как работают GPU и графические API

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

Для простого улучшения в работе GPU этот процесс стоит запустить асинхронно; тогда GPU не будет блокировать CPU и вызовы API будут возвращать результат почти мгновенно. В этом случае GPU возможно не будет использоваться на все 100%, поскольку ему возможно придется ждать от CPU новых вызовов рендеринга (= начала кадра), в то время как вызовы остальных команд будут ждать завершения предыдущих. Это становится причиной того, почему большинство графических драйверов собирают все вызовы отрисовки (и другие задачи, которые нужно будет выполнить на GPU — например, изменение состояний) для отрисовки всего кадра перед отправкой его на GPU. Эти буферизованные команды будут затем отосланы обратно после того, как будет получена команда для отрисовки следующего кадра, благодаря чему GPU будет использоваться настолько эффективно, насколько это возможно. Конечно, это добавит один кадр задержки: пока CPU будет создавать задание для текущего фрейма, прошлый фрейм будет рендериться на GPU. На самом деле, можно буферизовать больше одного кадра и таким образом добиваться большей частоты смены кадров — за счет еще большей задержки.

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

Итак, мы узнали как минимум две важные вещи о том, что происходит за сценой совместной работы OpenGL с современными GPU: изменение состояний может быть сложным, если требуется новая комбинация состояний и все операции на GPU будут задержаны на некоторое количество времени.

В приложении, один поток актуальных команд для одного кадра, которые надо выполнить на GPU, формируется и отправляется на GPU сразу весь за один раз (на самом деле все немного сложнее, но давайте не будет пока углубляться).

Подробнее прочитать о том, как работает современный пайплайн компьютерной графики вы можете в серии статей Fabian Giesens — “A trip down the Graphics Pipeline“.

Почему у другой программной модели могут быть преимущества

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

Некоторые графические API сегодня пытаются убрать большую часть этих трюков, раскрывая скрываемую ими «запутанность» – и в некоторых случаях оставляя на волю программы решение всех связанных проблем. В этом направлении шли графические API PS3, в нем же идет AMD со своим Mantle, туда же собираются грядущие DirectX 12 и Apple Metal.

Что же изменилось?

Буферы команд теперь открыты и приложение должно заполнять эти буферы и отправлять их в очередь команд, которая будет выполнять эти буферы в заданном порядке на GPI — таким образом приложение будет иметь полный контроль над заданием, отправляемым на GPU, и определять, сколько кадров задержки необходимо добавить (добавляя задержку, но при этом увеличивая степень используемости GPU). Буферизация команд на GPU и отправка их асинхронно в следующий фрейм должна быть реализована самим приложением.

Поскольку становится ясно, что эти буферы не будут выполняться прямо сразу (то есть во время создания) и что множественные буферы могут быть созданы и добавлены в очередь на выполнение в определенном порядке, приложение может позволить себе их построение в нескольких потоках в параллели. Также для программиста становится более очевидным, какие из результатов вычислений уже доступны, а какие — нет.

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

Другой плюс от нового API в том, что оно не обязано нести груз совместимости с предыдущими версиями и поэтому не будет таким консервативным.

Есть нюанс и в заточке под A7 — благодаря ему Metal заточен под работу на системах с общей памятью, т.е. CPU и GPU могут получать прямой доступ к одним данным без необходимости перебрасывать их по шине PCI. Metal дает прямой доступ для программы к буферам из CPU, и ответственность за то, что эти данные не используются одновременно и GPU, ложится на плечи программиста. Эта полезная функция позволяет смешивать произведение вычислений на GPU и CPU.

И как это в 10 раз быстрее?

Каждый вызов отрисовки стоит сколько-то времени на CPU и сколько-то времени на GPU. Metal API уменьшает время, затрачиваемое CPU, благодаря упрощению контроля за состояниями и благодаря этому уменьшению числу проверок на ошибки от драйвера на правильность комбинаций состояний. Еще помогает предварительное вычисление состояний: можно не просто выполнять проверку на ошибки во время билда, но и само изменения состояния потребует меньшее количество вызовов API. Возможность параллельного построения буферов команд еще больше увеличивает число вызовов отрисовки в том случае, если приложение привязано к CPU.

А вот рендеринг на GPU с другой стороны быстрее не становится, приложение которое делает совсем немного вызовов отрисовки для больших мешей (меш — часть модели, состоящая из вершин объекта] не получит никакого преимущества от перехода на Metal.

Может ли то же самое быть сделано на OpenGL?

На GDC 14 была отличная презентация “Approaching Zero Driver Overhead” за авторством Cass Everitt, John McDonald, Graham Sellers и Tim Foley. Основной ее идеей было уменьшение работы драйвера в OpenGL при помощи увеличения количества работы, производимым вызовов отрисовки, и использованием новых объектов GL и меньшего количества числа вызовов GL для повышения эффективности.

Эта и другие идеи потребуют дальнейшего расширения OpenGL и появления новых версий этого API, но многое из этого можно будет перенести в OpenGL ES. Что мы потеряем — так это возможность прямого управления командными буферами, со всеми своими «за» и «против».

Какова вероятность увидеть это в будущем? Из-за поддержки обратной совместимости, остается надеяться только на появление некоего набора функций, который можно будет назвать «современное ядро», но и его скорее всего придется сделать совместимым со всем вплоть до оригинальной функции glBegin(). Это ограничение будет действовать на протяжении всего потенциального будущего OpenGL и станет пределом его эволюции, делая альтернативы вроде Metal API все более предпочитаемыми…

Вместе с бета-версией iOS 8 и SDK компания Apple представила новую графическую технологию Metal. По аналогии с AMD Mantle и Microsoft DirectX 12 этот API обходит наслоения стандартного графического API OpenGL ES для мобильных игр с целью более прямого взаимодействия с оборудованием.


Старший вице-президент Apple по разработке ПО Крейг Федериги (Craig Federighi) объяснил, что Metal предназначена специально для процессора A7 и эффективно использует многоядерность, поддерживает скомпилированные шейдеры и предоставляет полный доступ к вычислительной мощности GPU для исполнения графических задач и расчётов общего назначения. Для демонстрации возросшей эффективности был показан короткий фрагмент недавно вышедшей аркадной игры Plants vs. Zombies: Garden Warfare от PopCap 3D с увеличенной детализацией до 1,3 млн полигонов в кадре и различными эффектами вроде глубины резкости. Крейг Федериги при этом прокомментировал, что использование Metal позволило в 10 раз увеличить скорость прорисовки.


Затем учредитель Epic Games Тим Суини (Tim Sweeney) показал сад с карповым прудом и цветущей сакурой, на примере которого был продемонстрирован не столько высокий уровень графики, сколько расчёты общего назначения, которые использовались для взаимодействия частиц и искусственного интеллекта. На последних кадрах была показана графически богатая картинка окутанных облаками летучих островов, с которых срывались водопады. «Metal высвобождает достаточно вычислительных ресурсов, чтобы мы могли наделить всех рыб в карповом пруду отдельным интеллектом», — добавил господин Суини перед тем, как сообщить, что демонстрация Zen Garden на движке Unreal Engine 4 будет доступна бесплатно в App Store после официального запуска iOS 8 этой осенью. При этом разработчики уже могут воспользоваться поддержкой Metal в UE4.

Начало фрагмента: 1 час 37 минут 20 секунд

Если говорить о текущей поддержке со стороны разработчиков популярных игровых движков, то наряду с Epic Games её обеспечивают Electronic Arts (Frostbite Engine), Crytek (CryEngine) и Unity. Также технологией уже заинтересовались крупные разработчики вроде PopCap 3D. На приведённом видеоролике можно видеть, кроме Zen Garden и Plants vs. Zombies, также демонстрацию The Collectables от Crytek, насыщенную графическими и физическими эффектами.

Мобильные игры уже не раз демонстрировали высокий уровень графики даже без использования возможностей самых передовых чипов вроде A7. Теперь же благодаря технологии Metal возможности разработчиков существенно возрастают. Поэтому не вызывает сомнения заявление Apple, что iOS 8 позволяет создавать трёхмерные игры консольного уровня для мобильных устройств.


Кроме того, Apple продолжила развитие своих комплектов SceneKit и SpriteKit, призванных упростить задачу создания казуальных игр. Обновлённый набор SpriteKit приносит работу с источниками света, силовые поля, попиксельную физику, позволяющую работать с объектами на основании их форм и текстур, и инверсную кинематику. Что касается SceneKit, то ранее этот пакет был доступен только на OS X, а теперь появился и на iOS. Он включает систему 3D-визуализации, физический движок, систему управления частицами и автоматизацию скриптами.

Ещё одним важным новшеством для разработчиков стало внедрение в объектно-ориентированную среду Xcode нового языка Swift, о чём мы сообщали в отдельном материале.

Таким образом, можно наблюдать очень серьёзное отдаление Apple от открытых стандартов, что позволит ей с одной стороны дополнительно повысить качество программного окружения своих устройств, а с другой — упростить разработку игр и приложений и затруднить их перенос на другие платформы. Учитывая, что iOS остаётся самой доходной мобильной платформой для разработчиков, они по-прежнему будут уделять продуктам Apple первостепенное внимание. Впрочем, никто не мешает самостоятельным разработчикам, как и прежде, опираться на открытые стандарты, теряя возможность дополнительно улучшить свои игры на iOS, или же пользоваться популярными движками, объединяющими ряд современных технологий.

Системные требования для эпического варианта настроек качества

Видеокарта: Nvidia GTX 1080, AMD Radeon RX 5700 XT или аналогичная видеокарта
Видеопамять: 4 ГБ или больше
Процессор: Intel Core i7-8700, AMD Ryzen 7 3700x или аналог Оперативная память: 16 ГБ или больше
Жёсткий диск: твердотельный накопитель NVMe

ОС: 64-разрядная ОС Windows 10

*Компьютеры Mac должны поддерживать Metal API. Узнать, поддерживает ли ваше устройство Metal, можно здесь.

Примечание: Fortnite больше не поддерживает видеокарты Nvidia для Mac.

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

Как убедиться, что ПК или Mac удовлетворяют системным требованиям

ПК:


  1. Щёлкните по кнопке «Пуск».
  2. Наберите «Сведения о системе» и нажмите Enter.
  3. Перейдите к основным сведениям о вашей системе , чтобы узнать, какая у вас операционная система, тип процессора и объём оперативной памяти. Убедитесь, что характеристики вашей системы не ниже указанных выше требований.
    Пример:
    для работы Fortnite требуется процессор Core i3-3225 3,3 ГГц , а в сведениях о системе указан процессор Core i7-7600U 2,8 ГГц, что удовлетворяет минимальной конфигурации системы (и даже превосходит её).

Mac:

Возьмём, к примеру, указанный выше Mac:

  • Версия MacOS: 10.15.4
  • Процессор: Intel i9 2,4 ГГц
  • Оперативная память: 32 ГБ
  • Видеокарта: AMD Radeon Pro 5500M

Конфигурация этого Mac превосходит требования для игры в Fortnite, так как у него более новая версия macOS, более быстрый процессор, больше памяти и достаточно производительная видеокарта.

Примечание: последние обновления Fortnite невозможно установить на Mac, для игры доступна версия 13.40.

Как проверить совместимость видеокарты и материнской платы

Привет всем! Если вы собираете компьютер или решили обновить вашу видеокарту, то вам необходимо знать, подходит ли видеокарта к вашей материнской плате или нет.

Совместимость видеокарты и материнской платы

Есть несколько моментов, по которым можно узнать, совместима ли видеокарта с материнской платой или нет.

1. Разъем AGP или PCI-Е 16

Сейчас все современные видеокарты идут с разъемом PCI-Е 16, но если вы модернизируете старую видеокарту, то посмотрите какой разъем для видеокарты, установлен в материнку.

AGP

Слот AGP видекарты

PCI-Е 16

pci разъем на материнке

2. Интерфейс PCI-Е 16 версии 2.0 и 3.0

У современных разъемов для видеокарты, есть две версии слота PCI-E, это 2.0 и 3.0. Это своего рода как usb 2.0 и 3.0. Соответственно, если ваша материнская плата поддерживает 3.0, то чтобы получить максимальную производительность, нужно брать с поддержкой 3.0. А если вы возьмете видеокарту со слотом 3.0, а в материнке будет стоять разъем 2.0, то вы просто переплатите деньги, а видеокарта будет работать со скоростью 2.0.

Посмотреть это можно на материнской плате или же в характеристиках материнской платы на сайте производителя. Например вот страница с моей материнской платой.

Характеристики материнской платы

  • 2 PCI-e слота с поддержкой 3.0 и 2.0 (могут работать и так и так)
  • 1 PCI-e слот с поддержкой 2.0
  • 2 PCI-e слота 2.0 (не видео слот)
  • 2 PCI слота

Самое главное, чтобы был PCI Express 3.0, так же надпись можно увидеть на материнской плате.

pcie3.0

3. SLI или CrossFire

Если вы геймер и любите выжимать полную мощь от видеокарт, то поддержка SLI или CrossFire вам просто необходимо. Эта поддержка даст вам возможность объединить 2 видеокарты и играть в самых тяжелых играх не только на ультра настройках, да ещё и на нескольких мониторах!

CrossFire в видеокартах ATI, а SLI в видеокартах nVidia

4. Мощность процессора

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

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

Как узнать в каком режиме работает видеокарта

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

ремонт

Устанавливаем или просто запускам. Есть раздел Bus Interface, на моем примере программа показывает, что слот на видеокарте PCIe 16 установлен версии 3.0, но сейчас он работает в версии 1.1. Это нужно для электросбережения. Но чтобы узнать в какой версии он может работать нужно нажать на тест. Сначала рядом с этим окном нажимаем на вопрос и появится новое окошко. Если у вас одна видеокарта, то просто жмем start render test, если несколько объединены, то ставим галочку ниже.

Как проверить совместимость видеокарты и материнской платы

Тест видеокарты

А в начальном окне, можно увидеть, что допустим моя видеокарта начала работать в версии 3.0.

Версия 3.0 видеокарты

Следовательно, это означает, что моя материнская плата и видеокарта совместимы. Видеокарта поддерживает версию 3.0 и материнская плата дает ей возможность ей работать в таком режиме.

Читайте также: