AMD RX570使用ollama跑AI大模型

序言

  • 在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

image

2.2.下载qwen3:0.6b大模型

  • 本次测试使用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# 

image

posted @ 2025-08-24 14:23  二乘八是十六  阅读(170)  评论(0)    收藏  举报