开发
安装所需的工具:
- CMake 版本 3.24 或更高
- Go版本1.22或更高
- GCC版本11.4.0或更高
brew install go cmake gcc可选地启用调试和更详细的日志记录:
# At build time
export CGO_CFLAGS="-g"
# At runtime
export OLLAMA_DEBUG=1获取所需的库并构建原生LLM代码:
go generate ./...然后建造羊驼:
go build .现在你可以运行 ollama 了:
./ollamaLinux
Linux CUDA(英伟达)
您的操作系统发行版可能已经包含了NVIDIA CUDA的软件包。通常推荐使用发行版自带的包,但这些指令可能会因发行版的不同而不同。如果有的话,请查阅特定发行版的文档以获取依赖项!
安装cmake和golang,以及NVIDIA CUDA的开发和运行时包。
通常构建脚本会自动检测CUDA,但是如果你的Linux发行版或安装方法使用了不寻常的路径,你可以通过设置环境变量CUDA_ LIB _DIR 到共享库的位置,以及CUDACXX到nvcc编译器的位置来指定位置。你可以通过设置CMAKE_CUDA_ARCHITECTURES 来自定义目标CUDA架构(例如:"50;60;70")。
然后生成依赖项:
go generate ./...然后构建二进制文件:
go build .Linux ROCm(AMD)
您的操作系统发行版可能已经提供了AMD ROCm和CLBlast的软件包。通常推荐使用发行版软件包,但这些指令可能会因发行版而异。如果有的话,请查阅特定发行版文档了解依赖项!
首先安装CLBlast和[ROCm](https://rocm.docs.amd. com/zh-cn/latest/)的开发包,还需要安装cmake和golang。
构建脚本通常会自动检测ROCm,但如果你的Linux发行版或安装方法使用了不寻常的路径,你可以通过设置环境变量ROCM_PATH 到ROCm安装的位置(通常是/opt/rocm),以及设置CLBlast_DIR到CLBlast安装的位置(通常是/usr/lib/cmake/CLBlast )来指定位置。你还可以通过设置AMD GPU目标来自定义,例如AMDGPU_TARGETS="gfx1101;gfx1102"。
go generate ./...然后构建二进制文件:
go build .ROCm在运行时需要提升权限来访问GPU。在大多数发行版上,您可以将您的用户帐户添加到render组,或者以root身份运行。
进阶CPU设置
默认情况下,运行go generate ./... 将根据常见的CPU家族和向量数学功能编译LLM库的几个不同版本,包括一个最低公共分母,该分母几乎可以在任何64位CPU上慢速运行。在运行时,Ollama会自动检测要加载的最佳变体。如果您想为您的处理器构建一个基于CPU的自定义构建,可以设置OLLAMA_USTOM_PU_DEFS 为您希望使用的llama.cpp标志。例如,为了为Intel i9-9880H编译优化二进制文件,您可能会使用:
OLLAMA_CUSTOM_CPU_DEFS="-DLLAMA_AVX=on -DLLAMA_AVX2=on -DLLAMA_F16C=on -DLLAMA_FMA=on" go generate ./...
go build .容器化的Linux构建
如果你有Docker可用,你可以使用./scripts/build_linux.sh 构建包含CUDA和ROCm依赖项的Linux二进制文件。生成的二进制文件将位于./dist中。
窗户
注意:Ollama的Windows版本仍在开发中。
安装所需工具:
- MSVC工具链 - 最小需求为C/C++和cmake
- Go版本1.22或更高版本
- 选择一个变种的 MinGW 配合 GCC 使用。
- MingW-w64(https://www.mingw-w64. org/)
- MSYS2
$env:CGO_ENABLED="1"
go generate ./...
go build .Windows CUDA(英伟达)
除了上述描述的常用Windows开发工具之外,请在安装MSVC之后安装CUDA。
Windows ROCm(AMD Radeon)
除了上面描述的常见Windows开发工具外,安装MSVC后还需要安装AMD的HIP包。
AMD HIP(High-level Intermediate Programming)是一个编程框架,用于在AMD GPU上进行高性能计算。它允许开发者使用C++代码编写,并通过HIP编译器转换为可以在GPU上执行的代码,从而利用AMD Radeon Instinct加速卡和Ryzen CPU的并行计算能力。这种方式可以更轻松地将现有CPU代码迁移到GPU,以实现更高的性能。
最后,将随MSVC一起提供的ninja.exe 添加到系统路径中(例如 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja)。
