Metal (API)

Metal（メタル）はAppleのオペレーティングシステム上でサポートされる、オーバーヘッドの小さいローレベル（low level）なコンピュータグラフィックスAPIである。Metalでは、OpenGLとOpenCLに似た機能を一つのAPIに統合している。Metalはクロノス・グループによるVulkanや、マイクロソフトによるWindows向けのDirect3D 12といった、他のプラットフォームにおける類似のAPIによるパフォーマンス上の利点をmacOS／iPadOS／iOSにもたらしている。
MetalはC++11をベースとした新しいシェーディング言語、Metal Shading Language（MSL）を利用する。これはClangとLLVMによって実装されている。Metalはコンピュートシェーダーを導入することでGPGPUプログラミングのしやすさも向上している。
macOS Ventura, iOS/iPadOS 16のMetal 3では、MetalFX Upscalingという超解像度技術を実装している。
macOS Sonomaでは、Xcode 15向けThe Game Porting ToolkitのMetal shader converterで、Windows向けゲームを移植する際、DirectX 12からMetal 3へ変換できる。
対応環境.
2023年現在、Metal 3での動作条件は、A13 Bionic以上を搭載したiPhoneとiPad、AppleシリコンまたはIntel UHD Graphics 630以降のGPUを搭載したMacが必須となっている。対応OSは、macOS Ventura, iOS 16, iPadOS 16以降である。
初期のMetalはApple A7以降を搭載したiOS機器、およびOS X El Capitan以降が動作する一部のMacコンピュータで利用可能であった。OS X El Capitanに対応しているMacであっても、Metalに対応しているとは限らない。
2017年10月時点でのMetal及びMetal2対応Macコンピュータは以下の通り。
MetalはWWDC 2014にて発表され、iOS 8で初めて導入された。
macOSでのMetalのサポート（Metal for Mac）はWWDC 2015において発表された。
パフォーマンス.
Metalの登場以前は、macOSにはOpenGLが、そしてiOSにはOpenGL ESがそれぞれ提供されていたが、いずれも高度にハードウェアが抽象化されていることから性能上のオーバーヘッドが大きい。Metalは以下のような理由から、OpenGLよりも優れたパフォーマンスを期待できる。
これらのうちいくつかは、GPUでコマンドを実行するために必要になるCPUのタスクを低減する。そのため、他の仕事のためにCPUを使えるようになり、全般的なパフォーマンスの向上につながる。