基礎から学ぶMetal

「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

ここ数年前から画像処理や機械学習といった分野でGPUを計算エンジンとして使用して、CPUだけでは膨大な時間がかかる処理をGPUを使って大幅にパフォーマンス改善を行うことが一般的になってきました。iOSでは初期の頃からOpenGL ESが使用できました。しかし、数年前にOpenGLは非推奨となり、Metalへ移行することが推奨されています。Macでも同様でOpenGL/OpenCLは非推奨となり、Metalへの以降が推奨されています。

では、Metalの実力はどの程度のものなのでしょうか?

著者はいくつかの画像処理プログラムでOpenCLからMetalへの移植を経験していますが、Metalの方が高いパフォーマンスを実現できました。とはいっても、どんなプログラムでもというわけではありません。Metalに向いているもの、かつ、動作環境もMetalに対応していることなどが前提となります。また、Metalは毎年改善が行われており、ハードウェア側も進歩が続いています。

今年はM1チップを使ったMacが発売しました。M1チップはAシリーズチップと同様にアップル社が設計した独自SoCです。そして、当然ですが、Metalが使用でき、高いパフォーマンスが期待できます。

目次

追加情報・訂正情報

iOS 16 / Xcode 14 対応情報 (2023年5月12日追加)

iOS 16 / Xcode 14 への対応方法については次の記事をご覧ください。

発売日

2021年1月18日です。

本書の概要

本書では、このようなGPUを使ったプログラムをMetalを使って行いたいと考えたときに、Metalはどのように使うのかという最初のステップを解説しています。私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

GPUプログラミングはデバッグがやりづらいということが多いのですが、MetalはXcodeのサポートがあるので、比較的デバッグもやりやすく、開発がしやすいと思います。本書ではXcodeのサポート機能についても解説しています。

目次

  • CHAPTER 1 : Metalの概要
  • CHAPTER 2 : はじめてのMetalプログラミング
  • CHAPTER 3 : GPGPUプログラミング
  • CHAPTER 4 : デバイス
  • CHAPTER 5 : デバッグ・チューニング支援機能
  • CHAPTER 6 : テクスチャ

CHAPTER 1 : Metalの概要

Metalとは何かということを紹介しています。GPUプログラミングとは何かということを解説しています。

CHAPTER 2 : はじめてのMetalプログラミング

MetalのHello Worldというつもりで、三角形を描く方法を解説しています。Metalで作るときに必ず実装する共通部分、最初のステップを解説しています。

CHAPTER 3 : GPGPUプログラミング

Metalを使って、GPUを計算エンジンとして使用する方法について解説しています。

CHAPTER 4 : デバイス

GPUの持つ機能の調べ方やメモリバッファの種類などについて解説しています。

CHAPTER 5 : デバッグ・チューニング支援機能

Xcodeが持っているMetalのサポート機能について解説しています。

CHAPTER 6 : テクスチャ

Metalでのテクスチャマッピングのやり方について解説しています。

出版社公式ページ

基礎から学ぶ Metal〜MetalによるGPUプログラミング入門 | 書籍詳細 | 株式会社C&R研究所

著書紹介

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次