电脑是win10系统,4GB显存 32GB内存
显卡型号:NVIDIA GeForce GTX 1050 Ti
处理器:i7-7700HQ 2.80GHz
最终的速度: Prompt: 18.7 t/s
Generation: 11.3 t/s
计算了下,12个汉字每秒(不包含所有标点符号,数字和英文字母)
速度还不错
下面是具体的步骤:
开发环境准备
1.Git for Windows,从GitHub下载源代码
2.CMake (≥3.14),配置和管理编译流程
3.Visual Studio 2022,提供Windows平台的核心C/C++编译器和库,下载社区版(Community),安装时务必勾选使用C++的桌面开发
4.NVIDIA 显卡驱动更新到最新
5.CUDA Toolkit (12.x) 让你的程序能调用NVIDIA GPU进行加速,需对应自己的显卡驱动
确认环境都准备好之后,就可以开始编译了
克隆仓库,powershell(管理员),执行:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
接着执行:
mkdir build
cd build
继续执行:
cmake .. -G "Visual Studio 17 2022" -A x64 -DGGML_CUDA=ON -DLLAMA_AVX2=ON -DLLAMA_FMA=ON
因为Windows 用户名包含中文字符,执行上面的代码报错了
CUDA 编译器 nvcc 无法正确处理包含非 ASCII 字符(如中文)的路径
解决方法很简单:将整个 llama.cpp 项目移动到一个纯英文路径下,例如C:\llama.cpp
修改系统环境变量 TEMP 和 TMP 为 C:\Temp
创建 build 目录并配置 CMake(启用 CUDA):
cd C:\llama.cpp
mkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DGGML_CUDA=ON -DLLAMA_AVX2=ON -DLLAMA_FMA=ON
编译:
cmake --build . --config Release -j 8
然后运行模型,但出现bug
运行时,出现大模型正在思考,就退成的情况,分析了下,原因是默认上下文大小 n_ctx=4096,长思考过程超出限制导致截断
增大上下文:-c 8192
启用上下文滚动:--context-shift
保持 -ngl 99 不变(全量 offload)
运行模型(这个是最终版的运行命令):cd C:\llama.cpp\build.\bin\Release\llama-cli.exe -m "C:\anzhuangruanjian\DaMoXing\gemma-4-26B-A4B-it-Q4_K_M.gguf" --cpu-moe -ngl 99 -cnv -c 8192 --context-shift -n -1
模型回答完问题后,会有运行的速度,但不显示出来,复制最后几行到txt中,就会显示出来
想退出模型,输入:/exit
夜雨聆风