Ollama 现已支持 AMD 显卡

AMD 支持的意义及其对 Nvidia 的影响

  • 许多人认为 Ollama 对 AMD 的支持削弱了 Nvidia 的 CUDA 壁垒,至少在推理侧如此。
  • 训练仍被认为由 Nvidia 主导,但推理更关乎每个 token 的成本和 VRAM,而这正是 AMD 可以竞争的领域。
  • 本地 LLM 的热情正在推动对非 Nvidia 方案的需求,原因在于价格和可用性。

性能、成本与 VRAM 取舍

  • 多条评论指出,AMD 显卡在原始性能上通常落后于 RTX 4090,但按每 GB VRAM 的价格来看更便宜。
  • 对许多用户来说,能够以稍低的 tokens/s 运行更大、更好的模型,比速度更快但受限于 VRAM 的 Nvidia 显卡更有吸引力。
  • 有人报告了具体数字(例如在中端 AMD GPU 上运行 Mistral 7B Q6 约 35 tokens/s),但系统性的基准测试大多仍“不明确”。

实现细节:ROCm、Vulkan、OpenCL、HIP

  • Ollama 的 AMD 支持构建在 llama.cpp 之上,使用 ROCm;一个关联的提交确认了 ROCm 集成。
  • llama.cpp 中也有面向较老 AMD GPU 的 Vulkan 和 OpenCL 后端;其性能被描述为不如 CUDA/ROCm,但可用。
  • HIP 被提及为 AMD 的类 CUDA 可移植层,但其可靠性和稳定性存在争议。
  • OpenCL 被广泛描述为“仍然活着,但属于二等选择”,而且不如厂商专有栈好用。

硬件兼容性与变通方案

  • 官方支持列表主要面向较新的 RDNA2/3 显卡;许多用户报告通过环境变量(例如 HSA_OVERRIDE_GFX_VERSION=10.3.0)在更多显卡上“非官方”成功运行。
  • 某些显卡(尤其是 5700XT)缺少 ROCm 支持,这让从旧 Nvidia 显卡升级来的用户感到沮丧。
  • 集成 Radeon/APU 支持尚不可用;问题链接表明这是已知限制。

Ollama 与 llama.cpp 及其他工具

  • 普遍共识是,Ollama 本质上是对 llama.cpp 的用户友好封装,增加了注册表、简单 CLI,以及基于 VRAM 的自动配置。
  • 一些用户表示,他们在编译 llama.cpp 时遇到困难(尤其是 CUDA/ROCm 相关),但觉得 Ollama “一条命令”就能用,很方便。
  • 另一些人更偏好直接使用 llama.cpp、koboldcpp 或其他 UI,以获得更多控制、性能调优、并发能力或多模型支持。

生产环境 vs. 实验探索之争

  • 有人认为 Ollama 主要面向本地实验和个人使用,缺乏并发和多模型服务能力,因此不适合企业/生产环境。
  • 也有人表示自己在“类生产”的个人或小规模工作流中使用 Ollama(RAG、本地知识抽取、内网工具),并看重它的简洁性。
  • 还有人担心 llama.cpp 实际上承担了大部分艰难的优化工作,而 Ollama 却获得了更多关注;同时也讨论了 Ollama 是否充分注明其依赖并遵守许可。