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 aria2

CUDA 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 -j

CMAKE_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。

最容易踩的三个坑

  1. arch 填错:见上。
  2. 装了带驱动的 CUDA:WSL 里不该装驱动。
  3. 模型放在 /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 即可。

参考资料