環境
- マシン: MINISFORUM HX370
- CPU: AMD Ryzen AI 9 HX 370
- GPU: AMD Radeon 890M(RDNA 3.5 / gfx1150)
- RAM: 64GB(UMA構成、GPUとメモリ共有)
- OS: CachyOS Linux
GPUアーキテクチャの確認
HX370の890MはRDNA 3.5(gfx1150)です。まず実機で確認します。
rocminfo | grep -E "Name|gfx"
出力例:
Name: AMD Radeon 890M Graphics
Name: gfx1150
注意: HX370の890MはRDNA 3(gfx1103)ではなく**RDNA 3.5(gfx1150)**です。 ROCmビルド時に
gfx1103を指定すると正しく動作しないため、必ず実機で確認してください。
依存パッケージのインストール
sudo pacman -S vulkan-headers vulkan-icd-loader shaderc cmake git
llama.cppのビルド(Vulkanバックエンド)
なぜROCmではなくVulkanか
AMD iGPUはROCmよりVulkanの方が相性が良く、実測で大幅に高速になります。 HX370でのROCm vs Vulkanの比較(Qwen3.5-35B-A3B Q4_K_XL):
| バックエンド | Generation |
|---|---|
| ROCm | 動作するが非常に低速 |
| Vulkan | 18 t/s |
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build-vulkan \
-DGGML_VULKAN=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build build-vulkan --config Release -j$(nproc)
環境変数の設定
# ~/.bashrc に追記
export GGML_VK_DEVICE=0
GGML_VK_DEVICE=0 はVulkan使用時にデバイス番号を明示指定します。iGPUのみの構成では 0 で問題ありません。
モデルのダウンロード
pip install huggingface_hub --break-system-packages
動作確認用(小さいモデル)
python -c "
from huggingface_hub import hf_hub_download
hf_hub_download(
repo_id='Qwen/Qwen3-0.6B-GGUF',
filename='Qwen3-0.6B-Q8_0.gguf',
local_dir='./models'
)
"
実用モデル(推奨)
Qwen3.5-35B-A3B(MoEモデル)がHX370に最も適しています。
このモデルはMoE(Mixture of Experts)アーキテクチャを採用しており、総パラメータ数は35Bながら推論時のアクティブパラメータは約3Bです。64GB UMAのHX370では全レイヤーをGPUに展開でき、密モデルの27Bより大幅に高速です。
python -c "
from huggingface_hub import hf_hub_download
hf_hub_download(
repo_id='unsloth/Qwen3.5-35B-A3B-GGUF',
filename='Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf',
local_dir='./models'
)
"
注意: UnslothはQwen3.5-35B-A3BのGGUFを2026年2月27日に更新し、ツール呼び出しのチャットテンプレートバグを修正しています。それ以前にダウンロードした場合は再ダウンロードを推奨します。
動作確認
./build-vulkan/bin/llama-cli \
-m ./models/Qwen3-0.6B-Q8_0.gguf \
-ngl 99 \
-n 256 \
-p "Hello, who are you?"
GPU認識の確認:
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = AMD Radeon 890M Graphics (RADV STRIX1) (radv) | uma: 1 | fp16: 1
主要パラメータの解説
モデル・GPU関連
| パラメータ | 設定値 | デフォルト | 意味・変更理由 |
|---|---|---|---|
-ngl 99 |
99 | 0(CPU) | GPUオフロードするレイヤー数。99で全レイヤーをGPUに展開。デフォルトはCPU推論のため必須 |
-n -1 |
-1 | -1 | 最大生成トークン数。-1で無制限 |
-c 65536 |
65536 | 4096 | コンテキストウィンドウサイズ。デフォルト4096では会話履歴がすぐ溢れるため拡大。64GB UMAなら65536でも余裕あり |
Flash Attention・KVキャッシュ
| パラメータ | 設定値 | デフォルト | 意味・変更理由 |
|---|---|---|---|
--flash-attn on |
on | off | Flash Attentionを有効化。長コンテキストでのメモリ効率と速度が向上 |
--cache-type-k q8_0 |
q8_0 | f16 | KVキャッシュのKey部分を8bit量子化。デフォルトf16(16bit)から圧縮しVRAM使用量を削減しつつ品質を維持 |
--cache-type-v q8_0 |
q8_0 | f16 | KVキャッシュのValue部分を同様に8bit量子化 |
サンプリングパラメータ(Qwen3.5公式推奨値)
| パラメータ | 設定値 | デフォルト | 意味・変更理由 |
|---|---|---|---|
--temp 1.0 |
1.0 | 0.8 | 温度。高いほど多様な出力、低いほど決定的。Qwen3.5の思考モード有効時は1.0推奨 |
--top-k 20 |
20 | 40 | 確率上位Kトークンから選択。デフォルト40より絞ることで出力を安定化 |
--top-p 0.95 |
0.95 | 0.95 | 累積確率P以内のトークンから選択。デフォルトのまま |
--min-p 0.0 |
0.0 | 0.05 | 最低確率フィルター。Qwen3.5では0.0(無効)が推奨 |
--presence-penalty 1.5 |
1.5 | 0.0 | 出現済みトークンへのペナルティ。1.5に設定することで繰り返し出力を抑制 |
--repeat-penalty 1.0 |
1.0 | 1.0 | 直近トークンの繰り返しペナルティ。Qwen3.5はpresence-penaltyで制御するためデフォルトのまま |
チャットテンプレート・推論制御
| パラメータ | 設定値 | デフォルト | 意味・変更理由 |
|---|---|---|---|
--jinja |
- | off | GGUFに埋め込まれたJinjaチャットテンプレートを使用。ツール呼び出しの精度向上に必須 |
--reasoning-format deepseek |
deepseek | なし | 思考トークン(<think>...</think>)を正しくパースする形式を指定 |
--no-context-shift |
- | off | コンテキスト満杯時の古いトークン削除を無効化。長い会話で文脈が壊れるのを防ぐ |
--reasoning-budget 0 |
0 | -1(無制限) | 思考モードをOFF。llama-cli・llama-server両方で有効。0で思考トークンを生成しない。サーバー起動時に指定すると全リクエストで思考OFF固定になる |
サーバー関連
| パラメータ | 設定値 | デフォルト | 意味・変更理由 |
|---|---|---|---|
--host 0.0.0.0 |
0.0.0.0 | 127.0.0.1 | 全インターフェースでリッスン。TailscaleやLAN経由アクセスのために変更 |
--port 11434 |
11434 | 8080 | Ollamaと同じポートを使用することでOllama互換ツールをそのまま流用可能 |
llama-cliの実用コマンド
推論なし・instruct用(高速)
./build-vulkan/bin/llama-cli \
-m ./models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
--conversation \
-ngl 99 \
-n -1 \
-c 32768 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--temp 0.7 --top-k 20 --top-p 0.8 \
--min-p 0.0 --presence-penalty 1.5 --repeat-penalty 1.0 \
--reasoning-budget 0
推論あり・一般タスク
./build-vulkan/bin/llama-cli \
-m ./models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
--conversation \
-ngl 99 \
-n -1 \
-c 32768 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--temp 1.0 --top-k 20 --top-p 0.95 \
--min-p 0.0 --presence-penalty 1.5 --repeat-penalty 1.0
推論あり・コーディング
./build-vulkan/bin/llama-cli \
-m ./models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
--conversation \
-ngl 99 \
-n -1 \
-c 32768 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--temp 0.6 --top-k 20 --top-p 0.95 \
--min-p 0.0 --presence-penalty 0.0 --repeat-penalty 1.0
OpenAI互換サーバーとして起動
OpenClawやOpen WebUI、Claude Codeなどのバックエンドとして使えます。
./build-vulkan/bin/llama-server \
-m ./models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
-ngl 99 \
-n -1 -c 65536 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--temp 1.0 --top-k 20 --top-p 0.95 \
--min-p 0.0 --presence-penalty 1.5 --repeat-penalty 1.0 \
--jinja \
--reasoning-format deepseek \
--no-context-shift \
--host 0.0.0.0 --port 11434
アクセス先:
- WebUI:
http://your-host:11434 - OpenAI互換API:
http://your-host:11434/v1/chat/completions - Tailscale経由:
http://your-tailscale-ip:11434/v1/chat/completions
systemdによる自動起動
sudo nano /etc/systemd/system/llama-server.service
[Unit]
Description=llama.cpp server
After=network.target
[Service]
Type=simple
User=your-username
WorkingDirectory=/home/your-username/llama.cpp
ExecStart=/home/your-username/llama.cpp/build-vulkan/bin/llama-server \
-m /home/your-username/llama.cpp/models/Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf \
-ngl 99 \
-n -1 -c 65536 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--temp 1.0 --top-k 20 --top-p 0.95 \
--min-p 0.0 --presence-penalty 1.5 --repeat-penalty 1.0 \
--jinja \
--reasoning-format deepseek \
--no-context-shift \
--host 0.0.0.0 --port 11434
Environment=GGML_VK_DEVICE=0
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable llama-server
sudo systemctl start llama-server
# 確認
sudo systemctl status llama-server
journalctl -u llama-server -f
速度実績
| モデル | Prompt | Generation |
|---|---|---|
| Qwen3-0.6B Q8_0 | 427.8 t/s | 95.0 t/s |
| Qwen3.5-35B-A3B Q4_K_XL | 52.6 t/s | 18.3 t/s |
| Qwen3.5-27B Q5_K_M | 17.8 t/s | 3.8 t/s |
Qwen3.5-35B-A3BはMoE構造のため、27Bの密モデルより大幅に高速です。HX370での実用モデルとして最もバランスが良い。
systemdに登録しておけば再起動後も自動で立ち上がるので、Tailscale経由でどこからでもアクセスできる環境が手に入る。