
Ollama v0.30.0 fails on Tesla V100: `CUDA error: device kernel image is invalid`
快速结论:此报错通常出现在使用老版本NVIDIA驱动(低于550)运行Ollama 0.30.0或更新版本时。优先排查驱动版本是否为550或以上,若无法升级驱动,可降级Ollama到0.24.0或从源码编译。
问题场景
用户在使用Ollama 0.30.0及更高版本时,在NVIDIA Tesla V100(sm_70)、RTX 3050、Quadro RTX 6000(sm_75)、RTX A2000(sm_86)等显卡上加载模型时触发此错误。问题发生在Ollama从GGML架构切换到llama.cpp架构后,预编译CUDA库中压缩的内核(compressed kernels)需要驱动程序版本550或更高才能正确解压。
报错原文
Error: 500 Internal Server Error: llama-server process has terminated: CUDA error
CUDA error: device kernel image is invalid:
CUDA errorCUDA error: device kernel image is invalid
load_tensors: offloaded 37/37 layers to GPU
CUDA error: device kernel image is invalid
.../llama-server-cuda_v12/.../ggml-cuda.cu:103
原因分析
根据Issue维护者的分析,Ollama 0.30.0版本起,预编译的CUDA内核启用了压缩(compression),这需要NVIDIA驱动程序550或更新版本才能正确解压。当驱动程序版本低于550时,驱动无法正确识别压缩后的内核镜像,导致报错。此问题是二进制发行版的回归问题——Ollama 0.24.0及更早版本在相同硬件上工作正常。
环境排查
- 确认Ollama版本(运行
ollama version),是否大于等于0.30.0 - 确认NVIDIA驱动版本(运行
nvidia-smi查看Driver Version),是否低于550 - 确认CUDA版本(运行
nvidia-smi查看CUDA Version) - 确认GPU型号及其计算能力(Compute Capability),例如V100为sm_70,RTX 6000为sm_75,RTX A2000为sm_86
- 检查Ollama启动日志,查看选择了哪个CUDA后端(例如cuda_v12或cuda_v13)
解决步骤
- 方案一(优先尝试):升级NVIDIA驱动到550或更高版本。 Issue中多位用户报告升级驱动后问题解决。受影响的用户最初使用驱动版本535.288.01、535.309.01等,升级到570.211.01或595.71.05后恢复正常。
- 方案二(如无法升级驱动):降级Ollama到0.24.0版本。 确认该版本在老旧驱动下正常工作。命令示例:
ollama downgrade 0.24.0或直接下载旧版可执行文件替换。 - 方案三(从源码编译): 如果驱动无法升级且必须使用新版Ollama,可从源码编译llama.cpp,在编译时指定正确的CUDA架构:
cmake -DCMAKE_CUDA_ARCHITECTURES=<你的GPU计算能力> -B build例如V100用
sm_70,RTX 6000用sm_75。 - 方案四(临时规避): Issue中提到,Ollama维护者计划在后续版本中添加驱动版本检测,当驱动低于550时自动回退到CPU模式并记录警告。如有新版本发布,可尝试升级后观察行为。
验证方法
完成修复后,运行ollama run [模型名]测试加载模型。如果模型正常加载并生成输出,没有出现CUDA error: device kernel image is invalid错误,则问题已解决。也可以检查ollama日志,确认GPU正常工作且没有回退到CPU模式。



