環境構築開始

WSL に Ubuntu・ROCm・llama.cpp をインストール

まずは WSL を使えるように、仮想化機能をオンにしたり、Windows のコマンドプロンプト/PowerShell からサクッと WSL を入れておきます。
今回は Ubuntu 22.04 を入れましたが、24.04 でも ROCm の導入手順はほぼ同じみたい。

Ubuntu のバージョンは 22.04 か 24.04 を選んでおけば安心。どちらも AMD の公式ガイドが用意されているので、迷ったらこのどちらかにしておくのが無難です。

https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/wsl/install-radeon.html#

Ubuntu のバージョンは WSL インストール時に指定可能。

wsl --install -d Ubuntu-22.04

公式ガイドに従い、以下のコマンドを順に実行して、

wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/jammy/amdgpu-install_7.2.70200-1_all.deb
sudo apt install ./amdgpu-install_7.2.70200-1_all.deb

AMD 統一カーネルモード GPU ドライバー、ROCm、グラフィックスをインストールします。

sudo amdgpu-install --list-usecase
amdgpu-install -y --usecase=wsl,rocm --no-dkms

エラーもなくインストールが終了し、以下のコマンドで GPU が認識されていることを確認できた。

rocminfo

出力例(抜粋)

・・・
*******
Agent 2
*******
  Name:                    gfx1200
  Uuid:                    GPU-cdbda28ac6932b67
  Marketing Name:          AMD Radeon RX 9060 XT
  Vendor Name:             AMD
  Feature:                 KERNEL_DISPATCH
・・・

WSL の基本操作
・Ubuntu の起動:wsl -d または wsl -d Ubuntu-22.04
・Ubuntu から Windows に戻る:exit
・Ubuntu の停止:wsl –shutdown
・WSL の状態確認:wsl -l -v

  NAME              STATE           VERSION
* Ubuntu-22.04      Running         2

llama.cpp を試す

LLM を動作させるためのソフトウェアとして llama.cpp をインストールしてみる。
インストール後は、いよいよ LLM モデルを動かせるようになります。

wslでUbuntuに入り以下を実行します。

sudo apt install -y git cmake build-essential

次に、HIP のパスが通っているか確認。

which hipcc

結果例:

/usr/bin/hipcc

問題無さそうなので、いよいよllama.cpp を取得。

cd ~
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

HIP を有効にしてビルドします。

cmake -B build -S . -DGGML_HIP=ON
cmake --build build -j$(nproc)

ビルドには時間がかかるため、しばらく待ちます。
今回はエラーなく一発で成功しました。

モデルを用意して実行する

今回は Ubuntu 内にモデルをコピーせず、Windows 側に保存してある LLM モデルをそのまま利用してみる。

私の場合、Windows環境でのLM Studio でダウンロードしたモデルは以下にあります。

E:\LM_Studio\Model

WSL では Windows のドライブが /mnt にマウントされているため、

/mnt/e/LM_Studio/Model

は Windows の E:\LM_Studio\Model と同じ場所になる。
これが WSL の大きなメリットで、Ubuntu から Windows 側のファイルを自由に扱えるため、SSD の容量節約にもなり非常に良い!

実行例(Qwen3-8B)

cd ~
llama.cpp/build/bin/llama-cli \
-m /mnt/e/LM_Studio/Model/lmstudio-community/Qwen3-8B-Q4_K_M/Qwen3-8B-Q4_K_M.gguf \
-p "あなたは日本語で丁寧に回答するAIです。" \
-n 1024 -ngl 99 -c 8192 --temp 0.7 --repeat-penalty 1.1
主なオプション
-n:最大生成トークン数
-c:コンテキストサイズ
-ngl:最適値
--temp:温度(ランダム性)
--repeat-penalty:繰り返し抑制

無事、起動!

で、速度は?

速度はモデルや環境によって大きく違うが、今回の環境の速度を確認してみた。
指標はトークン処理速度(tokens per second)を使うのだが、これはllama.cppでの回答が返った後に表示されるので確認。

色が見づらいが、
[ Prompt: 254.6 t/s | Generation: 54.6 t/s ]
と出ている。毎回少しずつ異なるがだいたい同じような感じ。
最初のPromptは前処理(prefill)といいAIが質問の意図を把握(読み取る)速度らしい。
次のGenerationは、AIが回答を1文字(1トークン)を出力する速さで、上記の場合は54.6文字/秒ということになる。
同じモデル(qwen3:8b-q4_K_M)で、RTX5060TiとRTX3060のトークン速度が出ているサイトでは以下の数値を発見。
 RTX5060Ti:61.11
 RTX3060:49.14
パラメータも違うと思うのでそのまま比較はできないが、これを見る限り特別劣っている感じではないなぁ、思ったより性能出ているんではないかい?
 自分の使い方では十分な速度で体感できるので、まずは良しとしよう!

ROCmで動作させられることが分かったので次はどうしようかな。
ちなみに下記のbatファイルをWindowsに作成しておき、ダブルクリックするとLM Studioのようなチャット環境がすぐ起動するので、ちょっとローカルAIに質問したいときなどは便利かもしれません。

@echo off
wsl bash -c "cd ~ && llama.cpp/build/bin/llama-cli -m /mnt/e/LM_Studio/Model/lmstudio-community/Qwen3-8B-Q4_K_M/Qwen3-8B-Q4_K_M.gguf -p 'あなたは日本語で丁寧に回答するAIです。' -n 1024 -ngl 99 -c 8192 --temp 0.7 --repeat-penalty 1.1"


コメント

タイトルとURLをコピーしました