0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# くらべたら爆速 - Appleの新「Core AI」を実機ベンチ

0
Last updated at Posted at 2026-06-10

Appleの新フレームワークでオンデバイスLLMをMLXと比較した

実際に比較してみるのって大切ですね。

どうせ遅いと思ってた。
使いやすいようにぬるい感じになってるんでしょって。
ゴリゴリ最適化されてるMLXとかの方が速いんでしょって。

結果で度肝を抜かれた。

Apple Core AI vs MLX vs CoreML — iPhone 17 Pro, Qwen3-0.6B

クソ速えやん!!

🐥

WWDC 2026 で発表された Core AI(Core ML の後継)で LLM を iPhone 17 Pro 実機で動かし、MLX・CoreML と同一モデル・同一ハーネスで比較しました。

iPhone 17 Pro・Qwen3-0.6B・short-chat・warm デコード tok/s(中央値):

リポジトリ(再現可能・生データ・Swift アダプタ全部公開): https://github.com/john-rocky/apple-silicon-llm-bench

Core AI とは

iOS / macOS 27 から入る Core ML の後継。パイプラインは

PyTorch → coreai-torch → .aimodel(MLIR IR) 
→ coreai-models の Swift ランタイム(CoreAILM)で実行

LLM は coreai.llm.export <model>.aimodel にエクスポートできる。今回は Apple 公式の例にもなっている Qwen3-0.6B を、公式の export → 公式の Swift ランタイムで動かした("Apple が想定する使い方"に忠実に)。

uv run coreai.llm.export qwen3-0.6b --platform iOS

結果の読み方: cold / warm(初回コスト)

Core AI GPU の 181 tok/s は warm(定常)
pipelined エンジンは最初の1回だけカーネルコンパイル+3段パイプライン充填のコストがあり、初回 71 tok/s
ただしこれは一度きりで、アプリを再起動しても 2回目以降は ~181(コンパイル済みカーネルが効く)。
MLX は最初から ~112 で安定。

要するに、
「初回だけ Core AI が遅く、2回目以降はずっと速い(≈1.6× MLX)」。

再現方法(実機ドライブの注意点)

scripts/bench_coreai_iphone.sh が export → AOT compile → バンドル組立 → サイドロード → 実行 → 集計までやる。1つだけ罠:

devicectl process launch--console 付きで非対話シェル(バックグラウンド)から叩くと CoreDeviceError 10002 で失敗する。**--console なし(デタッチ)**で起動し、--runs N(1回 cold + 残り warm を1セッションで)にして、終わってから Documents/results を pull するのが安定。

ビルド面では、coreai-modelsCXGrammar.xcframeworkexecutorch.xcframework が両方 include/module.modulemap を出して衝突するため、iOS アプリからは ExecuTorch を外した。

ハマりどころ①: iOS は IR を JIT できない → AOT コンパイル必須

エクスポートした .aimodel は MLIR IR(main.mlirbcompilation.targets: [])。macOS は読み込み時に JIT するが、iOS は JIT 不可。生 IR をそのままロードすると、こうなる:

Model load failed: NSPOSIXErrorDomain Code=2 "No such file or directory"

デバイス向けに事前(AOT)コンパイルが必要:

xcrun coreai-build compile qwen3_0_6b_ios.aimodel \
    --platform iOS --preferred-compute neural-engine --output out/
# → out/qwen3_0_6b_ios.h18p.aimodelc  (GPUファミリ別。h18p = iPhone 17 Pro)

そして metadata.jsonassets.main をコンパイル済みファイル名(qwen3_0_6b_ios.h18p.aimodelc)に差し替えてバンドルを組み直す。

ハマりどころ②: 演算ユニット(ANE/GPU)はエクスポート形状で決まる

実行時フラグでは切り替わらない。 EngineFactory がモデル構造から自動判定する:

  • --platform iOS(静的形状)→ チャンク静的と判定 → ANEstatic-shape エンジン)
  • 動的エクスポート → GPUcoreai-pipelined エンジン)

なので GPU と ANE を比べたいなら 2つの別バンドル(静的=ANE用 / 動的=GPU用)を AOT コンパイルして用意する。coreai-pipelined を静的モデルに強制すると unsupportedEngineVariant で弾かれる。

メモリ: CoreML-LLM が省メモリ王者

自作の CoreML-LLM 変換(Qwen3-0.6B のステートフル INT4 ANE チャンク、ANE 100%)はデコード最遅(39)だが 184 MB と圧倒的に省メモリ(Core AI ANE の約 1/6)。デコード速度(39.8)は Mac でのパリティ実測と完全一致した。用途で最適なランタイムは変わる——速度なら Core AI GPU、メモリなら CoreML。


詳細・methodology・生 JSONL・Swift の CoreAIRuntime アダプタは全公開:
https://github.com/john-rocky/apple-silicon-llm-bench

🐣


フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。

もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…

いずれも中間コストを省いたリーズナブルな価格でお請けできます。

お仕事のご相談はこちらまで
rockyshikoku@gmail.com

機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。

X
Medium
GitHub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?