AMD 6650XT Windows下使用 Ollama

使用Ollama可以很方便地部署LLM模型推理服务,底层基于llama.cpp。软件支持windows、linux、macOS等操作系统,支持多种模型,包括Run Llama 3, Phi 3, Mistral, Gemma等。用户可以自定义和创建自己的模型。

N卡一般不会有什么使用问题,但是A卡的Rocm实际上兼容性并不那么好。要想在Windows平台下部署,可能需要额外的修改。

首先,6650XT的GPU number为gfx1032,并不在ollama官方软件支持的A卡列表中,所以需要修改源码。

修改HIP和ollama源码

我们参考 https://github.com/ollama/ollama/issues/3781 中的做法。

make sure make your rocm support first . download somewhere in github , eg, here replace the file in hip sdk. Then git clone ollama , edit the file in ollama\llm\generate\gen_windows.ps1 ,add your gpu number there . then follow the development guide ,step1,2 , then search gfx1102 , add your gpu where ever gfx1102 show . build again or simple follow the readme file in app folder to build an ollama install then you are make your ollama running on gpu

替换HIP库

首先,在 https://github.com/brknsoul/ROCmLibs/ 下载gfx1031 和 gfx1032 支持的HIP库,将原先%HIP_PATH\bin\rocblas\ 中的library文件夹重命名,例如oldlibrary,然后将ROCmLibs.zip中的library文件夹解压到%HIP_PATH\bin\rocblas\中。

修改ollama源码

ollama Github下载源码,在所有出现gfx1102的地方添加gfx1032。

然后就可以按照README文件进行编译。

Windows下编译带AMD支持的ollama

在windows平台下,要编译ollama,需要参考 https://github.com/ollama/ollama/blob/main/docs/development.md

安装依赖

Windows ROCm (AMD Radeon) In addition to the common Windows development tools described above, install AMDs HIP package after installing MSVC. AMD HIP Strawberry Perl

Lastly, add ninja.exe included with MSVC to the system path (e.g. C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja).

Install required tools:

  • MSVC toolchain - C/C++ and cmake as minimal requirements
  • Go version 1.22 or higher
  • MinGW (pick one variant) with GCC. (可不用安装了)
    • MinGW-w64
    • MSYS2

实际上,安装Strawberry Perl会附带有MinGW,所以不需要再安装MinGW。我们确保MSVC安装好cmake、ninja等工具,并且将对应path添加到环境变量。


编译ollama.exe

1
2
3
$env:CGO_ENABLED="1"
go generate ./... # 编译llama.cpp
go build . # 生成ollama.exe

编译ollama app.exe

1
2
3
4
cd app
$env:CGO_ENABLED="1"
go generate ./...
go build .

为了方便使用,可以安装官方的ollama,然后把编译好的文件替换过去。

dist\windows-amd64中的ollama_runners和rocm两个目录复制到 $USER\AppData\Local\Programs\Ollama中。

(没有必要)将 $USER\AppData\Local\Programs\Ollama 中的ollama.exe替换为编译好的ollama.exe,将ollama app.exe替换为编译好的app/app.exe(改下名字为ollama app.exe)。

这样,就可以通过ollama命令来启动ollama服务了。

例如 ollama run qwen:1.8b

可以在任务管理器,查看显卡Compute 1的占用。