我看清楚了你的错误,核心问题是:你的 CUDA 工具包版本太老,不支持
sm_52 (Maxwell) 架构,同时你用了废弃的编译参数。直接给你最快速、能解决问题的完整命令:
一步解决命令(直接复制运行)
先进入你的
gpu_build 目录,然后删除旧的编译缓存,再重新编译:bash
运行
# 清理错误的缓存
rm -rf ./*
# 正确的 CUDA 编译命令(修复所有问题)
cmake .. \
-DGGML_CUDA=ON \
-DGGML_CUDA_FORCE_CC75=ON \
-DCMAKE_BUILD_TYPE=Release
# 开始编译
make -j$(nproc)
为什么会报错?
- 废弃参数:
LLAMA_CUDA已经没用了,必须用GGML_CUDA - 架构不匹配:
ptxas fatal : Value 'sm_52' is not defined- 你的老 CUDA 不支持这个显卡架构
- 加上
-DGGML_CUDA_FORCE_CC75=ON强制使用通用兼容架构,立刻解决
完整正确流程
bash
运行
# 进入项目
cd ~/workspace/llama.cpp
# 创建干净的构建目录
mkdir -p build && cd build
# 配置 CUDA
cmake .. \
-DGGML_CUDA=ON \
-DGGML_CUDA_FORCE_CC75=ON \
-DCMAKE_BUILD_TYPE=Release
# 编译(多核加速)
make -j$(nproc)
编译完成后,就能在
build/bin 里拿到支持 CUDA 加速的 llama.cpp 工具了。总结
- 用
GGML_CUDA=ON替代废弃的LLAMA_CUDA - 加
GGML_CUDA_FORCE_CC75=ON解决架构不支持问题 - 必须清理缓存后重新 cmake
- 运行上面的命令就能成功编译