
Apple Siliconへの移行に伴い、Macユーザーが長らく失っていた選択肢がある。それが外部GPU(eGPU)のサポートだ。
Intel Mac時代には公式にサポートされていたが、Apple Siliconの登場とともにその門戸は閉ざされ、ユーザーは内蔵のユニファイドメモリとGPUコアに頼る運用を余儀なくされてきた。
もちろん、機械学習のフレームワーク「MLX」などを活用したローカルLLM(大規模言語モデル)の実行において、ユニファイドメモリの恩恵は大きい。しかし、近年のメモリ価格の高騰や、一部モデルでの最大搭載メモリ量の制限、そして何より「CUDA」を前提としたAIエコシステムから取り残されるという課題は、パワーユーザーにとって無視できないものとなっていた。
そんな中、彗星(すいせい)のごとく現れたのが、Appleの承認を受けた署名済みドライバとして動作するという、Tiny Corpの「TinyGPU」だ。今回はこの画期的なソリューションを用いて、Mac Studioに最新のNVIDIA GPUを接続してみた。本記事では導入手順から実用性までを詳しくチェックしていく。
|
|
|
|
●「SIP有効」のまま動く衝撃──TinyGPUが切り開く新たな可能性
これまでのApple Silicon Macにおける外部GPUの試みは、その多くが「SIP(システム整合性保護)」の無効化や、システムへの改変を伴うものだった。しかし、今回のTinyGPUが決定的に異なるのは、Appleの正式な枠組みである「DriverKit」を使用したドライバ拡張として提供されている点だ。
これが意味するのは、ユーザーはMacのセキュリティ機能を維持したまま、署名済みのドライバを導入するだけで外部GPUを利用可能になるということだ。
対応環境はNVIDIAの「Ampere」世代(RTX 30シリーズ)以降とされている。今回は最新のBlackwellアーキテクチャを採用した「GeForce RTX 5060 Ti」を検証に使用した。
●なぜ今、MacでNVIDIAなのか──CUDAという「不可欠な」エコシステム
|
|
|
|
ここで、なぜあえてMacでNVIDIA GPUを動かす必要があるのか、その背景を整理しておきたい。開発環境としてMacは非常に優秀であり、MLXの登場によってローカルでの試行錯誤は格段に快適になった。
しかし、プロダクトとして本番環境(サーバサイド)で動かすとなると、依然としてCUDAが事実上の標準であるという現実は変わらない。
また、NVIDIAが卓上ワークステーション向け製品「DGX Spark」を展開するなど、個人のデスク上でAI開発を完結させるというトレンドも強まっている。
こうした流れの中で、Macを使い続けながらCUDA環境にアクセスできる「TinyGPU」は、まさにローカルAIユーザーが待ち望んでいた「決定打」になり得る存在だ。
そこで今回は、下記の検証環境を用意した上で、TinyGPUを実際に導入して使い勝手を確かめてみた。
|
|
|
|
・ホスト機:M4 Max Mac Studio(macOS Tahoe 26.5)
・外部GPU:NVIDIA GeForce RTX 5060 Ti 16GB(Blackwell)
・GPUドック:Minisforum DEG2(Thunderbolt 5/OCuLink対応)
・接続:Thunderbolt 5
・電源:600W ATX電源
接続インタフェースには、最新のThunderbolt 5を採用した。ここで注意したいのは、使用したドック(DEG2)の仕様だ。Thunderbolt 5は双方向で最大80Gbps、ブーストモードが働くと一方向で最大120Gbpsの帯域を持つが、PCIeとしては4.0 x4(4レーン)の制限を受ける。
それでは早速、Mac StudioへTinyGPUを導入する手順を詳しくチェックしていこう。
●「TinyGPU」の導入手順
TinyGPUを利用するにあたり、事前に「Docker Desktop」の導入と初期設定を済ませておく必要がある。その上で、tinygrad本体とTinyGPU.appを以下のコマンドで導入する。
```shell
# tinygradの導入とTinyGPUアプリのダウンロード
mkdir ~/tinygrad
cd ~/tinygrad
export PYTHONPATH=.
curl -fsSL https://raw.githubusercontent.com/tinygrad/tinygrad/master/extra/setup_tinygpu_osx.sh | sh
export PATH="$HOME/.local/bin:$PATH"
```
上記コマンドを実行すると「"TinyGPU"が新しいドライバ機能拡張を使おうとしています」と表示されるので、「システム設定を開く」をクリックしよう。
「ログイン項目と機能拡張」に移ると、「機能拡張」の「アプリ別」内に「TinyGPU」が追加されているので、「i」アイコンをクリックしよう。
すると、「TinyGPU機能拡張」ダイアログが表示されるので、「ドライバ機能拡張」のスライドアイコンをクリックして有効化し、「完了」をクリックしよう。
導入の成否は、アプリケーションフォルダ内の「TinyGPU.app」を起動し、「Extension is ready!」と表示されるかどうかで判断できる。
なお、この状態でシステムレポートを見ても、NVIDIA GeForce RTX 5060 Tiを認識できていないように見えるが、下記コマンドを実行すると正常に検出されていることが確認できる。
```shell
system_profiler SPDisplaysDataType
```
●動作検証と所感
導入が完了したので、実際の動作検証に移ろう。利用にあたっては、TinyGPU.appを起動した状態で、tinygradディレクトリに移動し、NVIDIAバックエンドを指定する環境変数DEV=NVを付与してコマンドを実行する。
```shell
cd ~/tinygrad
DEV=NV python3 -m tinygrad.llm
```
実行するとDockerコンテナの作成とデフォルトモデル(Llama 3.2 1B Instruct)のロードが始まり、完了すると「>>>」プロンプトが返ってくる。
今回は導入に続いて、下記コマンドを実行してベンチマークを計測してみた。結果は以下の通りだ。
```shell
cd ~/tinygrad
DEV=NV python3 -m tinygrad.llm --benchmark 32
```
まず確認できたのは、DEV=NVの指定により、外部GPUが実際に計算処理を担っているという事実だ。「動く」ことは確認できたが、そのパフォーマンスの中身を分析すると、現時点での課題が浮き彫りになる。
特筆すべきは、生成時のメモリスループットだ。実測では毎秒約15GBと表示されているが、RTX 5060 Tiの理論帯域は毎秒448GBに達する。
つまり、現時点ではGPUが持つポテンシャルのわずか3%程度しか引き出せていないことになる。
なぜ、これほどの乖離(かいり)が生まれるのか。その原因を考察すると、大きく2つのボトルネックが浮かび上がる。
1つは、インタフェースのレイテンシだ。自己回帰的なトークン生成では、1トークンごとに多数の小さなカーネルを起動する必要がある。
今回のThunderbolt 5接続(PCIe 4.0 x4制限)では、カーネルの起動と同期のたびに外部接続を往復することになり、その通信レイテンシが演算性能を完全に食いつぶしている可能性がある。
もう1つは、ソフトウェア側の最適化不足だ。tinygradのNVIDIAバックエンドが生成するカーネル自体の効率が出ていない可能性が高い。
これを確認するため、以下のコマンドでカーネルの自動探索(JITBEAM=2)を有効にした検証も試みた。
```shell
DEV=NV JITBEAM=2 python3 benchmarks/benchmark_llama.py
```
しかし、この探索プロセス自体が24時間かかっても終了せず、さらにはOSごとフリーズするといった不安定な挙動に見舞われたため、最適化後の真の数値を計測するには至らなかった。
また、初動の3トークンで発生する「ウォームアップ」の重さも無視できない。
1トークン目に約5秒かかるのは、JITコンパイルに伴う初回のみのコストだが、短いプロンプトを繰り返す対話用途では大きなストレスとなるだろう。
●まとめ
正直に言えば、TinyGPUはまだ「常用できる」段階にはない。動作は非常に不安定で、1Bクラスの軽量モデルですら毎秒14トークン程度にとどまっており、実用的な推論性能が出ているとは言い難いのが現状だ。
しかし、Appleから正式に認証を受け、SIPを有効にしたまま外部GPUを計算資源として扱えるようになったという「枠組み」の達成は、MacにおけるAI開発の歴史において極めて大きな前進だ。
かつてIntel MacでeGPUがたどった道のように、このTinyGPUもまた、ソフトウェアのアップデートを通じて実用的なツールへと育っていくことを期待せずにはいられない。
Apple Silicon MacでローカルAIの限界を追求し、CUDAエコシステムとの橋渡しを求めるユーザーにとって、この動向は引き続き追いかける価値があるといえよう。
|
|
|
|
|
|
|
|
Copyright(C) 2026 ITmedia Inc. All rights reserved. 記事・写真の無断転載を禁じます。
掲載情報の著作権は提供元企業に帰属します。