onwx'

onwx'(onwx-dash)— Ryzen AI の Radeon GPU と NPU で LLM

日本語 | English

onwx'(オンダブルエックス・ダッシュ、中の名前は onwx-dash)は、AMD Ryzen AI の PC で大きな言語モデルを動かすアプリです。 モデル(GGUF)は内蔵の Radeon GPU が動かし、XDNA2 NPU がプロンプトの読み込みの一部を手伝います。 Ryzen AI Max(Strix Halo、Radeon 8060S / 8050S)と Ryzen AI 300(Radeon 890M / 880M)で動きます。0.6.1 までは onwx-halo という名前でした。 チャット画面、OpenAI 互換 API、タスクトレイのモデル管理は、NPU 専用アプリ onwx と同じです。

すぐに使う

Windows(PowerShell):

irm https://huggingface.co/ryugyosoft/onwx-dash/resolve/main/install.ps1 | iex

Linux(Ubuntu 24.04 以降):

curl -fsSL https://huggingface.co/ryugyosoft/onwx-dash/resolve/main/install.sh | bash

開いたウィンドウの「モデル」でモデルをダウンロードして「ロード」を押せば、http://localhost:8110/chat で話せます(API は http://localhost:8110/v1)。必要なものと詳しい手順は下の「必要なもの」「インストール」にあります。

速さ(llama.cpp との比較)

同じ PC、同じ GGUF で llama.cpp(Vulkan 版と ROCm 版)と比べました。

Ryzen AI 300(Ryzen AI 9 HX 470、Radeon 890M)

プロンプトの読み込みは GPU だけで、Qwen3.6 は llama.cpp(速いほう)の約 2.0〜2.7 倍、Nemotron は約 1.2 倍です。NPU が手伝うと Qwen3.6 はさらに約 1.15 倍、Nemotron は約 1.5 倍になります。生成も llama.cpp より速く、Qwen3.6 は MTP を使うと約 32 tok/s です。

HX 470:プロンプトの読み込みの速さ HX 470:生成の速さ

Ryzen AI Max(Ryzen AI Max+ 395)

プロンプトの読み込みは GPU だけで llama.cpp(速いほう)の約 1.6〜1.9 倍、NPU が手伝うと長いプロンプトでさらに速くなります。生成も llama.cpp より速く、MTP やドラフトを使うともう一段上がります。

プロンプトの読み込みの速さ 生成の速さ

概要

  • エンジン:gufo(MIT ライセンス)をもとにした onwx-halo エンジン(onwx/bin/halo/<GPU>/onwx_halo.dll)。HIP / rocBLAS / hipBLASLt は AMD TheRock の Windows 版ランタイムを同梱しています。GPU ごとに別のエンジンがあり(gfx1151 = Ryzen AI Max、gfx1150 = Ryzen AI 300)、インストールとアップデートではその PC の GPU の分だけをダウンロードします
  • トークナイザーとチャットテンプレートは GGUF の中の情報から作ります(llama.cpp と同じトークン列になることを確認済み)
  • onwx と並べて入れられます:インストール先 %LOCALAPPDATA%\onwx-dash、設定 %APPDATA%\onwx-dash、スタートメニュー「onwx-dash」、API の既定ポート 8110
  • onwx-halo を使っていた場合:最初の起動で onwx-halo の設定を引き継ぎ、ダウンロード済みのモデルはそのままの場所(%APPDATA%\onwx-halo\models)から使います

エンジンについて(gufo からの移植)

onwx' のエンジンは、Strix Halo 向けの C++20 / HIP 推論エンジン gufo(MIT ライセンス)の NPU 対応フォーク mikealanni/gufo を移植して、onwx' 用に手を入れたものです(Windows でのビルドは本家 gufo-org/gufo の仕組みを参考にしています)。

  • Windows で動くようにしました:NPU の手伝い(プロンプトの行列計算の一部を XDNA2 NPU に任せる仕組み)はフォークにしかなく、Linux 専用でした(本家 gufo は Windows でもビルドできますが、NPU の仕組みはありません)。AMD TheRock の Windows 版 HIP ランタイムでビルドし、NPU の手伝いも Windows の NPU ドライバ(XRT)で動くようにしました。Linux 版もあります(0.7.1 から)
  • GPU と NPU を同時に使うときのバグを直しました:
    • ある行列を丸ごと NPU に任せると、GPU 側が 0 行で起動してメモリを壊し、生成で落ちていた
    • NPU が計算した行の結果がずれていた(直したあと、GPU だけのときと同じトークンになることを確認)
    • Linux で、ほかのプロセスが GPU を使うと、NPU と共有するバッファを GPU のドライバが動かしてしまい、NPU のページフォールトと間違った答えになっていた(NPU 側で確保したバッファを GPU に登録する形に変更。2 プロセス同時の連続試験で 0 件)
  • そのほかの GPU 側の修正:2,048 トークン以上のまとまりで作業領域があふれてページフォールトになっていた、Linux の Strix Halo で 1024 スレッドのワークグループが 128 を超えるレジスタを使えずに失敗していた(ROCm/TheRock#9639 で報告)
  • onwx' で足したもの:Q6_K を Q8_0 に作り直さずにそのまま読む MoE カーネル(約 0.8 GB 減)、IQ4 / IQ3 / IQ2 の GGUF、短いプロンプトもまとめて計算する MoE(続きの質問の読み込みが 5〜7 倍速い)、KV キャッシュを使う分だけ確保、など

動くモデル(Ryzen AI Max+ 395)

モデル ファイル(取得元) 大きさ プロンプト読み込み 生成
Qwen3.6 35B-A3B Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf(MTP 付き版、unsloth/Qwen3.6-35B-A3B-MTP-GGUF) 22.9 GB 約 2,200〜3,000 tok/s 約 57 tok/s、MTP 併用で 考える・要約 84〜93 tok/s、物語など 62〜69 tok/s
Qwen3.6 35B-A3B IQ4_XS Qwen3.6-35B-A3B-UD-IQ4_XS.gguf(同じリポジトリ) 18.2 GB 約 2,100〜3,000 tok/s 約 59 tok/s、MTP 併用で約 84 tok/s
Qwen3.6 35B-A3B IQ3_XXS Qwen3.6-35B-A3B-UD-IQ3_XXS.gguf(同じリポジトリ) 14.1 GB 約 1,300 tok/s(GPU のみ) 約 59 tok/s、MTP 併用で約 83 tok/s
Qwen3.6 35B-A3B IQ2_M Qwen3.6-35B-A3B-UD-IQ2_M.gguf(同じリポジトリ) 11.9 GB 約 1,370 tok/s(GPU のみ) 約 64 tok/s、MTP 併用で約 82 tok/s
Qwen3.8 27B Qwen3.8-27B-UD-Q4_K_XL.gguf(unsloth/Qwen3.8-27B-GGUF)+ ドラフト Qwen3.8-27B-DFlash2-Q4_K_M.gguf(z-lab/Qwen3.8-27B-DFlash2-GGUF) 17.6 GB + 1.1 GB 約 590〜720 tok/s 約 11 tok/s、ドラフト併用で コード 34〜36 tok/s、説明文 20 tok/s前後
NVIDIA Nemotron 3.5 Bolt 74B-A9B NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB.gguf(nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-GGUF) 22.0 GB + ドラフト 0.95 GB 約 1,000〜1,160 tok/s 約 35 tok/s、ドラフト併用で 考える・要約 55〜89 tok/s、物語など 30〜35 tok/s
Ternary Bonsai 2 27B Ternary-Bonsai-2-27B-PQ2_0.gguf(prism-ml/Ternary-Bonsai-2-27B-gguf)+ Qwen3.8 27B と同じドラフト 7.2 GB + 1.1 GB 約 520〜640 tok/s 約 22〜25 tok/s、ドラフト併用で 約 30〜49 tok/s(当たりにくい文章では約 19)

IQ4_XS / IQ3_XXS / IQ2_M(0.8.2 から)は同じモデルの小さい版で、メモリの少ない PC 向けです。IQ4_XS は UD-Q4_K_XL とほぼ同じ速さと質で約 4 GB 少なく、IQ3_XXS と IQ2_M はさらに小さいかわりに答えの質が落ちます(IQ2_M ははっきり)。MTP 併用の値は 3 つと UD-Q4_K_XL(同じ試験で約 73 tok/s)を同じ文章で比べたものです。

速度は Ryzen AI Max+ 395(128 GB)で測った値です(プロンプトは数千トークンのとき)。モデルは配布元のリポジトリからそのままダウンロードします(onwx' はモデルを再配布しません)。 同じ GGUF がすでに PC にあれば、モデル画面の「ほかの場所」→「追加…」でそのフォルダを登録すれば使えます。 使うときは各モデルのライセンス(Qwen・Ternary Bonsai:Apache-2.0、Nemotron:NVIDIA のライセンス)に従ってください。

Ryzen AI 300(Radeon 890M)での速さ

モデル PC プロンプト読み込み(NPU 併用) 生成
Qwen3.6 35B-A3B Ryzen AI 9 HX 470、メモリ 64 GB(DDR5-5600) 2,000 トークン 約 930 tok/s、4,000〜8,000 トークン 約 1,110 tok/s(GPU だけなら 約 880〜970) 約 24 tok/s、MTP 併用で 約 28〜32 tok/s
NVIDIA Nemotron 3.5 Bolt 74B-A9B Ryzen AI 9 HX 470、メモリ 64 GB(DDR5-5600) 2,000 トークン 約 250 tok/s、4,000〜8,000 トークン 約 380 tok/s(GPU だけなら 約 240〜260) 約 14 tok/s、ドラフト併用で 説明文 約 20 tok/s
Ternary Bonsai 2 27B Ryzen AI 9 HX 370、メモリ 32 GB(LPDDR5X) 2,000 トークン 約 175 tok/s、4,000 トークン 約 250 tok/s(GPU だけなら 約 130) 約 12 tok/s(HX 470 ではドラフト併用で 約 13〜21 tok/s)
  • Qwen3.6 は 22.9 GB あるので、メモリ 64 GB の PC が必要です(32 GB では GPU が使えるメモリに収まりません)。32 GB の PC では Ternary Bonsai 2 27B が使えます
  • Radeon 890M でも、Ternary Bonsai 2 27B はドラフト(先読み)を使います(0.8.4 から。Ryzen AI 9 HX 470 で、ドラフトなし 約 9.8 tok/s → 4 つの文章の平均 約 14.6 tok/s。環境変数 ONWX_HALO_DRAFT=0 で使いません)。Qwen3.6 の MTP は 1 トークンずつ先読みします(この GPU ではそれが一番速い)
  • Nemotron も 64 GB の HX 470 で動きます(0.8.2 で確認)。Qwen3.8 27B は Radeon 890M ではまだ試していません

使用メモリ(NPU とドラフトを使うとき、文脈 32K トークンまでの会話):Qwen3.6 約 24〜25 GB、Nemotron 約 24〜25 GB、Qwen3.8 27B 約 21〜23 GB、Ternary Bonsai 2 27B 約 14〜15 GB。 KV キャッシュは会話が伸びた分だけ確保するので、文脈の設定を長くしてもそれだけではメモリは増えません(設定の長さまで会話が伸びたときの量はモデル画面に出ます)。 設定「KV キャッシュを 8 ビットにしてメモリを減らす」をオンにすると、その KV キャッシュがほぼ半分になります(Qwen3.8 27B・Ternary Bonsai 2 27B・Qwen3.6。32K トークンの会話で 27B は約 1 GB 減)。

Ternary Bonsai 2 27B:PrismML の 3 値(-1 / 0 / +1)重みの 27B(Qwen3.8 27B と同じ構造)。重みは 7.2 GB で、メモリの少ない PC でも 27B が動きます。先読みには Qwen3.8 27B 用の DFlash-2 ドラフトをそのまま使います(モデルのダウンロードで一緒に入ります)。

ドラフトモデル(Nemotron):NVIDIA が配布している先読み用の小さなモデル(nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-LiLiCorr-GGUF)を本体と同じフォルダにダウンロードします。ドラフトが数トークン先を予想し、本体がまとめて確かめるので、予想が当たりやすい文章(考える過程、要約、決まった形の答え)ほど速くなります。サンプリング(温度など)をしても出てくる文章の確率は変わりません。当たりにくい文章では自動で普通の生成に戻ります。手元の GGUF を使う場合は、NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-LiLiCorr.gguf を本体と同じフォルダに置けば使われます(環境変数 ONWX_HALO_DRAFT=0 で使わない)。

必要なもの

  • AMD Ryzen AI Max(Strix Halo、Radeon 8060S / 8050S)か Ryzen AI 300(Radeon 890M / 880M)の PC。メモリ 64 GB 以上を推奨(Ternary Bonsai 2 27B なら 32 GB でも動きます)。GPU が使えるのは「専用 GPU メモリ(BIOS / AMD Software で割り当てた量)+ 残りの半分」までです
  • Windows 11、AMD のグラフィックスドライバーと NPU ドライバー(Ryzen AI ソフトウェア)。または Ubuntu 24.04 以降(下の「Linux」)
  • Python 3.10 以上(なければセットアップが winget で入れることを提案します)
  • ディスク:アプリ約 0.3 GB + モデル 1 つあたり 7〜23 GB

インストール

PowerShell から:

irm https://huggingface.co/ryugyosoft/onwx-dash/resolve/main/install.ps1 | iex

%LOCALAPPDATA%\onwx-dash にダウンロードして(別の場所にするときは $env:ONWX_HALO_DIR を短いパスに:PowerShell 5.1 は 260 文字を超えるパスを扱えません) setup.bat を実行します。Python の環境を作り、スタートメニューに「onwx-dash」を追加し、タスクトレイで起動します。 開いた画面の「モデル」タブでモデルをダウンロードし、「ロード」を押してください。チャット画面は http://localhost:8110/chat 、API は http://localhost:8110/v1 です。

手動で入れる場合:このリポジトリを好きなフォルダにダウンロードして setup.bat を実行します。

Linux(Ubuntu 24.04 以降、0.7.1 から)

curl -fsSL https://huggingface.co/ryugyosoft/onwx-dash/resolve/main/install.sh | bash

~/onwx-dash にその PC の GPU 用の Linux エンジン(約 0.65 GB。AMD TheRock の Linux 版ランタイムを同梱)をダウンロードし、setup.sh が Python の環境、アプリ一覧への登録、トップバーのアプリを用意します。

  • GPU を使うには、ユーザーが render と video のグループに入っている必要があります(sudo usermod -aG render,video $USER のあとログインし直し)。AMD の GPU ドライバー(amdgpu)はカーネルに入っているもので動きます
  • NPU の手伝いは既定でオフです(設定でオンにできます)。オンにするには、AMD の NPU ドライバー(amdxdna、カーネル 6.14 以降に同梱)と XRT が入っていて、ロックできるメモリの上限が十分であることが必要です(ulimit -l が 8 MB などの既定のままだと、NPU の準備が失敗して GPU だけで動きます。/etc/security/limits.conf で memlock unlimited にします)
  • 動作は Ryzen AI Max+ 395(Ubuntu 24.04 のコンテナ、カーネル 6.18)で確認しました。Ternary Bonsai 2 27B:生成 約 27 tok/s、6,000 トークンのプロンプト 約 460 tok/s(GPU だけ)。Ryzen AI 300(Radeon 890M)の Linux ではまだ試していません

設定

  • NPU にもプロンプトの読み込みを手伝わせる(設定 → サーバーと API):既定でオン。オフにすると GPU だけで動きます。モデルを読み込み直すと反映されます
  • NPU の取り分(同じ場所):プロンプトの行列計算のうち、どれだけを NPU に任せるか。既定は「自動」で、GPU とモデルごとに測って一番速かった分け方を使います(Radeon 890M の 27B のモデルはほぼ全部、ほかは一部)。自動を外すと 10〜100 % を選べます。GPU が強い PC ほど少なめ、弱い PC ほど多めが速くなる傾向です
  • API からモデルを切り替える(設定 → サーバーと API):既定でオン。/v1/models にこのパソコンのモデルが全部出て(文脈長 context_length、最大出力 max_output_tokens つき)、リクエストの model に別のモデルの ID を指定すると、今のモデルを閉じてそれを読み込みます(10〜20 秒ほど)
  • 文脈の長さ、API キー、LAN からの接続、生成の既定値などは onwx と同じです

アンインストール

インストール先の uninstall.bat を実行します(アプリ、設定、ダウンロードしたモデル、スタートメニューの項目を消します。追加したフォルダのモデルは消しません)。

ライセンス

  • アプリ:Apache-2.0(LICENSE)
  • エンジン:gufo(MIT)とその同梱ライブラリの表示は onwx/bin/halo/licenses/gufo/
  • AMD ROCm(TheRock)のランタイム:各コンポーネントのライセンスは onwx/bin/halo/licenses/rocm/。詳しくは onwx/bin/halo/licenses/README.txt
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support