1.llama.cpp安装
克隆llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
2.编译项目
cmake -DGGML_CUDA=on ..
cmake --build .
3.如果编译过程或者启动过程显示显存错误
warning: one possible reason is that llama.cpp was compiled without GPU support
3.1如果缺少nvcc
#查看是否存在nvcc,一般保存在/usr/local/cuda/bin/nvcc
which nvcc
#安装nvcc
sudo apt install nvidia-cuda-toolkit
#查看nvcc
nvcc --version
#配置nvcc环境
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
#重新编译llama.cpp,删除掉历史编译文件,重新编译
cd llama.cpp/build
rm -f CMakeCache.txt
rm -rf CMakeFiles
cmake -DGGML_CUDA=on ..
cmake --build .
4.模型权重下载
可以查找适合自己电脑性能的模型版本
from modelscope import snapshot_download
# 下载权重文件
snapshot_download(
repo_id = "unsloth/DeepSeek-R1-GGUF",
local_dir = "DeepSeek-R1-GGUF",
allow_patterns = ["*UD-IQ1_S*"], # 仅仅下载权重文件 1.58bit
)
'''
# 如果需要下载模型参数文件
snapshot_download(
repo_id="deepseek-ai/DeepSeek-R1",
local_dir="DeepSeek-R1-GGUF-parameter",
ignore_patterns=["*.safetensors"]
)
'''
5.启动DeepSeek-R1-UD-IQ1_S模型
#llama.cpp命令行测试
CUDA_VISIBLE_DEVICES=0,3,4,7 ./bin/llama-cli
--model 模型地址/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf
--cache-type-k q4_0 --threads 100 -no-cnv --prio 2
--n-gpu-layers 28 --temp 0.6 --ctx-size 8192
--seed 3407 --prompt "<|User|>100字幽默故事.<|Assistant|>"
#其中--thread和GPU根据自己的电脑性能填写
#这里我的CPU128线程,可以填到100
#我选择了4090*4,--n-gpu-layers 28
#如果单卡就是--n-gpu-layers 7
服务器端启动
#llama.cpp 服务端启动
CUDA_VISIBLE_DEVICES=0,4 ./bin/llama-server --model 模型地址/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf --cache-type-k q4_0 --n-gpu-layers 14 --temp 0.6 --ctx-size 8192 --port 8088
#如果需要地址号
--host 127.0.0.1
6.本地性能测试记录 llama.cpp测试DeepSeek-R1-UD-IQ1_S
treads/线程数 | 12 | 60 | 100 | 60 | 100 | 100 |
GPU | 0 | 0 | 0 | 4090*2 | 4090*2 | 4090*4 |
提示词处理速度(token/s) | 3.51 | 6.82 | 9.26 | 8.09 | 11.31 | 14.31 |
输出文本速度(token/s) | 2.14 | 3.51 | 3.79 | 4.13 | 4.57 | 5.63 |