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?

Minisforum UM890 Pro 上で gpt-oss:20b を動かしてみた話

0
Posted at

はじめに

Minisforum UM890 が手に入ったので、せっかくならば ollama をインストールし、gpt-oss:20b を動かしてみたので、その内容を自分の備忘録のためにも書いてみたメモです。似たような環境の方の参考になれば嬉しいです。

最終ゴール

とりあえず ollama + gpt-oss:20b が GPU を使って応答してくれる状況を作ることです。

前提

  • PC: Minisforum UM890
    • CPU: AMD Ryzen 9 7940HS
    • GPU: AMD Radeon 780M
  • OS: RockyLinux 9

AMD GPU ドライバのインストール

基本的に公式のinstallation guideに従ってインストールすれば良いです。

必要なところだけ抜粋すると下記のようになります。

# dnf install -y https://repo.radeon.com/amdgpu-install/7.2.1/el/9.7/amdgpu-install-7.2.1.70201-1.el9.noarch.rpm
# dnf install -y wget
# dnf clean all
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# rpm -ivh epel-release-latest-9.noarch.rpm
# crb enable
# dnf install -y python3-setuptools python3-wheel kernel-headers kernel-devel kernel-devel-matched
# usermod -a -G render,video $LOGNAME
# dnf install -y rocm
# dnf install -y amdgpu-dkms

インストール後は reboot してください。

reboot 後とりあえず、下記のように情報が取得できれば大丈夫です。

# amd-smi
+------------------------------------------------------------------------------+
| AMD-SMI 26.2.2+e1a6bc5663    amdgpu version: Linuxver ROCm version: 7.2.1    |
| VBIOS version: 022.012.000.027.000001                                        |
| Platform: Linux Baremetal                                                    |
|-------------------------------------+----------------------------------------|
| BDF                        GPU-Name | Mem-Uti   Temp   UEC       Power-Usage |
| GPU  HIP-ID  OAM-ID  Partition-Mode | GFX-Uti    Fan               Mem-Usage |
|=====================================+========================================|
| 0000:c5:00.0    AMD Radeon Graphics | N/A        N/A   0                 N/A |
|   0       0     N/A             N/A | N/A        N/A              68/2048 MB |
+-------------------------------------+----------------------------------------+
+------------------------------------------------------------------------------+
| Processes:                                                                   |
|  GPU        PID  Process Name          GTT_MEM  VRAM_MEM  MEM_USAGE     CU % |
|==============================================================================|
|  No running processes found                                                  |
+------------------------------------------------------------------------------+

AMD TTM のインストール

TTM の割り当て具合や、設定変更に使用しますので、下記コマンドでインストールします。

# dnf install -y python3.12-pip
# pip3.12 install amd-debug-tools

下記コマンドで実際に割り当てられている TTM が確認できるとひとまず良いです。

# amd-ttm
💻 Current TTM pages limit: 7911315 pages (30.18 GB)
💻 Total system memory: 60.36 GB

ollama のインストールと設定

インストール

こちらも公式のドキュメントに従ってインストールすると良いです。ただし、zstd がない場合は怒られますので、インストールされていない場合は下記のようにインストールしてください。

# dnf install -y zstd
# curl -fsSL https://ollama.com/install.sh | sh

設定

ollama の環境変数を systemctl edit 経由で下記のように設定します。

# systemctl edit ollama.service

追加内容は下記の通りです。

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.2"

それぞれのパラメータの概要は下記の通りです。

OLLAMA_KEEP_ALIVE

モデルがメモリに保持される期間であり、筆者としては今回のホストを基本的に ollama にしか使わないため、-1 (永続) としました。

OLLAMA_HOST

ollama サーバの listen に関する設定であり、今回は外からもアクセスさせたいため、 0.0.0.0:11434 としています。

HSA_OVERRIDE_GFX_VERSION

今回の場合は

# rocminfo | grep gfx
  Name:                    gfx1103
      Name:                    amdgcn-amd-amdhsa--gfx1103
      Name:                    amdgcn-amd-amdhsa--gfx11-generic

ということで、11.0.3を設定したところ、どうもGPUを使ってくれないので、11.0.2を設定します。詳細は公式ドキュメントをご確認ください。

gpt-oss:20b の起動

さて、下準備が整ったところで、本題の gpt-oss:20b を動かしていきます。まずは下記コマンドで、pull します。結構時間がかかりますので、気長にお待ちください。

# ollama pull gpt-oss:20b

実際に gpt-oss:20b を使ってみると、GPU 100% ということで、GPU をちゃんと使っていそうですね。

# ollama ps
NAME           ID              SIZE     PROCESSOR    CONTEXT    UNTIL
gpt-oss:20b    17052f91a42e    15 GB    100% GPU     32768      Forever

ちなみに、amd-ttm で TTM のサイズを調整可能ですので、必要に応じて色々変更いただけると良いかなと思います。

# amd-ttm --set 48
🐧 Successfully set TTM pages limit to 12582912 pages (48.00 GB)
🐧 Configuration written to /etc/modprobe.d/ttm.conf
○ NOTE: You need to reboot for changes to take effect.

余談(ほぼ本編)

記事を書いていく中で ollama の version や kernel の version が上がったりし、gpu を認識しなくなったり、ollama が core を吐いて gpu を使ってくれなかったりしたので、その辺りの回避策を共有したいと思います。

gpu を認識しなくなった話

secure boot が原因でした。とりあえず読み込めばなんでも OK くらいな感覚でしたので、bios で secure boot を切ると無事読み込まれました。

ollama が gpu を使ってくれなかった話

起動時に /var/log/messages に下記のようなエラーが出ており、gpu を使ってくれなくなりました。

systemd-coredump[1799]: Process 1700 (ollama) of user 995 dumped core.#012#012Module librocroller.so.1 without build-id.#012Module libggml-hip.so without build-id.#012Stack trace of thread 1703:#012#0  0x00007f155468d02c __pthread_kill_implementation (libc.so.6 + 0x8d02c)#012#1  0x00007f155463fb86 raise (libc.so.6 + 0x3fb86)#012#2  0x00007f1554629873 abort (libc.so.6 + 0x29873)#012#3  0x00007f14ff7943ee rocblas_abort (librocblas.so.5 + 0x27943ee)#012#4  0x00007f14ff546a5e _ZN12_GLOBAL__N_123get_library_and_adapterEPSt10shared_ptrIN7Tensile21MasterSolutionLibraryINS1_18ContractionProblemENS1_19ContractionSolutionEEEEPS0_I20hipDeviceProp_tR0600Ei (librocblas.so.5 + 0x2546a5e)#012#5  0x00007f14d38ddd62 n/a (libggml-hip.so + 0x2baddd62)#012#6  0x00007f14d38de980 ggml_backend_cuda_reg (libggml-hip.so + 0x2bade980)#012#7  0x00005580ec92707a n/a (ollama + 0x162807a)#012#8  0x00005580ec92368d n/a (ollama + 0x162468d)#012#9  0x00005580ec92492f n/a (ollama + 0x162592f)#012#10 0x00005580eb73e1a1 n/a (ollama + 0x43f1a1)#012ELF object binary architecture: AMD x86-64

vulkan を有効にすれば問題なく動作するという話を見かけましたので、

# amdgpu-install --vulkan=amdvlk,pro

にて vulkan をインストール後、

# systemctl edit ollama

にて

Environment="OLLAMA_VULKAN=1"

を追加し、ollama を restart すれば無事使ってくれるようになりました。

最後に

いかがだったでしょうか。余談部分がほぼ筆者の共有したい内容でしたが、同じような環境で、同じように引っかかった人の助けに少しでもなれば幸いです。

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?