跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

8 卡 RTX 5090 服务器 llama.cpp 部署与性能调优指南

基于 Ubuntu 22.04 的 8 卡 RTX 5090 服务器部署 llama.cpp 完整流程。涵盖 Blackwell 架构驱动安装(需使用 open-dkms)、CUDA 12.4 环境配置及源码编译优化。重点演示多 GPU 并行推理设置,包括显存分配、Flash Attention 开启及 NUMA 调度策略。实测显示在 Qwen3 32B 模型下可实现高吞吐生成,提供详细的参数调优建议与常见问题排查方案,确保硬件资源最大化利用。

岁月神偷发布于 2026/4/11更新于 2026/9/1076 浏览

8 卡 RTX 5090 服务器 llama.cpp 完整部署及性能调优

本文基于 Ubuntu 22.04 LTS,针对 NVIDIA Blackwell 架构(RTX 5090)提供从驱动安装、环境配置到多 GPU 推理测试的完整流程。重点解决 5090 专用驱动兼容性及 8 卡并行加速问题。

一、系统与硬件准备

1.1 系统要求

  • OS: Ubuntu 22.04 LTS (64 位)
  • Kernel: 6.8+ HWE 内核(5090 必须高内核以支持新特性)
  • Driver: 禁用 Nouveau 开源驱动,避免冲突

1.2 硬件检查

确认 8 张显卡是否被系统正确识别:

# 查看 NVIDIA 设备
lspci | grep -i nvidia
# 应输出 8 条 "NVIDIA Corporation Device 2782 (rev a1)"

文章配图

二、安装 NVIDIA 驱动(5090 专属流程)

RTX 5090(Blackwell)必须使用 open-dkms 开源内核模块驱动,闭源驱动会导致报错或无法识别。

2.1 卸载旧驱动与禁用 Nouveau

# 1. 彻底卸载旧 NVIDIA 驱动
sudo apt purge nvidia* libnvidia* -y
sudo apt autoremove -y

# 2. 禁用 Nouveau
sudo bash -c 'echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf'
sudo update-initramfs -u

# 3. 重启生效
sudo reboot

文章配图 文章配图 文章配图

2.2 安装高版本 HWE 内核

# 安装 6.8+ HWE 内核
sudo apt update
sudo apt install linux-generic-hwe-22.04 -y
sudo reboot

# 验证内核版本(必须≥6.8)
uname -r
# 输出示例:6.8.0-45-generic

文章配图 文章配图

2.3 安装 5090 专用开源驱动

# 添加显卡驱动 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update

# 安装 590-open 驱动(5090 推荐)
sudo apt install nvidia-driver-590-open -y

# 重启并验证
sudo reboot
nvidia-smi

输出应显示 8 张 RTX 5090、驱动版本 590.xx、CUDA Version 12.4+。

文章配图 文章配图 文章配图 文章配图

三、安装 CUDA Toolkit 与编译依赖

3.1 安装 CUDA 12.4

# 下载 CUDA 12.4 安装包
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run

# 安装(仅安装 CUDA Toolkit,不装驱动)
sudo sh cuda_12.4.0_550.54.14_linux.run --silent --toolkit

# 配置环境变量
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

# 验证 CUDA
nvcc -V
# 输出应显示 release 12.4

文章配图 文章配图

3.2 安装基础编译工具

llama.cpp 需要 C++ 编译环境及 OpenBLAS 支持。

sudo apt update
sudo apt install git build-essential cmake pkg-config libopenblas-dev -y

# 验证依赖
gcc --version   # ≥11
cmake --version # ≥3.22

文章配图 文章配图 文章配图 文章配图

四、编译 llama.cpp(开启 8 卡 CUDA 加速)

4.1 克隆源码

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

文章配图

4.2 编译配置

关键参数说明:

  • LLAMA_CUDA=ON:启用 CUDA 后端
  • LLAMA_CUDA_DMMV_X=32:提升多 GPU 显存效率
  • LLAMA_CUDA_N_GRAPH_LAYERS=9999:全层 GPU 卸载
  • LLAMA_CUDA_ARCHS=120:5090 专属算力(sm_120)
cmake -B build \
    -DLLAMA_CUDA=ON \
    -DLLAMA_CUDA_DMMV_X=32 \
    -DLLAMA_CUDA_N_GRAPH_LAYERS=9999 \
    -DLLAMA_CUDA_ARCHS=120 \
    -DCMAKE_BUILD_TYPE=Release

# 8 线程编译(匹配服务器 CPU 核心)
cmake --build build -j$(nproc)

文章配图 文章配图 文章配图

4.3 验证编译

./build/bin/llama-cli --help | grep -E "cuda|gpu"
# 应输出:--cuda, --gpu-layers N 等 CUDA 参数

文章配图

五、准备 GGUF 模型

以 Qwen3 32B Q4_K_M 量化模型为例(4-bit,显存友好):

mkdir -p models && cd models
wget https://hf-mirror.com/bartowski/Qwen_Qwen3-32B-GGUF/resolve/main/Qwen_Qwen3-32B-Q4_K_M.gguf
cd ..

文章配图

六、8 卡 5090 llama.cpp 测试

6.1 单卡基础测试

验证 CUDA 是否正常调用:

cd ..
./build/bin/llama-cli \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
--gpu-layers 99 \
-t 64 \
-c 32768 \
-p "你好"

同时另开一个终端监控:

watch -n 1 nvidia-smi

6.2 8 卡并行测试

llama.cpp 自动识别所有 NVIDIA GPU,无需手动指定卡 ID,实现负载均衡。

./build/bin/llama-cli \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
-n 1024 \
--gpu-layers 99 \
-t 32 \
-c 16384 \
-p "撰写关于 8x RTX 5090 服务器用于大语言模型(LLM)推理的技术概述。" \
--batch-size 1024 \
--mlock \
--flash-attn on

文章配图

Prompt: 289.1 t/s | Generation: 66.6 t/s

6.3 显存与负载验证

实时监控显示:8 张 5090 显存均被占用(≈4GB/卡)、GPU 利用率 = 55%。

七、性能调优(8 卡 5090 专属)

7.1 关键参数优化建议

以下参数组合旨在最大化 8 卡并行效率,适配长文本生成需求:

./build/bin/llama-cli \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
-n 2048 \
--gpu-layers 99 \
-t 64 \
-c 32768 \
-p "撰写关于 8x RTX 5090 服务器用于大语言模型(LLM)推理的技术概述。" \
--batch-size 2048 \
--mlock \
--flash-attn on \
--no-mmap \
--numa distribute

参数解析:

  • -n 2048: 最大生成 token 数,满足长篇幅需求。
  • -t 64: 分配 64 个 CPU 线程,匹配多 GPU 并行调度。
  • -c 32768: 上下文长度提升至 32K,支持深度推理。
  • --batch-size 2048: 提升批量推理效率,适配 8×RTX 5090 算力。
  • --mlock: 锁定内存,避免 Swap 交换,提升稳定性。
  • --flash-attn on: 启用 Flash Attention,发挥 5090 硬件性能。
  • --no-mmap: 禁用内存映射,减少开销。
  • --numa distribute: NUMA 优化,将任务均匀分配到 CPU 节点,平衡内存访问效率。

文章配图

[Prompt: 280.4 t/s | Generation: 65.2 t/s]

7.2 多 GPU 显存分配

如需手动控制层分布(例如前 40 层到 GPU0,后 40 层到 GPU1-7):

./build/bin/llama-cli \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
-n 2048 \
--gpu-layers 80 \
--main-gpu 0 \
-t 64 \
-c 32768 \
-p "撰写关于 8x RTX 5090 服务器用于大语言模型(LLM)推理的技术概述。" \
--batch-size 2048 \
--mlock \
--flash-attn on \
--no-mmap \
--numa distribute

注意: llama.cpp 不支持 --cuda-devices 参数,通过 --main-gpu 0 即可实现分层分配,系统会自动识别剩余 GPU 并分配后续层数。

文章配图

[Prompt: 248.7 t/s | Generation: 65.1 t/s]

八、常见问题排查

  1. nvidia-smi 只显示部分卡
    • 重启服务器,检查 PCIe 插槽与供电。
    • 确认驱动为 590-open,非闭源。
  2. llama.cpp 只跑 CPU,不调用 GPU
    • 编译时必须加 -DLLAMA_CUDA=ON。
    • 运行时加 --gpu-layers ≥32。
    • 验证 CUDA:nvcc -V。
  3. 显存溢出(OOM)
    • 降低 --gpu-layers(如 99→80)。
    • 使用更低量化(Q3_K_M)。
    • 增大 -c 上下文窗口。
  4. 5090 报错:Failed to allocate NvKmsKapiDevice
    • 必须用 nvidia-driver-xxx-open 开源驱动。
    • 内核必须 ≥6.8。

九、基准测试与最终验证

执行以下命令确认 8 卡 5090 全量工作:

./build/bin/llama-cli \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
-n 4096 \
--gpu-layers 99 \
-t 64 \
-c 32768 \
-p "阐述 8x RTX 5090 在大型语言模型部署中的优势。" \
--batch-size 2048 \
--mlock \
--flash-attn on

文章配图

[Prompt: 229.4 t/s | Generation: 65.7 t/s]

使用 llama-bench 进行正式 Benchmark:

./build/bin/llama-bench \
-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \
-t 64 \
-p 512,2048,8192 \
-n 128,512,2048 \
-ngl 99 \
-b 2048 \
-ub 512 \
-fa 1 \
-r 3 \
2>&1 | tee benchmark_results.txt

文章配图

modelsizeparamsbackendnglfatestt/s
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991pp5123569.28 ± 44.41
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991pp20483744.03 ± 0.42
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991pp81923512.90 ± 0.50
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991tg12866.56 ± 0.02
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991tg51266.29 ± 0.07
qwen3 32B Q4_K - Medium18.40 GiB32.76 BCUDA991tg204865.12 ± 0.03

build: 08f21453a (8589)

目录

  1. 8 卡 RTX 5090 服务器 llama.cpp 完整部署及性能调优
  2. 一、系统与硬件准备
  3. 1.1 系统要求
  4. 1.2 硬件检查
  5. 查看 NVIDIA 设备
  6. 应输出 8 条 "NVIDIA Corporation Device 2782 (rev a1)"
  7. 二、安装 NVIDIA 驱动(5090 专属流程)
  8. 2.1 卸载旧驱动与禁用 Nouveau
  9. 1. 彻底卸载旧 NVIDIA 驱动
  10. 2. 禁用 Nouveau
  11. 3. 重启生效
  12. 2.2 安装高版本 HWE 内核
  13. 安装 6.8+ HWE 内核
  14. 验证内核版本(必须≥6.8)
  15. 输出示例:6.8.0-45-generic
  16. 2.3 安装 5090 专用开源驱动
  17. 添加显卡驱动 PPA
  18. 安装 590-open 驱动(5090 推荐)
  19. 重启并验证
  20. 三、安装 CUDA Toolkit 与编译依赖
  21. 3.1 安装 CUDA 12.4
  22. 下载 CUDA 12.4 安装包
  23. 安装(仅安装 CUDA Toolkit,不装驱动)
  24. 配置环境变量
  25. 验证 CUDA
  26. 输出应显示 release 12.4
  27. 3.2 安装基础编译工具
  28. 验证依赖
  29. 四、编译 llama.cpp(开启 8 卡 CUDA 加速)
  30. 4.1 克隆源码
  31. 4.2 编译配置
  32. 8 线程编译(匹配服务器 CPU 核心)
  33. 4.3 验证编译
  34. 应输出:--cuda, --gpu-layers N 等 CUDA 参数
  35. 五、准备 GGUF 模型
  36. 六、8 卡 5090 llama.cpp 测试
  37. 6.1 单卡基础测试
  38. 6.2 8 卡并行测试
  39. 6.3 显存与负载验证
  40. 七、性能调优(8 卡 5090 专属)
  41. 7.1 关键参数优化建议
  42. 7.2 多 GPU 显存分配
  43. 八、常见问题排查
  44. 九、基准测试与最终验证

更多推荐文章

查看全部
  • 自然语言处理在金融领域的应用与实战
  • C++ lower_bound 与 upper_bound 函数详解
  • OpenClaw Docker 部署教程:集成飞书钉钉 QQ 机器人
  • Spatial Joy 2025 全球 AR&AI 赛事参赛指南:资源、玩法与避坑攻略
  • LeetCode Hot 100 经典题型 Python 实战解析
  • 前端开发终极资源宝库:gh_mirrors/fr/frontend-stuff 完整指南
  • Supabase 全栈开发实战:数据库、认证与本地部署
  • Linux 系统文件 IO 与重定向原理
  • FlashTable 实测:AI 赋能低代码开发与企业级应用构建
  • AI 系统视角下的大模型发展与技术挑战
  • Spring Boot 数据缓存集成与性能优化实践
  • AI Agent 开发入门:零基础学习指南
  • π0.5 开源:Physical Intelligence GitHub 仓库 9 月更新
  • 2026 年 AI 大数据与大模型就业趋势分析
  • OpenClaw 本地 AI 助手安装配置指南
  • IDEA 配置 Tomcat 运行 JSP 项目:环境搭建与页面访问
  • Open WebUI MCPo 项目解析:将 MCP 工具转换为 OpenAPI 接口
  • OpenClaw 中文发行版部署指南:npm/Docker/脚本三种方式
  • Windows 系统下 Neo4j 与 JDK 安装配置实战
  • AI 时代,鸿蒙 App 还需要传统导航结构吗?

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online