7 ポイント 投稿者 GN⁺ 2025-07-15 | 3件のコメント | WhatsAppで共有
  • MLXは、Apple Siliconベースの機械学習研究者向け配列フレームワークで、NumPyやPyTorchに近い使い勝手を提供
  • MLXCUDAバックエンドを追加する作業が進行中
  • 主な目的は、ユニファイドメモリ(unified memory)のサポートNVIDIAハードウェアの幅広い活用
  • 現時点ではチュートリアルのサンプルのみ動作可能で、ビルドとテストはUbuntu 22.04 + CUDA 11.6環境で確認済み
  • 初期の性能問題やボトルネックの改善を進めながら、最適化とリファクタリングが繰り返し行われている
  • MLXのCUDAバックエンドはAppleの支援を受けて進められており、ユニファイドメモリとNVIDIAハードウェア対応を通じて、Macで開発し大規模な計算環境へデプロイする際に一貫した体験を提供することが目標

MLXフレームワーク紹介

  • MLXは、Appleの機械学習研究チームが開発した機械学習向け配列フレームワーク
  • エンジニアや研究者が効果的に実験し、素早くアイデアを検証できるよう開発された
  • Apple Silicon対応が特徴だが、今後はCUDAバックエンドの追加によりNVIDIA GPU環境でも動作可能性を広げようとしている

主な特徴

  • 親しみやすいAPI: Python APIはNumPyに、上位パッケージのmlx.nnmlx.optimizersPyTorchに近いインターフェースを提供
    • C++CSwift APIも用意されており、Python APIと一貫した使い勝手を保証
  • 合成可能な関数変換: 自動微分、自動ベクトル化、計算グラフ最適化などの機能を含む
  • 遅延評価: 複数の演算をまとめ、実際に必要になったときだけ結果を計算する構造で、効率的なリソース活用が可能
  • 動的グラフ生成: 入力データのshapeが変わっても遅いコンパイルなしで即時実行でき、開発やデバッグがしやすい
  • マルチデバイスとユニファイドメモリモデル:
    • 従来はCPUとApple GPUのみ対応していたが、CUDAバックエンドによりNVIDIA GPU環境への対応を進めている
    • ユニファイドメモリ構造の採用により、メモリコピーなしで、対応するすべてのデバイスで同じオブジェクトを演算可能
  • 簡潔で拡張可能な設計: 研究者がフレームワークを容易に拡張・改善できる

他フレームワークとの違いと着想

  • NumPyPyTorchJaxArrayFireなどから設計上の着想を得ている
  • 特にユニファイドメモリモデル簡潔なインターフェース即時実行/デバッグ環境を重視している

代表的な例と活用分野

  • MLX Examplesレポジトリには多様な実践コードがある
    • Transformer言語モデルの学習
    • LLaMAベースの大規模テキスト生成とLoRAを用いたファインチューニング
    • Stable Diffusionによる画像生成
    • OpenAI Whisperベースの音声認識など、最新モデルの実装事例を含む

MLXの意義とCUDA対応

  • Apple Silicon中心のフレームワークだったMLXは、CUDAバックエンド導入によりNVIDIA GPU環境でも汎用的に活用できる可能性を広げている
  • 最新のCUDA対応により、AppleとNVIDIAの両ハードウェア上で、最新の研究および産業利用の双方に適したフレームワークとして位置づけられる見込み

3件のコメント

 
gosarinamu 2025-07-16

macOSでNVIDIA GPUだけ使えるようにしてくれればいいのに……はは。

 
yangeok 2025-07-16

いい話ですね(笑)。早くCUDAに対応して、Macでも高速学習ができるようになってほしいです〜!

 
GN⁺ 2025-07-15
Hacker Newsの意見
  • 自分の理解が合っているか確認したい: 1つ目、MLXでビルドされたプログラムはCUDA対応チップで動作可能。だが2つ目、CUDAプログラムがApple Siliconで動作することは不可能。2つ目の理由は著作権侵害(特にNVIDIAの有名な参入障壁)になるから、という理解で合っているのか気になる
    • 1つ目は正しい。開発者が比較的低スペックなAppleデバイス(UMA含む)で開発し、完成したコードをNvidiaの比較的高スペックなシステムへデプロイできるようになる。いろいろな理由で便利
    • 2つ目は著作権侵害ではない。APIの再実装は可能
    • 2つ目については、本当にその説明は当てはまらない気がする。AMDのHIPも17〜18年ごろにOpenCLを諦めて同じことをしている
    • 自分は3つ目を望んでいる。NVIDIA GPUをApple Siliconに接続してCUDAが使えるようになるといい。Apple Siliconとユニファイドメモリ、GPU、CUDAをPyTorch、JAX、またはTensorFlowで一緒に使うイメージだが、まだMLXをきちんと体験できていない
    • 2つ目ができないのは、単純にずっと難しいから
  • 「いや、Appleプラットフォームに公式のCUDAサポートはないのでは?」と思ったなら、このパッチセットが「CUDA 12およびSM 7.0(Volta)以降のLinuxプラットフォーム」までサポートするという話もあわせて見る必要がある
    インストール案内
  • このプロジェクトは、Electronなどの開発者として有名なzcbenzが主導している
    zcbenz紹介
  • MLXの主要な特徴の1つがユニファイドメモリアーキテクチャ(UMA)の利用だが、これがどう動作するのか気になっている
    リポジトリのreadmeのbulletを参照: MLX GitHub
    これをすべてのUMA APU(メーカーを問わず)へ拡張できると面白そうだと思うが、ディスクリートGPUでは方式を変える必要があるのではないかという疑問がある
    PRコメントを読むと、CUDAもUMA APIを直接サポートし、必要な場合は透過的にコピーを処理しているようだ
    • 自分の経験では、プリフェッチ機能の不足でコピー待ちが発生し、メモリボトルネックがかなり深刻になる問題がある。データセット全体がVRAMに収まるなら手動プリフェッチで何とかなるが、自分のアプリケーション(ML学習)では性能低下が大きすぎて、結局ストリーミングロードへ切り替えた
  • 少し別の話だが、MLX関係者のかなりの人数がAppleの正式所属ではないように見える。例として prince_canumaのX を参照
    Appleが裏で支援しつつ、公式には表に出していないのだろうかと気になる。チームが移籍するといううわさもあった
  • PR説明には「CUDAバックエンドを追加する ongoing effort」と書かれている
    つまり、MLXコードがx86 + GeForceハードウェア上でビルドおよび実行可能になるという意味で、その逆ではない
  • 「Macでコードを書いてテストし、スーパーコンピュータへデプロイできるなら良い開発体験」という話のように、では今やMLXをLinuxで使えるのかが気になる
    実際に試してみたところ、PyPIにはPython 3.12版しか上がっていない
    MLX-CUDAのPyPIページ
  • これがStrix Haloの影響なのか気になる。仕事用PCの予算に余裕があったのでEVO-X2を買ったが、これがミドルレンジのznver5 EPYCマシン群と同等かそれ以上だった。大半のEC2やGCEインスタンス(NVMe込みでも)を大きく上回る。このハードウェアの価格は1800
    最近は、DGX SparkがStrix Haloと比べてコストパフォーマンスで劣るというYouTuberのレビューも出ている。欠点はROCmがまだ弱いこと(近いうちに良くなりそう)。もしAppleデバイスでCUDAが完全に動くなら、Strixがどれだけ安くて優れていても真剣に悩む選択肢になる
    • Strix HaloとはつまりAMD Ryzen AI Max+ 395のこと。Framework DesktopやいくつかのミニPCに搭載されている。このチップのメモリ帯域幅は200GB/sで、一般的なx86プラットフォームとしては非常に優秀だが、Nvidia GPU(たとえば5090は1792GB/s)やApple M3 Ultra(800GB/s)と比べるとかなり見劣りする。価格性能比は素晴らしいが、LLMのようなメモリ集約型の処理では、ようやく最低限の性能ラインに達したところだという印象
    • PR説明を見ると、クラウドクラスタートレーニングがターゲットであることは明らか
    • AMD GPUのニューラルネットワーク演算が近いうちにNvidiaの競合になると言われてもう10年だが、いまだに実現していない
    • m4 Mac miniと比べるとどうなのか気になる
  • MLXモデルにはとても深く感銘を受けている。家族全員にローカルモデルを開放しても、Nvidiaマシンのように火災リスクを心配する必要がない。Apple SiliconがNvidia陣営に対する本格的な競争相手になってほしい。CUDA対応がもし embrace, extend, extinguish(EEE)に当たる戦略なのかも気になる
  • Appleは今後、mシリーズチップベースのデータセンターを構築し、アプリ開発、テスト、外部サービスのホスティングなどに活用する計画がある