ollama新版本使用CUDA_VISIBLE_DEVICES限制显卡失效的解决办法

最近更新了ollama的版本,却发现以前限制在特定显卡上运行的ollama服务端开始调用所有的显卡,因为系统中存在高低不同性能的显卡,导致推理速度被低速显卡拖慢,变得非常卡顿。

根本原因:基于环境变量CUDA_VISIBLE_DEVICES限制ollama运行的显卡失效。

分析检索后发现,问题的根源是:Ollama 在新版本中重构了硬件发现机制并默认引入了 Vulkan 后端,默认会尝试通过 Vulkan API 来识别和调用显卡。Vulkan API 不受 CUDA_VISIBLE_DEVICES 环境变量的控制,因此它“越过”了限制,直接检测并加载了所有的物理显卡。

最简单的解决方法:
禁用 Vulkan 后端,强制 Ollama 仅使用 CUDA,防止 Vulkan 绕过环境变量。
在原本的环境变量基础上,新增环境变量:

OLLAMA_VULKAN=0

这会禁用Vulkan,之后所有的显卡限制就会和老版本一样正常工作了。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐