macOS MojaveがMetalを必要とし、OpenGLを廃止する理由

macOS MojaveがMetalを必要とし、OpenGLを廃止する理由

新しい macOS Mojave を実行するには、Mac に、グラフィック処理へのアクセスを提供する Apple の最新の低レベルでオーバーヘッドの少ないソフトウェアである Metal をサポートできるグラフィック ハードウェアが搭載されている必要があります。

編集者注:AppleがOpenGLを廃止する理由をめぐる騒動は、Mojaveのリリースとともに再び燃え上がっています。この記事は元々6月に公開されたものですが、現在でも正確で関連性のある内容となっています。

Appleが発表した新しいmacOS MojaveをサポートするMacハードウェアのリストは、MetalをサポートするMacコンピューターのリストと全く同じです。より具体的には、MetalはAppleのハードウェアアクセラレーションによる3Dグラフィックスおよびコンピューティングフレームワーク、標準ライブラリ、そしてGPUシェーディング言語です。

Mojave をインストールするには、少なくとも 2012 年後期の iMac または Mac mini、あるいは 2012 中期の MacBook Air または MacBook Pro が必要です。もちろん、2017 年以降の新しい iMac Pro や、2015 年発売の新しい Retina MacBook でも動作し、2013 年以降に発売されたすべてのブラックシリンダー Mac Pro もサポートしています。さらに、Metal 対応グラフィックカードを搭載していれば、2010 年中期以降の「チーズおろし器」型 Mac Pro モデルもサポートしています。

Metalグラフィックスのサポートが不足しているため、現在のmacOS High Sierraでサポートされている一部のMacは、Mojaveにアップグレードできません。これには、2009~2011年モデルのiMac(非スリムモデル)、2010~2011年モデルのMac mini、2009~2010年モデルのプラスチック製非Retina MacBook、そして2011年以前の非Retina MacBook ProおよびMacBook Airモデルが含まれます。

新しいMojaveでは、Retina非搭載モデルのサポートが数年間中止されますが、一部のRetina非搭載Macは引き続きサポートされます。これは、ディスプレイ解像度の問題ではなく、GPUの性能の問題だからです。2010年モデルのMac Proでも、新しいMetal対応GPUを搭載すれば新しいリリースを実行できます。Appleが旧モデルのサポートを中止するのは、単に新規購入を促すためだけではないことは明らかです。

Metal対応GPUに区切りをつけることで、Appleはグラフィックスパフォーマンスを最適化できます。特に、マルチユーザーFaceTimeやiOSでお馴染みの新しいUI機能といった全く新しいソフトウェア機能において、その効果は顕著です。もしMacを8~9年使っているなら、Mojaveはハードウェアをアップグレードして最新のMetalに飛びつく良いきっかけになるでしょう。

新しいMojaveリリースは、Appleがここ数年間行ってきたOSアップデートの定期スケジュールに従い、新しいiOS 12、watchOS 5、そして新しいtvOSとともに、今秋に正式リリースされる予定です。これに先立ち、AppleはMojaveパブリックベータプログラムを提供しています。ユーザーは参加登録することで、プレリリース版ソフトウェアをダウンロードし、新機能を事前にテストし、発見したバグをAppleに報告することができます。

Metal は、64 ビット CPU と独立した GPU をバンドルしたカスタム A7「System on a Chip」のグラフィックス機能を最大限に活用するために、2014 年に前年の iPhone 5s で初めて提供されました。

Metal によるパフォーマンス向上は、CPU 負荷を軽減する最適化によるところが大きく、ソフトウェアが GPU のパワーをより効率的に活用できるようになります。Metal は、GPU と CPU 間の明示的な同期と共有メモリ空間、ドライバのオーバーヘッドの低減、事前計算シェーダと事前の状態検証、そしてすべての CPU スレッドが GPU にコマンドを送信できる効率的なマルチスレッド化によってこれを実現します。

Metal は、幅広いプロセッサをサポートするように設計された OpenGL などのクロスプラットフォーム グラフィックス フレームワークのモデルにおける大規模なハードウェア抽象化レイヤー上を移動するのではなく、「ベアメタル」上で実行されるため、ハードウェア最適化のレベルが低いことからその名前が付けられています。

AppleがOpenGLに移行したのは、スティーブ・ジョブズがMacにソフトウェアグラフィックレンダリングのサポートを組み込むための初期プロジェクトである自社開発のQuickDraw 3Dを放棄する計画を発表した1990年代後半のことでした。当時、OpenGLへの移行により、Appleは既存の成果を活用し、様々なGPUでハードウェアアクセラレーションを可能にするソフトウェアを開発することができました。

しかし15年後、AppleのiOSは統一モバイルハードウェアの最大のプラットフォームへと成長しました。Metalと並行して、Appleは初の64ビットカスタムARM CPUをリリースし、Imagination Technologiesが開発した汎用GPU設計の最適化も進めていました。Appleは今後、すべてのiOSデバイスに64ビットCPUと高度なGPUが搭載されることを確信していました。

iOS以外では、AndroidとWindows Mobileのライセンシーは多種多様なプロセッサとグラフィックハードウェアを使用していました。彼らは64ビットCPUの時代遅れを余儀なくされ、コスト効率の高い「バリューエンジニアリング」に悩まされ、デバイスに低性能のグラフィックを搭載せざるを得ませんでした。

最先端のモバイル GPU を開発することは、費用がかかりリスクの高い提案であり、かつてのモバイル GPU 大手である AMD、Texas Instruments、Nvidia をスマートフォン事業から完全に撤退させる原因となった。

AppleがiOSで目指したのは、極めて高性能なグラフィックスを搭載し、パフォーマンスを急速に向上させ、同時に急速に低下させてバッテリー寿命を節約することでした。そのためには、今後発売される製品、特にiPhone 6と6 Plusの高解像度化、そしてほとんどのノートパソコンよりも高いグラフィックス性能を必要とするiPadの将来モデルへのサポートを最適化する能力が必要でした。

AndroidとWindowsのライセンシーは、はるかに野心的な計画を持っていませんでした。サムスンは新しい高解像度パネルを発表しましたが、標準的なAndroidソフトウェアを実行する基本的なGPUを搭載して出荷されました。彼らの焦点は、誇示するスペックにあり、ゲーム、クリエイティブ、あるいは計算負荷の高いソフトウェアにおける実際の使い勝手やパフォーマンスには置かれていませんでした。

2015 年に Apple は、macOS El Capitan で最近の Mac (Intel の HD 4000 および Iris Graphics、AMD の Graphics Core Next GPU、Nvidia の Kepler ベースの GPU など、2012 年まで遡る GPU を搭載) に Metal サポートを導入しました。

昨年、Apple は macOS High Sierra 向け Metal 2 を発表しました。Metal 2 には、Xcode でのより効率的なプロファイリングとデバッグを可能にする新しいシェーダー デバッガーと GPU 依存関係ビューアー、機械学習を含むニューラル ネットワークのトレーニングという計算集約型のタスクの高速化のサポート、GPU 制御のパイプラインによる CPU ワークロードの軽減 (GPU が独自のレンダリング コマンドを構築し、CPU とのやり取りをほとんどまたはまったく行わずにスケジュール設定可能)、仮想現実のサポートなどの改善点が含まれています。

Metal 2は、新しいA11 Bionicチップを搭載したiOSデバイス(iPhone 8、8 Plus、Xモデル)でもサポートされています。このチップは、Apple初の独自設計の独立GPUを搭載し、グラフィックスの高速化だけでなく、機械学習や拡張現実(VRや顔認識などのアプリケーションを含む)の高速化にもさらに厳密に最適化されています。

Apple はもはや、自社製品が Intel PC の独自バージョンにすぎず、それらを利用しようとする開発者が同じように見えるようにすべて抽象化する必要のある複数の独自 GPU 設計の 1 つを搭載したものであるような、コモディティ グラフィックス コミュニティ内での作業は行いません。

現在、Apple は独自の CPU、GPU、Neural Engine など、高度にカスタマイズされた独自のシリコンを構築しており、これらを効率的かつ最大限の能力で実行するためにベアメタル ソフトウェアを開発する必要があります。

Androidをはじめとするプラットフォームは、1990年代のOpenGLを改良した、コミュニティ開発によるグラフィックフレームワークVulkanのサポートを開始していますが、Appleのような達成可能な目標を共有しているわけではありません。ほとんどのAndroidメーカーは、平均200ドル程度のベーシックなスマートフォンデバイスの大量販売に注力しています。

OpenGLの廃止

今月初め、Apple の開発者向けドキュメントでは、Mac 上の OpenGL と OpenCL のアクティブな開発が停止され、今後は API に「小さな変更」のみが加えられることが通知されました。

同社は、「OpenGLとOpenCLを使用して構築されたアプリはmacOS 10.14でも引き続き動作しますが、これらのレガシーテクノロジーはmacOS 10.14で非推奨となります。OpenGLを使用するゲームやグラフィックを多用するアプリは、Metalを採用する必要があります。同様に、計算タスクにOpenCLを使用するアプリは、MetalとMetalパフォーマンスシェーダーを採用する必要があります」と述べている。

ソフトウェアにおいて、「非推奨」とは、機能が置き換えられ、古いバージョンは当面は引き続き動作するものの、今後は使用を中止し、将来完全に削除される場合に備えることが推奨されることを意味します。

この発表を受けて、「開発者」が反発し、批判の矢面に立っているという、反射的なクリックベイト的な警告が飛び交いました。しかし、OpenGLとOpenCL(Appleが元々開発し、OpenGLコミュニティと共有したGPUコンピューティングフレームワーク)の主な用途は、Linux、Windows、Mac間での低レベルコードの移植です。

3Dグラフィックスを採用した最近のゲームのほとんどは、低レベルのOpenGLでハードコードされていません。開発者は、Epic GamesのUnreal Engine 4、BlizzardのWoWおよびSC2 Engine、Unity Engineといった高レベルのグラフィックス「エンジン」フレームワークを活用しています。Apple独自の高レベルグラフィックスフレームワークであるSceneKit、SpriteKit、ARKitと同様に、これらのフレームワークは既にMetalをネイティブに利用しています。

つまり、現在プレイしているゲーム、そして将来プレイするであろう新作ゲームは、OpenGLの廃止によってそれほど影響を受けることはありません。しかし、Appleの最新の低レベルシリコンの進歩と、それを支えるほぼ同レベルの低レベルMetalによって、これらのゲームは大幅に高速化されます。さらに、MetalはmacOS Mojaveパブリックベータ版で、マルチユーザーFaceTimeを含む高度な新アプリケーションの導入もサポートしています。