序言
- 在AMD RX570 显卡基于 GCN 4.0 架构(架构代码:gfx803),其支持的 ROCm版本存在明确限制,主要兼容 ROCm 4.5 至 ROCm 5.7 版本,而且最新的ollama都需要ROCm6.x版本进行运行
- 之前在windows机器下面运行ollama大模型是采用ollama-for-amd方案(参考https://github.com/likelovewant/ollama-for-amd),发现体验感不是很好,只能使用rocm5.7版本,RX570显卡支持的ollama最大版本为0.6.8,运行大模型的时候还容易异常退出;
- 直到找到gfx803_rocm项目 (参考https://github.com/robertrosenbusch/gfx803_rocm/),才让我找到完美解决方案,以容器的方式运行ollama,来跑大模型。
1.系统信息
1.1. 系统信息
- 硬件信息:4CPU + 16G RAM +200G SSD + RX570(8g)
- 软件信息:ubuntu24.04 + 6.8.x内核
- docker版本: Docker Engine - Community 28.3.3
root@linux:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
root@linux:~# neofetch
.-/+oossssoo+/-. root@linux
`:+ssssssssssssssssss+:` ----------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 24.04.2 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: KVM/QEMU (Standard PC (Q35 + ICH9, 2009) pc-q35-10.0)
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 6.8.0-78-generic
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 hours, 6 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 847 (dpkg)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.2.21
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 1280x800
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: QEMU Virtual version 2.5+ (4) @ 3.399GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: AMD ATI Radeon RX 470/480/570/570X/580/580X/590
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 813MiB / 15993MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
root@linux:~#
1.2.rocm64_gfx803容器镜像下载
- 容器镜像大小为34.2GB,需要保证电脑至少空余50GB的空间(后续需要运行大模型)
root@linux:~# docker pull moto999999/rocm64_gfx803_ollama:v0.9.3
root@linux:~# docker image tag moto999999/rocm64_gfx803_ollama:v0.9.3 rocm64_gfx803_ollama:v0.9.3
root@linux:~# docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
rocm64_gfx803_ollama v0.9.3 cd61541eef20 8 weeks ago 34.2GB
moto999999/rocm64_gfx803_ollama v0.9.3 cd61541eef20 8 weeks ago 34.2GB
root@linux:~#
2.运行大模型
2.1.运行rocm64_gfx803_ollama
root@linux:~# docker run -it \
--device=/dev/kfd \
--device=/dev/dri \
--group-add=video \
--ipc=host \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-p 8080:8080 -p 11434:11434 \
--name ollama rocm64_gfx803_ollama:v0.9.3 \
bash
- 通过ollama运行日志,可以看到已经识别GPU为gfx803系列,显存大小为8G

2.2.下载qwen3:0.6b大模型
root@linux:~# docker exec -it ollama bash
root@09e2ea1e3773:/ollama# ./ollama pull qwen3:0.6b
pulling manifest
pulling 7f4030143c1c: 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 522 MB
pulling ae370d884f10: 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 1.7 KB
pulling d18a5cc71b84: 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 11 KB
pulling cff3f395ef37: 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 120 B
pulling b0830f4ff6a0: 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████▏ 490 B
verifying sha256 digest
writing manifest
success
root@09e2ea1e3773:/ollama#
root@09e2ea1e3773:/ollama# ./ollama list
NAME ID SIZE MODIFIED
qwen3:0.6b 7df6b6e09427 522 MB About a minute ago
root@09e2ea1e3773:/ollama#
root@09e2ea1e3773:/ollama# ./ollama run qwen3:0.6b --verbose
>>> 你好,你是什么模型
Thinking...
好的,我现在需要处理用户的问题:“你好,你是什么模型 /think”。首先,我要确认用户的问题是否正确,以及是否需要进一步回答。用户问的是“你好,你是什么模型”,这里可能有两种理解:一种是用户想知道我是什么模型,另一种是想表达其他意思。
首先,用户的问题看起来是询问我的身份,但问题中存在一些语法错误,比如“你是什么模型”中的“你”应该是“你”或者“你是什么模型”中的“你”。不过用户可能想表达的是“你好,我是什么模型”。因此,我需要确认用户的问题是否存在翻译或语法错误,确保回答的准确性。
接下来,我需要考虑用户的需求。用户可能想确认自己或我是什么模型,或者想了解其他信息。由于问题中存在一些小问题,我需要先纠正这些错误,并确保回答的正确性。同时,保持友好和专业的语气,让用户感到被理解和支持。
然后,我需要组织回答,明确说明我的身份,比如作为某个模型,如大模型,或者具体指某个模型。同时,可以提到我具备的多种功能,以展示我的全面性。此外,可以邀请用户进一步提问,以促进互动。
最后,检查回答是否清晰、准确,并且符合中文表达习惯,确保没有遗漏或错误。
...done thinking.
你好!我是大模型,可以帮你解答问题、提供帮助或者进行交流。你可以告诉我一些具体的问题或需求,我会尽力为你服务! 😊
total duration: 4.81433926s
load duration: 29.963137ms
prompt eval count: 15 token(s)
prompt eval duration: 71.625792ms
prompt eval rate: 209.42 tokens/s
eval count: 306 token(s)
eval duration: 4.71224361s
eval rate: 64.94 tokens/s
>>>
2.3. 设备性能查看
root@09e2ea1e3773:/ollama# ./ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen3:0.6b 7df6b6e09427 2.2 GB 100% GPU 3 minutes from now
root@09e2ea1e3773:/ollama#
root@09e2ea1e3773:/ollama# rocm-smi
============================================ ROCm System Management Interface ============================================
====================================================== Concise Info ======================================================
Device Node IDs Temp Power Partitions SCLK MCLK Fan Perf PwrCap VRAM% GPU%
(DID, GUID) (Edge) (Socket) (Mem, Compute, ID)
==========================================================================================================================
0 1 0x67df, 59789 51.0°C 53.077W N/A, N/A, 0 1209Mhz 300Mhz 16.86% auto 135.0W 25% 0%
==========================================================================================================================
================================================== End of ROCm SMI Log ===================================================
root@09e2ea1e3773:/ollama# rocm-smi --showmeminfo all
============================ ROCm System Management Interface ============================
================================== Memory Usage (Bytes) ==================================
GPU[0] : VRAM Total Memory (B): 8589934592
GPU[0] : VRAM Total Used Memory (B): 2174513152
GPU[0] : VIS_VRAM Total Memory (B): 268435456
GPU[0] : VIS_VRAM Total Used Memory (B): 5439488
GPU[0] : GTT Total Memory (B): 8385056768
GPU[0] : GTT Total Used Memory (B): 11825152
==========================================================================================
================================== End of ROCm SMI Log ===================================
root@09e2ea1e3773:/ollama#
