Metal (API)
Metal és una API de sombreado i gràfics 3D accelerada per hardware de baix nivell i baixa sobrecàrrega creada per Apple. Va debutar en iOS 8. Metal combina funcions similars a OpenGL i OpenCL en una API. El seu objectiu és millorar el rendiment en oferir accés de baix nivell a l'hardware de la GPU per a aplicacions en iOS, iPadOS, macOS i tvOS. Es pot comparar en API de baix nivell en atres plataformes com Vulkan i DirectX 12.
Metal és una API orientada a objectes que es pot invocar utilisant els llenguages de programació Swift, Objective-C o C++17.[1] L'eixecució completa de la GPU es controla per mig de Metal Shading Language. Segons els materials promocionals d'Apple: "MSL [Metal Shading Language] és un llenguage únic i unificat que permet una integració més estreta entre els gràfics i els programes informàtics. Ya que MSL està basat en C++, li resultarà familiar i fàcil d'usar".[2]
Característiques
[editar | editar còdic]Metal té com a objectiu proporcionar un accés de baixa sobrecàrrega a la GPU. Els comandos es codifiquen de bestreta i després s'envien a la GPU per a la seua eixecució asincrónica. L'aplicació controla quàn esperar a que es complete l'eixecució, lo que permet als desenrolladors d'aplicacions aumentar el rendiment per mig de la codificació d'atres comandos mentres els comandos s'eixecuten en la GPU o aforrar energia en esperar explícitament a que es complete l'eixecució de la GPU. Ademés, la codificació de comandos és independent de la CPU, per lo que les aplicacions poden codificar comandos per a cada subproceso de la CPU de forma independent. Per últim, els estats de processament es calculen prèviament de bestreta, lo que permet que el controlador de GPU sàpia en anterioritat cóm configurar i optimisar la canalisació de processament abans de l'eixecució del comando.[3]
Metal millora les capacitats de programació GPGPU per mig de l'us de sombreadores de còmput. Metal utilisa un llenguage de sombreado específic basat en C++14, implementat per mig de Clang i LLVM.[4]
Metal oferix als desenrolladors d'aplicacions la flexibilitat per a crear recursos de Metal (búferes, textures). Els recursos es poden assignar en la CPU, la GPU o en abdós i proporciona funcions per a actualisar i sincronisar els recursos assignats. Metal també pot impondre l'estat d'un recurs durant la vida útil d'un codificador de comando.[5][6]
En macOS, Metal pot proporcionar als desenrolladors d'aplicacions la discreció d'especificar qué GPU eixecutar. Els desenrolladors d'aplicacions poden elegir entre la GPU integrada de baix consum de la CPU, la GPU discreta (en certs MacBook i Mac) o una GPU externa conectada a través de Thunderbolt. Els desenrolladors d'aplicacions també tenen preferència sobre cóm els comandos de GPU s'eixecuten en quins GPU i brinden sugerències sobre quines GPU és més eficient per a eixecutar un determinat comando (els comandos per a renderizar una escena poden ser eixecutats per la GPU discreta mentres que el processament posterior i la visualisació poden ser manejat per la GPU integrada).[7]
Metal Performance Shaders
[editar | editar còdic]Metal Performance Shaders és una biblioteca altament optimisada de funcions gràfiques que pot ajudar als desenrolladors d'aplicacions a conseguir un gran rendiment al mateix temps que reduïx el treball de manteniment de les funcions específiques de la família de GPU.[8] Proporciona funcions que inclouen:
- Algoritmes de filtrat d'imàgens
- Processament de rets neuronals
- Operacions matemàtiques alvançades
- Traçat de rajos
Història
[editar | editar còdic]Metal ha estat disponible des del 2 de juny de 2014 en dispositius iOS en tecnologia Apple A7 o posterior,[9] i des del 8 de juny de 2015 en Mac (models de 2012 o posterior) en VOS X El Capitan.[10]
El 5 de juny de 2017 en la WWDC, Apple va anunciar la segona versió de Metal, que serà compatible en macOS High Serra, iOS 11 i tvOS 11. Metal 2 no és una API separada de Metal i és compatible en el mateix hardware. Metal 2 permet una creació de perfils i una depuració més eficients en Xcode, aprenentage automàtic accelerat, menor càrrega de treball de la CPU, soport per a realitat virtual en macOS i especificidad de la GPU Apple A11, en particular.[11]
En la WWDC de 2020, Apple va anunciar la migració de la Mac a Apple Silicon. Les Mac que usen Apple Silicon contaran en GPU d'Apple en un conjunt de funcions que combina lo que estava disponible anteriorment en macOS i iOS, i podran aprofitar les funcions adaptades a l'arquitectura del <o>renderizado diferit basat en mosaics</o> (tile based deferred rendering, TBDR) de les GPU d'Apple.[12]
Vore també
[editar | editar còdic]Referències
[editar | editar còdic]- ↑ «apple. com/metal/cpp/ Getting started with Metal-cpp - Metal» (en en). Apple Developer. Consultat el 2022-02-09.
- ↑ Apple Inc.. «apple. com/metal/Metal-Shading-Language-Specification. pdf Metal Shading Language Specification».
- ↑ «apple. com/documentation/metal/setting_up_a_command_structure Setting Up a Command Structure». Apple Inc..
- ↑ «apple. com/library/prerelease/ios/documentation/Metal/Reference/MetalShadingLanguageGuide/Introduction/Introduction. html#//apple_ref/doc/uid/TP40014364 Metal Shading Language Guide». Consultat el 2014-09-10.
- ↑ Apple Inc.. «apple. com/documentation/metal/setting_resource_storage_modes Setting Resource Storage Mode».
- ↑ «apple. com/documentation/metal/synchronizing_a_managed_resource Synchronizing a Managed Resource». Apple Inc..
- ↑ «apple. com/documentation/metal/gpu_selection_in_macos GPU Selection in macOS». Apple Inc..
- ↑ «apple. com/documentation/metalperformanceshaders Metal Performance Shaders».
- ↑ Machkovech. «com/apple/2014/06/apple-gets-heavy-with-gaming-announces-metal-development-platform/ Apple gets heavy with gaming, announces Metal development platform». Ars Technica. Condé Nast.
- ↑ Smith. «apple. com/pr/library/2015/06/08apple-Announces-VOS-X-El-Capitan-with-Refined-Experience-Improved-Performance. html Apple Announces VOS X El Capitan with Refined Experience & Improved Performance». Newsroom. Apple.
- ↑ «archive. org/web/20171120014933/https://developer. apple. com/metal/ Archived copy of the Metal homepage, November 2017». Apple Developer. Apple. Archivat des d'el apple. com/metal/ original, el 2017-11-20.
- ↑ «apple. com/videos/play/wwdc2020/10631 Bring your Metal app to Apple Silicon Macs». developer. apple. com. Consultat el 2020-07-13.
- Este artícul conté una traducció derivada de «Metal (API)» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.