Metal

1/6ページ

[iOS] MetalでGPUコンピューティング (1) 最小限のコードの記述と特性の把握

Metalは、iOS8で導入された画像処理や並列演算などを効率的に行うためのフレームワークです。本記事では、そのうち画像処理の方ではなくCPU/GPUの連携による並列演算の方を扱います。 GPUコンピューティング(GPGPU)は、一般に機械学習やリアルタイム画像解析、オーディオなどパフォーマンスがクリティカルであり、なおかつ並列演算が有効である場面で多く使われてきましたが、Metalの登場によりiOSでも手軽にGPUコンピューティングが […]

iOSのMetalで畳み込みニューラルネットワーク – MPSCNNを用いた手書き数字認識の実装

MetalでCNNの計算を行うためのAPI群、MPSCNNを用いた手書き数字認識のサンプルを読む、という記事の続きです。 iOS 10でMetal Performance Shadersフレームワークに、CNN(Convolutional Neural Network)演算機能群が追加されました。iOSデバイスのGPUで畳み込みニューラルネットワークの計算をさせることができる、という代物です。 前編ではネットワークの中身には踏み込まず、 […]

iOSのMetal Performance Shadersでニューラルネットを実行する際のモデルの渡し方

Metal Performance Shadersについて iOS10からiOSで畳み込みニューラルネットを作れるようになりました。畳み込み層、プーリング層、正規化層、活性化関数など基本的なツールは揃っています。ただし最適化アルゴリズムなどは揃っておらず、学習はできません。Pythonなどで学習したモデルをプロジェクト内に持ってきてその重みやバイアスを使用することになります。AppleのサンプルコードでもMNISTを学習したモデルをプロ […]

Metalでカメラからの動画入力をリアルタイム処理する

Metalのパフォーマンスがわかりやすく活きる例としては、動画のリアルタイム処理です。動画撮影中に30fpsなり60fpsなりで渡されてくるカメラからの入力をMetalで画像処理し、Metalで描画する、ということをやります。 カメラからの入力を取得する カメラからの入力をリアルタイムに受け取るようにする実装は、何も新しいことはないのでここでは省略します。AVFoundationのAVCaptureSessionを用いるおなじみのもので […]

Metal + UIScrollView でズーム&スクロール可能な2Dアプリに挑戦

これまでの挑戦 去年の年末頃からチャレンジしていた Metal で Scroll と Zoom の実装ですが、今年初め頃に「Basic Metal 2D」という記事を書きました。iPad Pro 発売後、Metal で 2D アプリを書こうとして、2〜3ヶ月程頑張って Metal を勉強しましたが、小生のポンコツな線形代数の影響で、途中で頓挫し、そのまとめとして、Basic Metal 2D を公開しました。このコードは、シェーダーとシ […]

iOSのMPSCNNによる手書き数字認識のサンプルを読む – 前編

iOS 10でMetal Performance Shadersフレームワークに、CNN(Convolutional Neural Network)演算機能群が追加されました。iOSデバイスのGPUで畳み込みニューラルネットワークの計算をさせることができる、という代物です。iOSデバイスのGPUも日々進歩しているとはいえ、モバイルデバイスなのでさすがに学習までは厳しいところですが、学習済みのネットワークの計算であれば使えるケースはありそ […]

ReplayKit の RPScreenRecorder#startCapture を使ってアプリをキャプチャする

iOS9でReplayKitが登場し、iOS10でReplayKitにライブ機能が追加されました。 そしてiOS11で ReplayKit Live に対応したアプリでiPhoneの画面自体をキャプチャできるようになるなど新たな機能が追加されました。 今回はiOS11で追加された RPScreenRecorder#startCapture を触ってみたのでメモしていきます。 AVPlayer と Metal、 SpriteKit をキャ […]

Metalシェーダ言語のバージョンについて

Metalを利用しているアプリで、iOS 9のデバイスでMTLRenderPipelineStateを作成するのに失敗していて、iOS 10のAPIを使っているところは回避してるはずなのに何だろうと思ってエラーメッセージを見てみたら、 Error Domain=AGXMetalG4P Code=1 “Function {関数名} is using language version 1.2 which is incompati […]

iOSの機械学習フレームワークの比較 – Core ML / Metal Performance Shaders (MPSCNN) / BNNS

iOS 11 で追加された Core ML と、iOS 10 の頃からある Metal Performance Shaders の CNN、Accelerate の BNNS について、2017年7月に勉強会で話した際のスライドです。 Core ML vs MPSCNN vs BNNS #fincwwdc // Speaker Deck 発表の概要 iOS 11で追加されたCore MLが非常に注目を集めていますが、「既存の機械学習ツー […]

1 6