2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【iOS】Metal Best Practicesの解説(14)パイプライン

Posted at

Metal Best Practicesは、iOS/MacOS/tvOSのAPIであるMetalを用いた設計のベストプラクティスガイドです。

本稿では、何回かに分けてこのガイドを読み解き、コード上での実験を交えて解説していきます。
読んでそのまま理解できそうなところは飛ばしますので、原文を読みながら原文のガイドとしてご利用下さい。
また、iOSの記事なので他のOS(MacOS, tvOS)についての記載は割愛します。

他の記事の一覧は、初回記事よりご覧下さい。

Pipelines (パイプライン)

ベストプラクティス:レンダーパイプラインと計算パイプラインを非同期で構築します。

render pipelineやcompute pipelineの構築は非同期に処理すれば並列性が高まりパフォーマンスが向上するという話です。

Metal Best Practiceでは、遅延読み込みを回避するために使いましょうという書き方がされていました。つまり、パイプラインの構築はコストがかかるので遅延読み込みを使いたくなるけれど、それをするぐらいなら事前に非同期に構築しておけば、初期化の際に処理をブロックしないし、必要なときには用意されているので並列性が上がりますよ、ということですね。

結論

今回は適切なサンプルが思い浮かばなかったので、コードの検証はしませんでした。大量にパイプラインを作る必要がある場合は、非同期にパイプラインを構築する手法を使えばパフォーマンスが向上しそうですね。

最後に

今回でMetal Best Practiceの解説は終わりです。
これまで読んでくださった皆さま、ありがとうございました😄

iOSを使った3D処理やAR、ML、音声処理などの作品やサンプル、技術情報を発信しています。
作品ができたらTwitterで発信していきますのでフォローをお願いします🙏

Twitterは作品や記事のリンクを貼っています。
https://twitter.com/jugemjugemjugem

Qiitaは、iOS開発、とくにARや機械学習、グラフィックス処理、音声処理について発信しています。
https://qiita.com/TokyoYoshida

Noteでは、連載記事を書いています。
https://note.com/tokyoyoshida

Zennは機械学習が多めです。
https://zenn.dev/tokyoyoshida

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?