收起左侧

Ollama780M核显跑大模型

2
回复
511
查看
[ 复制链接 ]

12

主题

29

回帖

5

牛值

小有名气

2025-8-15 16:27:45 显示全部楼层 阅读模式

使用Ollama在780M核显上跑大模型

很多人在咨询Ollama在780M核显上跑大模型的问题,今天我就来教大家如何去操作

首先,这份教程的关键在于Rocm,以及Ollama的Rocm镜像,所以他比传统的使用vulkan速度来的更快

在正式进入教程前,需要先确定几点:

  1. 您是否具备一定的动手能力,在Linux上安装Rocm库
  2. 您是否懂得一定Docker运行规则
  3. 请确认在BIOS中,您的显存设置为大于6G

============= 正式开始 =============

安装Rocm的驱动

  1. 在安装驱动前,我们需要先确定机器的GPU识别状态

    lspci -nn | grep -i radeon
    

    参考上图,我的机器识别到了GPU的状态

  2. 判断机器的内核版本大于5.15

    uname -r
    

    一般来说,大家都是在飞牛上运行,所以这一步大家可以省略

  3. 添加Rocm仓库

    wget -qO - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
    echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list
    
  4. 安装Rocm驱动

    sudo apt update
    sudo apt install rocm-dkms
    
  5. 查询安装状态

    rocm-smi
    

    如果安装完成,没有报错的话,应该可以在控制台查询到这样的信息

Docker运行Ollama

废话不多说,直接上yarm

services:
  ollama:
    image: ollama/ollama:rocm  # 使用 ROCm 专用镜像
    container_name: ollama
    environment:
      - HSA_OVERRIDE_GFX_VERSION=11.0.0  # 强制识别为 gfx1100
      - HIP_VISIBLE_DEVICES=0
      - OLLAMA_GPU_LAYERS=all
      - HSA_ENABLE_SDMA=1
      - OLLAMA_MMAP=1
      - OLLAMA_DEVICE=rocm
      - OLLAMA_GPU_LAYERS=35
    devices:
      - "/dev/kfd:/dev/kfd"
      - "/dev/dri:/dev/dri"
      - "/dev/dri/card0:/dev/dri/card0"
      - "/dev/dri/renderD128:/dev/dri/renderD128"
    ports:
      - "11434:11434"           # API 端口
    volumes:
      - "/vol1/1000/docker/ollama/models:/root/.ollama"

测试是否使用GPU运行

先看图

image.png

这里我们重点关注最后几句


time=2025-08-15T08:41:40.036Z level=INFO source=amd_linux.go:389 msg="skipping rocm gfx compatibility check" HSA_OVERRIDE_GFX_VERSION=11.0.0

time=2025-08-15T08:41:40.036Z level=INFO source=types.go:130 msg="inference com**" id=0 library=rocm variant="" com**=gfx1103 driver=0.0 name=1002:1900 total="6.0 GiB" available="5.9 GiB"

library=rocm avaible=5.9GiB

出现这两句,就说明我们的Ollama以及使用Rocm库来加载了。

运行大模型

image.png

我是直接在终端中运行了qwen3:8b模型

ollama run qwen3

大家如果如果网络速度不快的话,应该需要等待几分钟下载模型,等出现>>>时,就可以在终端中进行对话了

测试CPU/GPU占用率

image.png

通过上述图片,我们可以看到CPU占用率仅为10%,但是GPU占用率却一直为0,这是没有调用成功吗?

别着急,我们慢慢分析...

我们通过命令行来查询,发现GPU是由占用的,所以,应该是飞牛的GPU统计不准确导致的

rocm-smi

image.png

总结

以上的实践,我们发现了几个问题

  1. 飞牛的GPU占用很低,是不是没有用到GPU去运行?
  2. 显存占用一直很少,是不是没有用到显卡去运行啊?
  3. 既然没有用到显存,为什么还要在BIOS中设置显存大小?

我们一个一个的来讲

首先呢,GPU肯定是用到了,大家可以使用CPU去运行大模型,然后两个做一个对比

services:
  ollama:
    image: ollama/ollama:rocm  # 使用 ROCm 专用镜像
    container_name: ollama-cpu
    ports:
      - "11434:11434"           # API 端口
    volumes:
      - "/vol1/1000/docker/ollama/models:/root/.ollama"

image.png

不难看出来,使用CPU运行大模型时,CPU的占用率明显很高

那么显存占用是怎么回事啊,大模型不是依赖显存来运行的吗?

没错,一般来说,PCI接口的显卡确实是加载到显存中的,但是,统一内存架构就这点好处

既然内存可以分配作为显存,那么是不是直接可以从内存中获取数据呢?

最后一个问题,既然APU使用统一内存,为什么还要设置显存大小?

这就是一个BUG,Ollama在加载模型之前,都要判断一下显存是不是够用,不够的时候,直接就用CPU去执行了。期待Ollama尽快fix这个问题吧

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

13

主题

108

回帖

195

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章

2025-8-15 16:56:15 显示全部楼层

楼主**,楼主赛高

补充,原帖中楼主开启了SDMA“ HSA_ENABLE_SDMA=1”,由于780m在不同u不同主机上的表现差异不小,并无法保证稳定性。如果遇到开启后导致系统或其他进程崩溃,可以改为0禁用。禁用会导致性能下降,自行取舍

2

主题

35

回帖

0

牛值

江湖小虾

等待ollama后续版本吧,把系统玩崩了就没意义了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则