Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Металл является низким уровнем, с низким уровнем накладных расходов аппаратное ускорение 3D - графики и Compute Shader API , созданный Apple , . Он дебютировал в iOS 8 . Metal объединяет в одном API функции, аналогичные OpenGL и OpenCL . Он предназначен для повышения производительности, предлагая низкоуровневый доступ к оборудованию графического процессора для приложений на iOS , iPadOS , macOS и tvOS . Его можно сравнить с низкоуровневыми API на других платформах, таких как Vulkan и DirectX 12 .

Metal - это объектно-ориентированный API, который можно вызывать с помощью языков программирования Swift или Objective-C . Полноценное исполнение на графическом процессоре контролируется с помощью Metal Shading Language. Согласно рекламным материалам Apple: «MSL [Metal Shading Language] - это единый унифицированный язык, который обеспечивает более тесную интеграцию между графическими и вычислительными программами. Поскольку MSL основан на C ++, вы найдете его знакомым и простым в использовании». [2]

Особенности [ править ]

Metal стремится обеспечить доступ к графическому процессору с низкими издержками. Команды заранее кодируются, а затем отправляются в графический процессор для асинхронного выполнения. Приложение контролирует, когда ждать завершения выполнения, что позволяет разработчикам приложений увеличить пропускную способность, кодируя другие команды, пока команды выполняются на графическом процессоре, или экономить энергию, явно ожидая завершения выполнения графическим процессором. Кроме того, кодирование команд не зависит от ЦП, поэтому приложения могут кодировать команды для каждого потока ЦП независимо. Наконец, заранее вычисляются состояния рендеринга, что позволяет драйверу графического процессора заранее знать, как настроить и оптимизировать конвейер рендеринга перед выполнением команды. [3]

Metal улучшает возможности программирования GPGPU за счет использования вычислительных шейдеров . Metal использует специальный язык шейдинга на основе C ++ 14 ; это реализовано с помощью Clang и LLVM . [4]

Metal предлагает разработчикам приложений гибкость при создании ресурсов Metal (буферов, текстур и т. Д.). Ресурсы могут быть выделены на ЦП, ГП или на обоих и предоставляют средства для обновления и синхронизации выделенных ресурсов. Metal также может обеспечивать соблюдение состояния ресурса во время жизни кодировщика команд. [5] [6]

В macOS Metal может предоставить разработчикам приложений право по своему усмотрению указывать, какой графический процессор следует выполнять. Разработчики приложений могут выбирать между маломощным встроенным графическим процессором центрального процессора, дискретным графическим процессором (на некоторых MacBook и Mac) или внешним графическим процессором, подключенным через Thunderbolt. Разработчики приложений также имеют предпочтение относительно того, как команды графического процессора выполняются на каких графических процессорах, и предлагают рекомендации, на каком графическом процессоре определенная команда наиболее эффективна для выполнения (команды для рендеринга сцены могут выполняться дискретным графическим процессором, в то время как постобработка и отображение могут выполняться. обрабатывается встроенным графическим процессором). [7]

Шейдеры Metal Performance [ править ]

Metal Performance Shaders - это высокооптимизированная библиотека графических функций, которая может помочь разработчикам приложений достичь высокой производительности при одновременном сокращении работы по поддержке функций, специфичных для семейства графических процессоров. [8] Он предоставляет следующие функции:

  • Алгоритмы фильтрации изображений
  • Обработка нейронной сети
  • Расширенные математические операции
  • трассировка лучей

История [ править ]

Metal доступен со 2 июня 2014 года на устройствах iOS под управлением Apple A7 или новее [9], а с 8 июня 2015 года - на компьютерах Mac (модели 2012 года или новее) под управлением OS X El Capitan . [10]

5 июня 2017 года на WWDC Apple анонсировала вторую версию Metal, которая будет поддерживаться macOS High Sierra , iOS 11 и tvOS 11 . Metal 2 не является отдельным API от Metal и поддерживается тем же оборудованием. Metal 2 обеспечивает более эффективное профилирование и отладку в Xcode , ускоренное машинное обучение , снижение нагрузки на ЦП , поддержку виртуальной реальности в macOS и , в частности, особенности графического процессора Apple A11 . [11]

На WWDC 2020 Apple объявила о переходе с Mac на Apple Silicon . Mac, использующие Apple Silicon, будут оснащены графическими процессорами Apple с набором функций, объединяющим то, что ранее было доступно в macOS и iOS, и смогут использовать преимущества функций, адаптированных к архитектуре отложенного рендеринга на основе плитки (TBDR) графических процессоров Apple. [12]

Поддерживаемые графические процессоры [ править ]

В iOS, tvOS и macOS Metal поддерживает разработанные Apple SoC от Apple A7 или новее. В macOS Metal также поддерживает Intel HD и Iris Graphics серии HD 4000 или новее, графические процессоры AMD GCN и AMD RDNA . Графические процессоры NVIDIA поддерживаются, но драйверы Metal для новых устройств (серии 10 и новее) недоступны, начиная с macOS Mojave. [13]

Принятие [ править ]

По данным Apple, более 148 000 приложений используют Metal напрямую, а 1,7 миллиона используют его через высокоуровневые фреймворки по состоянию на июнь 2017 года. [14] Игры для macOS, использующие Metal для рендеринга , перечислены ниже.

См. Также [ править ]

  • Direct3D - DirectX 12 представляет низкоуровневые API
  • Mantle - низкоуровневый API от AMD
  • Vulkan - преемник OpenGL с низкими накладными расходами
  • MoltenVK - программная библиотека совместимости для запуска программного обеспечения Vulkan поверх Metal API
  • WebGPU

Ссылки [ править ]

  1. ^ McWhertor, Майкл (9 сентября 2014). «Это игра, которую Apple использовала, чтобы продемонстрировать iPhone 6» . Многоугольник . Vox Media . Архивировано 10 сентября 2014 года . Проверено 9 сентября 2014 года .
  2. ^ Apple Inc. "Спецификация языка затенения металлов" (PDF) .
  3. ^ «Настройка структуры команд» . Apple Inc.
  4. ^ "Руководство по языку затенения металлов" . 8 сентября 2014 . Проверено 10 сентября 2014 года .
  5. ^ Apple Inc. «Настройка режима хранения ресурсов» .
  6. ^ «Синхронизация управляемого ресурса» . Apple Inc.
  7. ^ «Выбор графического процессора в macOS» . Apple Inc.
  8. ^ "Шейдеры Metal Performance" .
  9. ^ Machkovech, Same (2 июня 2014). «Apple увлекается играми, - анонсирует платформу разработки Metal» . Ars Technica . Condé Nast .
  10. ^ Смит, Колин; Меза, Старлейн (8 июня 2015 г.). «Apple представляет OS X El Capitan с улучшенными возможностями и улучшенной производительностью» . Новости . Сан-Франциско : Apple .
  11. ^ "Архивная копия домашней страницы Metal, ноябрь 2017" . Разработчик Apple . Apple . 20 ноября 2017 г. Архивировано 20 ноября 2017 г. - через Wayback Machine .CS1 maint: bot: original URL status unknown (link)
  12. ^ «Перенесите свое приложение Metal на Apple Silicon Mac» . developer.apple.com . Проверено 13 июля 2020 года .
  13. ^ Chiappetta, Marco (11 декабря 2018). «Apple отворачивается от клиентов и NVIDIA с macOS Mojave» .
  14. ^ Apple Inc. «Состояние платформ WWDC 2017 в Союзе» .
  15. ^ «Приложения Vulkan, доступные на платформах Apple» . Пресс-релиз Хронос Груп . Проверено 24 февраля 2021 года .
  16. ^ Larabel, Майкл (1 июня 2018). «Первоначальная производительность Vulkan на macOS с Dota 2 выглядит очень хорошо» . Фороникс . Проверено 5 июня 2018 года .
  17. ^ Kondrak, Кшиштоф [@k_kondrak] (9 февраля 2019). «vkQuake2 получает поддержку MacOS» (твит) . Проверено 9 февраля 2019 г. - через Twitter .
  18. ^ «X-Plane 11.50 Public Beta 1: Vulkan и Metal уже здесь» . Разработчик X-Plane . 2 апреля 2020 . Проверено 2 апреля 2020 года .

Внешние ссылки [ править ]

  • Металл для разработчиков
  • Руководство по программированию металла (предварительное)
  • Демо WWDC14 ; Расширенная версия
  • Установите macOS 10.14 Mojave на Mac Pro (середина 2010 г.) и Mac Pro (середина 2012 г.) - статья Apple, в которой объясняется, какие графические процессоры совместимы с API-интерфейсами Apple Metal в операционной системе Mac OS 10.14 (Mojave)