windows上让ollama支持AMD RX6700 XT显卡

问题

ROCm(Radeon Open Compute Platform)是AMD推出的一个开放的、基于GPU的高性能计算平台,涵盖了许多用于GPU计算的库、工具和运行时环境等诸多组件,主要用于加速科学计算、机器学写等多种类型的计算任务,对标Nvidia的CUDA生态,旨在为HPC和超大规模GPU计算提供软件开发平台。

Ollama使用ROCm来对AMD GPU运行大模型给以支持,如果ollama使用的ROCm版本对GPU支持有限制,那么ollama就不会利用GPU来运行大模型。

截至到2024年03月14日,Ollama使用的ROCm支持的AMD显卡如下:

Family Supported cards and accelerators
AMD Radeon RX 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600 6950 XT 6900 XTX 6900XT 6800 XT 6800 Vega 64 Vega 56
AMD Radeon PRO W7900 W7800 W7700 W7600 W7500 W6900X W6800X Duo W6800X W6800 V620 V420 V340 V320 Vega II Duo Vega II VII SSG
AMD Instinct MI300X MI300A MI300 MI250X MI250 MI210 MI200 MI100 MI60 MI50

很不幸,我的AMD Radeon RX 6700XT就没有在支持的列表里面。

解决方案

感谢开源的力量,因为ollama是开源的,有热心网友尝试在ollama中加入较新版本的ROCm的支持,因为新版本的ROCm就有对RX 6700XT显卡的支持,自然而然加入新版本ROCm支持的Ollama也会同样支持到RX 6700XT。

准备步骤

  1. 首先到ollama官方网站,安装最新版本的Ollama,截至到文章发布时,最新版本的ollama为0.4.4
  2. 然后尝试在ollama的服务日志中找到显卡代码,例如下面日志中gpu_type=gfx1031字段表示RX6700XT对应的显卡代码为gfx1031
    ...level=WARN source=amd_windows.go:138 msg="amdgpu is not supported (supported types:[gfx1103])" gpu_type=gfx1031 gpu=0 library=C:\Users\rfanc\AppData\Local\Programs\Ollama\lib\ollama
  3. 然后到https://github.com/likelovewant/ollama-for-amd/releases网站找到最匹配的Ollama修改版本,匹配原则就是和官方网站的ollama版本最接近的,例如:https://github.com/likelovewant/ollama-for-amd/releases/tag/v0.4.2

具体步骤

从准备步骤中,我们已经获取到如下信息:

基于上述信息,我们具体的操作步骤如下:

  1. 打开Ollama修改版本页面:https://github.com/likelovewant/ollama-for-amd/releases/tag/v0.4.2
  2. 退出ollama
  3. 在该页面中下载并安装ollama修改版:OllamaSetup.exe
  4. 在该页面中找到v6.1.2版本的ROCm库的下载地址:https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU/releases/tag/v0.6.1.2
  5. 打开v6.1.2的ROCm库下载页面,下载:rocm.gfx1031.for.hip.sdk.6.1.2.7z
  6. 解压rocm.gfx1031.for.hip.sdk.6.1.2.7z文件,将压缩包中的文件替换到下列路径:
    • rocblas.dll替换%LocalAppData%\Programs\Ollama\lib\ollama\rocblas.dll
    • library\*替换%LocalAppData%\Programs\Ollama\lib\ollama\rocblas\library\*
  7. 重新启动ollama

验证

  • 如果在ollama的server.log能找到类似日志,说明显卡已经成功找到
    ...level=INFO source=types.go:123 msg="inference compute" id=0 library=rocm variant="" compute=gfx1031 driver=6.1 name="AMD Radeon RX 6700 XT"...
  • 或者在运行大模型的时候,打开任务管理器,查看GPU的性能,如果看到显存被大幅占用,并且在推理时发现GPU利用率变高说明显卡已经被正确使用。

参考:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇