AMD CPU環境にOllamaをインストールする!(AMD Ryzen 7 6800H/Ubuntu Desktop 24.04)

AMD Ryzen 7 6800HのMini PCに、Ubuntu Desktop 24.04をインストールした環境を使用します。ROCmとOllamaをインストールして、iGPUを使用して高いパフォーマンスを発揮できていることを確認します。

OSの情報を確認する!

OSの情報を表示します。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"

Kernelの情報を表示します。

$ uname -omr
6.17.0-14-generic x86_64 GNU/Linux

CPUの仕様を確認する!

AMD Ryzen 7 6800Hの情報を表示します。

$ lscpu
Architecture:                x86_64
  CPU op-mode(s):            32-bit, 64-bit
  Address sizes:             48 bits physical, 48 bits virtual
  Byte Order:                Little Endian
CPU(s):                      16
  On-line CPU(s) list:       0-15
Vendor ID:                   AuthenticAMD
  Model name:                AMD Ryzen 7 6800H with Radeon Vega Mobile Gfx
    CPU family:              25
    Model:                   68
    Thread(s) per core:      2
    Core(s) per socket:      8
    Socket(s):               1
    Stepping:                1
    Frequency boost:         enabled
    CPU(s) scaling MHz:      53%
    CPU max MHz:             4769.8521
...

ROCmをインストールする!

ROCmをインストールしていない場合は、以下の記事を参考にROCmをインストールします。

Ollamaのインストール情報を確認する!

Ollamaのインストール情報を確認します。

Ollamaをインストールする!

curlコマンドを使用して、Ollamaをインストールします。

$ sudo apt install curl
$ curl -fsSL https://ollama.com/install.sh | sh

Ollamaのバージョンを確認します。

$ ollama -v
ollama version is 0.17.7

Ollamaが起動済みであることを確認します。

$ systemctl status ollama.service
● ollama.service - Ollama Service
     Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)
     Active: active (running) since Sat 2026-03-14 09:54:16 JST; 8h ago
   Main PID: 3444 (ollama)
      Tasks: 47 (limit: 37372)
     Memory: 1.8G (peak: 12.6G)
        CPU: 4min 14.732s
     CGroup: /system.slice/ollama.service
             ├─3444 /usr/local/bin/ollama serve
             └─4856 /usr/local/bin/ollama runner --ollama-engine --model /usr/shar
...

Ollamaの環境変数を設定する!

Ollamaの環境変数をせていします。i680mは、「HSA_OVERRIDE_GFX_VERSION=10.3.0」を設定します。コンテキストサイズは、大きめの「OLLAMA_CONTEXT_LENGTH=131072」を設定しています。

sudo vi /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/home/usradmin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_CONTEXT_LENGTH=131072"
#Environment="OLLAMA_MAX_QUEUE=512"
#Environment="OLLAMA_NUM_PARALLEL=4"
#Environment="OLLAMA_MAX_LOADED_MODELS=4"
#Environment="OLLAMA_FLASH_ATTENTION=1"
#Environment="OLLAMA_DEBUG=1"
Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0"
#Environment="ROCR_VISIBLE_DEVICES="

[Install]
WantedBy=default.target                     

Ollamaのサービスを再起動します。

$ sudo systemctl daemon-reload
$ sudo systemctl restart ollama.service
$ systemctl status ollama.service

OllamaでLLMを使用する!(コンテキストサイズ:4096)

いよいよ、OllamaでLLMを使用してみます。モデルは、gpt-oss:20bです。コンテキストサイズをデフォルトの4096で動作させたときの結果です。

$ ollama run gpt-oss:20b --verbose
>>> Hello, my agent!
Thinking...
User says: "Hello, my agent!" So greet. Probably respond friendly. Let's do that.
...done thinking.

Hello! 👋 How can I assist you today?

total duration:       3.63738319s
load duration:        160.587533ms
prompt eval count:    72 token(s)
prompt eval duration: 805.54742ms
prompt eval rate:     89.38 tokens/s
eval count:           41 token(s)
eval duration:        2.48372689s
eval rate:            16.51 tokens/s

CPUとGPUの割り当てを確認します。100%GPUを使用していて、よい感じです。

$ ollama ps
NAME           ID              SIZE     PROCESSOR    CONTEXT    UNTIL   
gpt-oss:20b    17052f91a42e    14 GB    100% GPU     4096       Forever    

OllamaでLLMを使用する!(コンテキストサイズ:131072)

実用を考慮して、コンテキストサイズを131072に増やしてみました。

$ ollama run gpt-oss:20b --verbose
>>> Hello, my agent!
Thinking...
We need to respond politely, asking what help they need.
...done thinking.

Hello! 👋 How can I assist you today?

total duration:       3.879147811s
load duration:        160.709078ms
prompt eval count:    72 token(s)
prompt eval duration: 830.413715ms
prompt eval rate:     86.70 tokens/s
eval count:           33 token(s)
eval duration:        2.733755413s
eval rate:            12.07 tokens/s

16.51TOPS→12.07 TOPSとだいぶ遅くなりました・・・。CPUとGPUの配分を確認すると、CPUへの割り当てが発生しています。32GBのPCですが、半分の16GBを超えたのが悪いのかもしれません。

$ ollama ps
NAME           ID              SIZE     PROCESSOR          CONTEXT    UNTIL   
gpt-oss:20b    17052f91a42e    17 GB    13%/87% CPU/GPU    131072     Forever    

GPUへのVRAMの割り当てを増やす!

カーネルパラメータを増やして、28GB程度までGPUにVRAMを割り当てられるように、GRUBの設定を変更してみました。

$sudo vi /etc/default/grub
...
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdttm.pages_limit=7340032 ttm.pages_limit=7340032"
...
$ sudo update-grub
$ sudo reboot

結果は・・・。

$ ollama run gpt-oss:20b --verbose
>>> Hello, my agent!
Thinking...
User says "Hello, my agent!" It's a greeting. The user says "Hello, my agent!". So they might want the assistant to respond 
like an agent? The user might be expecting a greeting reply, maybe mention that I'm ready to assist. So we respond politely.
...done thinking.

Hello! How can I assist you today?

total duration:       5.653615179s
load duration:        161.12718ms
prompt eval count:    72 token(s)
prompt eval duration: 806.200916ms
prompt eval rate:     89.31 tokens/s
eval count:           74 token(s)
eval duration:        4.474306994s
eval rate:            16.54 tokens/s

復活しました!!

$ ollama ps
NAME           ID              SIZE     PROCESSOR    CONTEXT    UNTIL   
gpt-oss:20b    17052f91a42e    17 GB    100% GPU     131072     Forever  

おわりに

Ollamaのパフォーマンス確保のためには、GPUへのメモリの割り当て状況を確認して、チューニングしていく必要があります。

関連記事