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?

ASRock 4X4 BOX-8640U上のDebianでAMD iGPU(Radeon 760M)にLemonadeを動かすまで

0
Last updated at Posted at 2026-04-01

LemonadeというAMDバックのローカルLLMサーバーをDebian上のAMD内蔵GPU(Radeon 760M)で動かしてみました。

以下の一連の投稿の第一弾です。

  1. ASRock 4X4 BOX-8640U上のDebianでAMD iGPU(Radeon 760M)にLemonadeを動かすまで #Vulkan - Qiita

  2. ASRock 4X4 BOX-8640U上のAMD iGPU(Radeon 760M )に Lemonadeを動かして、生成AIのローカル推論ベンチマーク #Vulkan - Qiita

  3. ASRock 4X4 BOX-8640U上のProxmoxでLemonade Serverをsystemdデーモンとして常駐させる #Vulkan - Qiita

公式はUbuntu向けのPPAに移行していてDebianには直接インストールできないので、ソースからビルドすることになりました。

1. Lemonadeとは

Lemonade(lemonade-sdk/lemonade)はAMDが支援するオープンソースのローカルLLMサーバーです。llama.cppをバックエンドに、VulkanやROCm経由でAMD GPU上のLLMを動かせます。OpenAI互換APIを提供しているので、既存のツールにそのままつなぎやすいです。ROCmはAMD GPUドライバーが必要ですが、Vulkanであればmesa-vulkan-driversがLinuxにインストールされていれば動きます。

対応バックエンド:

バックエンド デバイス
llamacpp:vulkan AMD iGPU/dGPU、CPU
llamacpp:rocm 対応AMD GPU
llamacpp:cpu CPU fallback

Radeon 760M(gfx110X / RDNA3)はVulkanバックエンドで動作します。

2. 環境

2-1. ビルド環境(Proxmox LXCコンテナ)

コンパイルテスト用にProxmox上にLXCコンテナを立てました。

  • OS: Ubuntu 24.04(Proxmox CT)
  • メモリ: 11GB(重要。後述します)
  • CPU: 8コア

2-2. 実機

ASRock Industrial 4X4 BOX-8640Uのベアボーンにメモリとストレージをフル実装した構成です。

項目 スペック
ベアボーン ASRock Industrial 4X4 BOX-8640U
CPU AMD Ryzen 5 8640U (6コア12スレッド / 最大4.9GHz)
GPU AMD Radeon 760M (RDNA3 / gfx110X)
メモリ DDR5 96GB (48GB×2 / SO-DIMM フル実装)
ストレージ NVMe M.2 2TB
OS Debian 13 (Trixie)

2-3. v10のバイナリ構成

v10でバイナリ名が大きく変わっているので注意が必要です。

バイナリ 役割
lemond HTTPサーバー本体(旧lemonade-router)
lemonade CLIクライアント
lemonade-server deprecated shim(使いません)

インストール先は/opt/bin/です。PATHへの追加が必要になります。

3. ソースビルド

3-1. ビルド依存パッケージのインストール

apt install -y \
  git \
  cmake \
  ninja-build \
  build-essential \
  libssl-dev \
  pkg-config \
  curl

3-2. クローン

git clone https://github.com/lemonade-sdk/lemonade.git
cd lemonade

3-3. setup.shの実行

./setup.sh

setup.shが不足パッケージを検出してapt installしてくれます。GTK3/AppIndicator3(トレイ用)や各種ライブラリも含みます。途中でインストール確認が出たらyで進めます。

最後に以下が出れば成功です:

[SUCCESS] CMake configured successfully
[SUCCESS] Setup completed successfully!

3-4. ビルド

cmake --build --preset default

OOMで死にました

最初はCTに4GBで、512MBのSwapしかなく、8コア並列でcc1plusが8プロセス同時起動してOOMで死にました。

c++: fatal error: Killed signal terminated program cc1plus

server.cppが巨大なのでコンパイル時のメモリ消費が激しいです。

メモリを11GBに増やしたら-j8でも問題なく通りました。最低8GB、できれば11GB以上を推奨します

ビルド完了後の成果物:

ls -lh build/lemond build/lemonade build/lemonade-tray
# build/lemond         4.3MB  サーバー本体
# build/lemonade       1.6MB  CLIクライアント
# build/lemonade-tray  1.3MB  システムトレイ

3-5. .debパッケージの生成

cd build
cpack

lemonade-server-10.0.1.x86_64.deb(約3.8MB)が生成されます。DEB/TGZ/STGZ/TZの複数形式が同時に出ます。

4. Debian 13(実機)へのインストール

4-1. .debを転送

CTから実機にscpで転送します。

# CT側で実行
scp ~/lemonade/build/lemonade-server-10.0.1.x86_64.deb root@<実機IP>:~/

4-2. インストール

apt install ./lemonade-server-10.0.1.x86_64.deb

4-3. libwebsocketsエラーの対処

Ubuntu 24.04でビルドしたバイナリをDebian 13に持っていくとlibwebsocketsのバージョン差異でエラーになります。

lemond: error while loading shared libraries: libwebsockets.so.19: cannot open shared object file
apt install -y libwebsockets19t64

これで解決します。

4-4. PATHの設定

/opt/binはデフォルトでPATHに入っていません。

export PATH=$PATH:/opt/bin
# 永続化
echo 'export PATH=$PATH:/opt/bin' >> ~/.bashrc

確認:

lemond --version    # lemond version 10.0.1
lemonade --version  # lemonade version 10.0.1

5. 動作確認

5-1. Vulkanバックエンドのインストールとサーバー起動

# サーバーをバックグラウンドで起動
lemond --llamacpp vulkan &

# Vulkanバックエンドのバイナリをダウンロード(初回のみ・約45MB)
lemonade recipes --install llamacpp:vulkan

ログにこれが出れば認識成功です:

ggml_vulkan: 0 = AMD Radeon Graphics (RADV PHOENIX) (radv) | uma: 1 | fp16: 1

5-2. system-infoでGPU確認

curl -s http://localhost:8000/api/v1/system-info | python3 -m json.tool | grep -A 6 "amd_igpu"
"amd_igpu": {
    "available": true,
    "family": "gfx110X",
    "name": "110003",
    "virtual_mem_gb": 46.8,
    "vram_gb": 0.5
}

vram_gb: 0.5と小さく見えますが、virtual_mem_gb: 46.8がGTT(Graphics Translation Table)経由でシステムRAMをGPUメモリとして使える実質的な容量です。BIOS設定が低くても動きます。

5-3. 推論テスト

lemonade run Qwen3-0.6B-GGUF --llamacpp vulkan

モデルが未ダウンロードの場合は自動的にHuggingFaceから落としてくれます。

curl -s http://localhost:8000/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen3-0.6B-GGUF",
    "messages": [{"role": "user", "content": "日本語で自己紹介してください"}]
  }' | python3 -m json.tool

5-4. 結果

項目 結果
GPUオフロード 29/29レイヤー全オフロード
Flash Attention 自動有効化
Prompt eval 211 tokens/sec
Generation 122 tokens/sec
TTFT 76ms
VRAM使用 358MB(モデル) + 448MB(KVキャッシュ) = 約806MB

Qwen3-0.6BでRadeon 760M / Vulkan経由で122 tok/s出ました。十分実用的な速度ですね。
まだVRAMのサイズが小さいので大きくしてから再度テストしたいと思います。

6. まとめ

6-1. インストール方法の選択

v10.0.1時点でのDebianへのインストール方法をまとめます:

OS 使える方法
Ubuntu 24.04 ppa:lemonade-team/stableからapt install
Debian(全バージョン) ソースビルド or Snap
Fedora .rpm(GitHub Releases)

DebianにPPAは使えません。 add-apt-repositoryコマンド自体が存在しませんし、そもそもPPAはUbuntu専用の仕組みです。v10.0.1から.debの直接配布も廃止されたので、Debianで使うなら今回のようにソースからビルドするのが現状一番クリーンな方法です。

6-2. ハマりポイントまとめ

ポイント 内容
ビルドメモリ 11GB以上推奨。並列コンパイル時にcc1plusがOOMで死にます
Debian 13の追加対応 Ubuntu 24.04でビルドした.debはlibwebsockets19t64の追加が必要です
VRAMについて BIOS設定が0.5GBでもGTT経由で46GB分使えます
バックエンド選択 VulkanはMesa RADVで動きます。ROCmは/dev/kfdが必要でハードルが高いです

Vulkan経由でほぼ設定なしにGPU推論が動いたのは素直に便利でした。大きいモデル(8B以上)はBIOSでUMA Frame Bufferを増やしてからテストする予定です。

参考

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?