よりひろい フロントエンド
Author : Kazuhiro Hara
Author : Kazuhiro Hara
Fri Apr 10 2026

Tinygrad で eGPU と MacBook Air をつなげて LLM を使うと速くなるのか

ちょっと前にニュースになってたので知っている人もいるかと思うが、Tinygrad がリリースしたドライバを使うと Mac でも外付けの eGPU を接続して LLM で使えるらしい。

今回は手持ちの GPD G1 という eGPU を使うことにした。

スペックは以下。

  • AMD Radeon RX 7600M XT 8GB GDDR6
  • RDNA3
  • 約 225 x 111 x 30 mm
  • 約0.92kg

Tinygrad を使うには RDNA3+ でなければいけないのだが、満たしているようだ。

セットアップ

まずは、ドライバのインストールをする。ドライバは TinyGPU.app というデスクトップアプリもあるが、これではなくドキュメントに書かれている以下のやり方に従った。

$ curl -fsSL https://raw.githubusercontent.com/tinygrad/tinygrad/master/extra/setup_tinygpu_osx.sh | sh

どうやら Mac の環境がどうなっているかでインストール方法には前段などがあると思われる。自分の場合は venv を使うことを要求された。Git でリポジトリをクローンして python3 -m pip install -e . をしろと要求されるかもしれない。

続いて、コンパイラのセットアップ

$ curl -fsSL https://raw.githubusercontent.com/tinygrad/tinygrad/master/extra/setup_hipcomgr_osx.sh | sh

もし手こずる人がいるとするとこの段階だと思う。 eGPU とかの相性もあるのかもしれないし、既存の Python 環境との兼ね合いなんかもあるかもしれない。自分はちょっと手こずったが割とスムーズに進めた。

まずはちょっと LLM を試す

無事セットアップを終えたところで、ベンチマークの前に小さなモデルで遊んでみる。

$ DEV=AMD python3 tinygrad/apps/llm.py
using model "Llama 3.2 1B Instruct" with 1,021,800,576 bytes and 1,498,482,688 params
>>> こんにちは
こんにちは!どういたしまして?

>>> あなたはだれですか?
私はAIです。

>>> これはAMDのGPUをつかっているのでしょうか?
はい、AMD Radeon GPUです。

無事動いた。なんか最初は時間がかかるものの、動き始めるとわりとスムーズである。この段階で既に eGPU は使っているような気がする。

ちゃんと eGPU を認識しているのだろうかチェック

LLM が「はい、AMD Radeon GPUです。」とか言ってても怪しいので system_profiler をつかってみる。

$ system_profiler SPDisplaysDataType  
Graphics/Displays:

    Display:

      Type: External GPU
      Bus: PCIe
      PCIe Lane Width: x8
      Vendor: AMD (0x1002)
      Device ID: 0x7480
      Revision ID: 0x00c7

    Apple M3:

      Chipset Model: Apple M3
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 10
      Vendor: Apple (0x106b)
      Metal Support: Metal 4
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina Display
          Resolution: 2560 x 1664 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: No
          Connection Type: Internal

やはり認識しているっぽいことがわかった。

ベンチマークをしてみる

さて、どれくらい速くなったか速度をそれぞれのケースで比較してみよう。

まずは GPD G1 を接続した状態にて走らせてみる。

$ DEV=AMD python3 tinygrad/apps/llm.py --benchmark 50
using model "Llama 3.2 1B Instruct" with 1,021,800,576 bytes and 1,498,482,688 params
15133.79 ms,   0.07 tok/s,    0.07 GB/s, 1084/1290 MB  --  <|begin_of_text|>Tags
4018.62 ms,   0.25 tok/s,    0.26 GB/s, 1043/1290 MB  --  <|begin_of_text|>Tags:
1089.41 ms,   0.92 tok/s,    0.96 GB/s, 1044/1292 MB  --  <|begin_of_text|>Tags: 
 39.04 ms,  25.62 tok/s,   26.77 GB/s, 1045/1292 MB  --  <|begin_of_text|>Tags: 201

...

 36.34 ms,  27.52 tok/s,   29.59 GB/s, 1075/1292 MB  --  <|begin_of_text|>Tags: 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030

つづいて、MacBook Air。これはおそらく GPU ありの場合。

$ python3 tinygrad/apps/llm.py --benchmark 50 
using model "Llama 3.2 1B Instruct" with 1,021,800,576 bytes and 1,498,482,688 params
11085.22 ms,   0.09 tok/s,    0.10 GB/s, 1084/1290 MB  --  <|begin_of_text|>Tags
5598.67 ms,   0.18 tok/s,    0.19 GB/s, 1043/1290 MB  --  <|begin_of_text|>Tags:
861.38 ms,   1.16 tok/s,    1.21 GB/s, 1044/1292 MB  --  <|begin_of_text|>Tags: 
142.57 ms,   7.01 tok/s,    7.33 GB/s, 1045/1292 MB  --  <|begin_of_text|>Tags: 201

...

143.95 ms,   6.95 tok/s,    7.47 GB/s, 1075/1292 MB  --  <|begin_of_text|>Tags: 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030

最後に CPU のみ。さすがに遅い。

$ DEV=CPU python3 tinygrad/apps/llm.py --benchmark 50
using model "Llama 3.2 1B Instruct" with 1,021,800,576 bytes and 1,498,482,688 params
13319.61 ms,   0.08 tok/s,    0.08 GB/s, 1080/1290 MB  --  <|begin_of_text|>Tags
6992.82 ms,   0.14 tok/s,    0.15 GB/s, 1043/1290 MB  --  <|begin_of_text|>Tags:
1167.93 ms,   0.86 tok/s,    0.89 GB/s, 1044/1292 MB  --  <|begin_of_text|>Tags: 
353.84 ms,   2.83 tok/s,    2.95 GB/s, 1044/1292 MB  --  <|begin_of_text|>Tags: 201

...

391.23 ms,   2.56 tok/s,    2.74 GB/s, 1073/1292 MB  --  <|begin_of_text|>Tags: 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030

結果発表

  • AMD : GPD G1 をつかう場合、まあ使えなくもないかって感じ
    • 36.34 ms, 27.52 tok/s, 29.59 GB/s
  • 無印 : たぶん MacBook Air の内蔵グラフィクスを使う
    • 143.95 ms, 6.95 tok/s, 7.47 GB/s
  • CPU : CPU のみで実行
    • 391.23 ms, 2.56 tok/s, 2.74 GB/s

MacBook Air M3 を使う場合は eGPU を利用すると4倍くらい速くなることがわかった。GPD G1 は MacBook Air の半分くらいのサイズなので、これなら eGPU ごと外に持っていくなんてことも出来そうに思える。まあ自宅にある GPU 搭載マシンにリモートアクセスしたほうがいいようにも思うものの、ロマン度という点では優っているのではないだろうか。

AIeGPULLMMac

Share

About site

「よりひろいフロントエンド」はじめました

いろいろやっている自分を一言で表す言葉として「より広いフロントエンド」を思いつきました。このサイトではこの言葉を中心に ウェブ、XR、UI デザイン、バックエンド、インフラストラクチャーやその周辺のことを興味の赴くまま広くディスカバリーしていきます

About Me

カンソクインダストリーズのロゴ

「よりひろいフロントエンド」運営元 カンソクインダストリーズ では、フロントエンドを中心によろずご相談お受けいたします。お気軽にお問い合わせください。