笔记本 RTX 3080M:Ubuntu 上装 CUDA 并源码编译 llama.cpp
2026-07-21
安装搭建
00

目录

环境
装驱动
装 CUDA Toolkit
编译 llama.cpp
选版本时怎么对
常见问题
从头到尾的命令

笔记本 RTX 3080(Laptop)在 Ubuntu 22.04 上装驱动和 CUDA Toolkit,再把 llama.cpp 编成带 CUDA 的版本。

环境

这台机器上跑通时的配置:

  • GPU:RTX 3080 Laptop,16GB,整卡功耗墙大约 90W
  • CPU:11 代 Intel,8 核 16线程;内存 64GB ECC
  • 系统:Ubuntu 22.04
  • 驱动:595.71.05(nvidia-smi 里 CUDA Version 显示 13.2)
  • Toolkit:CUDA 12.4(nvcc 12.4)
  • 网络:本机 GitHub / NVIDIA 下载走了 HTTP 代理;apt 直连(无代理可忽略)

nvidia-smi 里的 CUDA Version 是驱动支持的上限,不是本机 nvcc 的版本。新驱动可以跑旧 Toolkit,反过来不行,所以这里用 12.4 没问题。

笔记本版 3080 功耗墙比台式机低,编译和推理都跑不满桌面卡的水平,正常。有 Optimus 时确认跑在独显上,必要时 prime-select nvidia

装驱动

Ubuntu / Debian 可以直接:

bash
# 无 HTTP 代理时可忽略下一行 unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY sudo apt-get update sudo ubuntu-drivers autoinstall sudo reboot

其它发行版从 NVIDIA 驱动下载页面下载对应 .run,先切到多用户模式再装:

bash
sudo systemctl isolate multi-user.target sudo sh NVIDIA-Linux-x86_64-*.run sudo reboot

重启后:

bash
nvidia-smi

能看到型号和驱动版本就可以。

装 CUDA Toolkit

驱动里没有 nvcc(Toolkit),要从源码编 llama.cpp 得先装 Toolkit。去 CUDA Toolkit Archive 选 12.4 的 runfile:

bash
# 无 HTTP 代理时可忽略下一行 export https_proxy=<HTTP_PROXY>; export http_proxy=$https_proxy wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_*.run sudo sh cuda_12.4.0_*.run

安装界面里驱动可以不勾(已经装过),只留 Toolkit。然后:

bash
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc nvcc --version

有 samples 的话可以编一下 deviceQuery,末尾 Result = PASS 就说明 Toolkit 可用:

bash
cp -r /usr/local/cuda-12.4/samples ~/cuda-samples cd ~/cuda-samples/1_Utilities/deviceQuery make ./deviceQuery

编译时建议用绝对路径指定 nvcc,避免 PATH 里混进别的版本:

bash
-DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.4/bin/nvcc

驱动支持的 CUDA 版本要 ≥ Toolkit。

编译 llama.cpp

bash
# 无 HTTP 代理时可忽略:apt 前的 unset、以及下面给 git 用的 export unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY sudo apt-get install -y build-essential cmake git export https_proxy=<HTTP_PROXY>; export http_proxy=$https_proxy git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp mkdir -p build && cd build cmake .. \ -DGGML_CUDA=ON \ -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.4/bin/nvcc \ -DCMAKE_CUDA_ARCHITECTURES=86 \ -DCMAKE_BUILD_TYPE=Release cmake --build . --config Release -j $(nproc)

-DCMAKE_CUDA_ARCHITECTURES=86 对应 3080(sm_86)。别的卡按算力改,例如 40 系常见是 89/90。笔记本散热一般,并行太多会降频,可以改成 -j 8

检查:

bash
./bin/llama-server --version

真正拉起模型时另开一个终端看显存:

bash
watch -n 1 nvidia-smi

能看到 llama-server 和显存占用,说明 CUDA 后端生效了。

选版本时怎么对

  1. 先看 nvidia-smi 的 CUDA Version,这是上限。
  2. 按项目要求选不超过上限的 Toolkit。
  3. 编译用绝对路径的 nvcc
  4. 如果只是跑 PyTorch / ComfyUI,通常不用本机 Toolkit,直接装 CUDA wheel 即可,例如:
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

本机在驱动 595 上测过 torch 2.13.0+cu126cuda.is_available() 为 True。

常见问题

现象处理
nvcc: command not found驱动装了,Toolkit 还没装
编译报 C++ / API 相关错误确认用的是 12.4 的 nvcc,并写绝对路径
CUDA version insufficientToolkit 比驱动新,降 Toolkit 或升驱动
libcudart.so.x not found/usr/local/cuda-12.4/lib64 加进 LD_LIBRARY_PATH
编译中途卡死、重启-j 降下来,注意散热
apt 卡住unset 掉代理再装
GitHub / NVIDIA 下不动给这些下载开 <HTTP_PROXY>(无代理则可忽略,多半是网络本身问题)

零散命令:

bash
nvidia-smi nvcc --version nvidia-smi -q | grep -i 'product name' watch -n1 nvidia-smi

从头到尾的命令

bash
# 无 HTTP 代理时可忽略所有 unset / export …proxy unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY sudo apt-get update sudo ubuntu-drivers autoinstall sudo reboot # 重启之后继续 sudo apt-get install -y build-essential cmake git export https_proxy=<HTTP_PROXY>; export http_proxy=$https_proxy wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_*.run sudo sh cuda_12.4.0_*.run echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc nvcc --version git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp && mkdir -p build && cd build cmake .. -DGGML_CUDA=ON \ -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.4/bin/nvcc \ -DCMAKE_CUDA_ARCHITECTURES=86 -DCMAKE_BUILD_TYPE=Release cmake --build . --config Release -j $(nproc) ./bin/llama-server --version

ai协作,人工编辑

本文作者:张老板

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!