Metal から広がるフレームワーク群

はじめに

Metal 登場前 (iOS 2 〜)

  • iOS 2 以降の時代、3D グラフィック処理をするためには OpenGL ES が案内されていた
  • OpenGL ES の ESEmbedded Systems.(組み込みシステム)
  • 以下にあるように iOS12 以降は OpenGL ES の機能が非推奨になったため、これ以降は Metal を使用するべきとなった

About OpenGL ES

Important OpenGL ES was deprecated in iOS 12. To create high-performance code on GPUs, use the Metal framework instead. See Metal.

Metal (iOS 8)

  • iOS 8 で Metal が新たに追加された
  • OpenGL ES は純粋に 3Dグラフィックスレンダリング機能の提供だけだったが
  • Metal はそれに加えて GPU を使用したデータの並列計算の役割ももつ
  • この Metal から、さまざまなフレームワークが派生する

MetalKit (iOS 9)


Apple Developer にある Metal / MetalKit サンプルプロジェクト

ほかに Metal の上に構築されているフレームワーク

Core Image, SpriteKit は Metal 公開前から存在するため、のちに Metal により内部を書き換えられと思われる。

MPS から構築されるフレームワーク

f:id:daisuke-t-jp:20190919021302p:plain:w300
画像は Core ML から引用


さらに Core ML から派生するフレームワークがある。

最後に

  • かつて GPU はその名前にもあるが、グラフィックスを扱うことが主であった
  • iOS もシンプルに 3D を使うものとして OpenGL ES を採用し、開発者に提供していた
  • しかし GPU の高性能化と用途の多様化に合わせて Metal が登場
  • Metal はそれまでの GPU の使い方であるレンダリングに加え、コンピューティングもサポートした
  • そしてその Metal から深層学習、機械学習自然言語処理とさまざまなフレームワークが発展している