llama.cpp CUDA 编译教程:Windows 笔记本用 WSL2 跑通 RTX 3060
在 Windows 11 笔记本上,用 WSL2 + CUDA 12.8 编译 llama.cpp,生成 llama-server、llama-bench。我们所有 6GB 实测都用这套环境,三个参数最容易填错。
环境
- Windows 11,RTX 3060 Laptop 6GB,显卡驱动 610.47;
- WSL2 里装 Ubuntu 24.04;
- WSL 内装 CUDA toolkit 12.8;
- llama.cpp 官方仓库,我们用的 commit 是
9655061。
先确认 WSL 里能看到显卡:
nvidia-smi能列出 RTX 3060 Laptop 才往下走。
装工具链
sudo apt install -y build-essential cmake ninja-build git aria2CUDA toolkit 要装 WSL 专用源(wsl-ubuntu),不要装带驱动的完整包,驱动由 Windows 那边提供。云服务器则要换成 ubuntu2404 源。
编译
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=86
cmake --build build --config Release -jCMAKE_CUDA_ARCHITECTURES 要按显卡的 compute capability 填:RTX 3060 Laptop 是 8.6,所以填 86。照抄别人 50 系显卡的 120 编出来跑不了。可以用 nvidia-smi --query-gpu=compute_cap --format=csv 查。
验证
./build/bin/llama-cli --list-devices要能看到 CUDA0。如果只列出 CPU,说明 CUDA 没接上,跑出来的速度没有意义。
产物在 build/bin/:llama-server、llama-cli、llama-bench。
最容易踩的三个坑
- arch 填错:见上。
- 装了带驱动的 CUDA:WSL 里不该装驱动。
- 模型放在
/mnt/c或/mnt/f:跨文件系统读很慢。我们用 22GB 模型做智能体测试时,从/mnt/f加载超时,第一次没起来。模型尽量放在 WSL 自己的文件系统里。
下一步
常见问题
CMAKE_CUDA_ARCHITECTURES 填什么? 按显卡 compute capability 填,RTX 3060 Laptop 是 8.6,填 86。
怎么确认 CUDA 生效? 运行 llama-cli --list-devices,能看到 CUDA0 即可。