世界を動かす技術を、日本語で。

AppleがNvidiaのeGPUをArm Macで使用できるドライバーを承認

概要

Appleが Nvidia eGPU をArm Macで動作可能にするドライバを承認。 このドライバは Tiny Corp による開発で、Nvidia公式ではない。 Docker を使ったコンパイルが必要で、LLM用途向け設計。 System Integrity Protection (SIP) の無効化が不要となった。 Appleが 署名許可 を出したことで実現。

Apple、Arm Mac向けNvidia eGPUドライバを承認

  • Appleが Tiny Corp 製のドライバを承認
  • ArmアーキテクチャのMacで Nvidia eGPU 利用が可能
  • ドライバは Nvidia公式 ではなく、Tiny Corpの独自開発
  • Plug-and-play には非対応、Dockerによる 手動コンパイル が必要
  • 主な用途は 大規模言語モデル(LLMs) の処理
  • Appleが System Integrity Protection (SIP) の無効化を不要に
  • Appleによる ドライバ署名許可 でセキュリティ維持
  • 公式サポートではないため、 一般用途やゲーム には非推奨
  • 最新情報は Sean Hollister による報道

Hackerたちの意見

わお、これはワクワクするね。今旅行中だけど、家に5090が転がってるんだ。試してみたいな。ドキュメントはここにあるよ: https://docs.tinygrad.org/tinygpu/ M4 Mac Miniで動くといいな。どんなハードウェアが必要か知ってる人いる?フルATXのPSUが必要だよね?それでtinygradがLLM推論できるの?

想像力が足りないのかな。だけど、小さめだけど速いVRAMと優れた計算能力を持つGPUが、大きいけど遅いVRAMと弱い計算能力のMacをどう補強するのか、イマイチ分からないな。インターコネクトがGPUのレイヤーをすぐに切り替えられるほど強力じゃないと思うけど?

「転がってる」。開封してない5090が箱に入ってるけど、同じ運命を辿るのは分かってるから、返送することにしたよ。5090を衝動買いするお金があるのに、実際に使う時間がないなんて、なんて贅沢なんだろう。

AliExpressで約100ドルの安いGPUエンクロージャーが買えるよ。標準のPSUが必要だけど、Mac Miniにはocculinkがないから、USB-Cの限界にちょっと制約されるかもね。IntelがArcドライバーを整えれば、リアルなバジェット楽しみが見られるかも。https://www.newegg.com/intel-arc-pro-b70-32gb-graphics-card/... 32GBのVRAMが1000ドルで、さらに500ドルのMac Miniだよ。

Appleが2018年からNvidiaのeGPUドライバーにサインしないことで、どうやって規制の目を逃れているのか分からないな。

GoogleがWindows Phone用のYouTubeクライアントを許可しなかったことで、どうやって規制の目を逃れたのと同じだね?

政府は気にしてないの?市場の少数派なの?彼らのコンピュータの大半はNvidiaのGPUを入れるスロットがなかったし、今もないってこと?

Appleはどの市場でも独占してないよ。

SIPを無効にするだけでいいんじゃないの?

NVIDIAが本当に試みてる証拠ってある?私の理解では、Appleは10.13以降、サードパーティがグラフィックドライバーを書くのを許可してなかったけど、こういう非グラフィックドライバーはできたかもしれないね。

なんでこれが元のソースにリンクせずにこのプロキシソースに繋がってるのか分からないな: https://x.com/tinygrad/status/2039213719155310736

それが、正式にはTwitterと呼ばれていたサイトに載ってるから、実際のナチスがいっぱいなんだよ。

最近はXが元の情報源ってことが多いよね?

科学ソフトウェアを書いてるんだけど、分子動力学のコンポーネントはGPUでかなり速く動くんだ。CUDAだけを使ってるけど、これが一番コーディングしやすいからね。これって、ARM Macでは無理だと思ってたけど、このニュースでそれが覆るのかな?

このドライバーはCUDAをサポートしてない。

どっちの会社も見栄っ張りで、素晴らしいことが実現できないのが残念だね。もしLinux上でMacハードウェアにNvidiaを使えたら、どんなにいいか想像してみてよ。技術は揃ってるのに、閉じられた壁がそれを妨げてるんだ。お客さんとして、私たちが購入するもののコントロールを手放すと、こういう損失が出るんだよね。

購入しない?俺はApple製品持ってないけど、全部問題なく動いてるよ。

なんでAppleは壁の中でドライバーを作る必要があるの?せめて主要なデバイスカテゴリには公式ドライバーをサポートすべきだよね。

なんでAppleは壁の中でドライバーを作る必要があるの?それが壁の中の全てのポイントじゃないの?彼らが承認しないと通らないものを作らずに、どうやって壁の中を実現できるの?

「Appleはなぜドライバーを囲い込みの中で作る必要があるの?」 MicrosoftがWindowsのドライバー署名を要求するのと同じ理由だよ。ドライバーはルート権限で動くからね。

「Appleはなぜドライバーを囲い込みの中で作る必要があるの?」 第三者のドライバーは大体クソだからだよ。だからAppleは、インテル時代でも比較的なWindows製品よりもバッテリー寿命を倍にすることができたんだ。

Appleは、ほとんどのOSがサポートしている主要な標準デバイスカテゴリ、つまりNVMeやXHCI、AHCIなどをサポートしていないの? 問題は、標準ドライバーインターフェースに準拠せず、ベンダー特有のドライバーが必要なハードウェアに関するものだよ(そんなのが常に存在するわけじゃないし)。多くのものはユーザースペースドライバーでサポートできるし、それはAppleが書く必要がなくて第三者が提供できるんだ。

MacとPCは根本的に違うよね。アーキテクチャはずっと異なってたけど、Intel Macの時代にちょっとその境界が曖昧になったかな。現代のMacはMacintoshの子孫で、対してPCはIBM PCの子孫なんだ(実際の名前はPCクローンだけど、IBM PCはもう存在しないからクローンの部分は省かれてる)。で、AppleシリコンのMacになると、また全然違う。例えば、MacはNVMeを使わず、ただのNANDを使ってる(コントローラー部分はSoCに統合されてるし)。UEFIやBIOSも使わなくて、Boot ROM、LLB、iBootの組み合わせを使ってるんだよね。

指示のリンクを見てスクリプトを読んだんだけど…TinyGPUアプリはGitHubにソース形式でないみたいだけど、GPUがLinuxのVMに渡されて実際のドライバーを使って、またMacに戻されるって感じかな(これがTinyGradチームが実際に承認されたことかもしれない)。もしかしたらDockerの役割を完全に誤解してるかもしれないけど。

ここに彼らのドキュメントがあるよ: https://docs.tinygrad.org/tinygpu/ 。実際の(ユーザースペースの)ドライバーはここにある: https://github.com/tinygrad/tinygrad/tree/4d36366717aa9f1735... 。私の理解では、彼らはNVIDIAのGPU用にDockerを使って「GPUにターゲットを合わせてコードをコンパイルするにはどうするか」をやってるみたい。AMDについては、macOSで適切なターゲットを持った自分たちのLLVMをコンパイルしてるだけだね。

ARMのノートパソコンを持っている人が増えて、GPUを別の場所に置くようになったら、面白いUXの問題は、GPUがローカルのワークフローに「ついていける」かどうかだと思うんだ。全体のワークフローをGPUホストに移させるのではなくてね。これがGPUGoやTensorFusionで見ている問題なんだ。ローカルファーストの開発フローで、必要な時にリモートGPUにアクセスできるって感じ。ここにいる人たちは、真のeGPUのセマンティクスを求めているのか、それともMacからリモートコンピュートにアクセスするための摩擦の少ない方法を求めているのか、ちょっと気になるな。

GPUから画像を出力する時に、ネットワークの遅延が100ミリ秒も加わるのは嫌だな…

いい技術プロジェクトだけど、正直90%のシナリオでは役に立たないね。LLM用にNVIDIAのGPUを使いたい? なら、中古で基本的なPCを買えばいいよ(GPUが一番のコストだし)。VRAMをたくさん使いたいなら、Macを買えばいい。提案された解決策だと、半端なシステムになっちゃうし、GPUはThunderboltポートに制限されるし、NVIDIAのツールやライブラリにアクセスできないし、さらにMLXのようなネイティブソリューションの統合もないから、将来のmacOSアップデートで壊れるリスクもあるよ。

鶏と卵の関係だね。NVIDIAのツールが不足しているのは、ハードウェアが今までmacOSで使えなかったからだろうね。今は使えるようになったから、状況が変わるかもしれない。

私の理解では、Tinygradでしか動かないみたい。何もないよりはマシだけど、CUDAやVulkanを使ったpytorchはこれじゃ無理だね。[1] https://docs.tinygrad.org/tinygpu/