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

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

综述由AI生成介绍在 Ubuntu 22.04 LTS 环境下,基于 8 卡 RTX 5090 服务器的完整环境搭建与 llama.cpp 部署流程。内容涵盖 NVIDIA 驱动安装(含 open-dkms)、CUDA 12.4 配置、llama.cpp 源码编译(开启 CUDA 及 sm_120 架构支持)、多 GPU 并行测试及性能调优。文章提供了详细的命令行操作指南,包括驱动卸载、内核升级、依赖安装、模型下载及推理参数优化(如 batch-size、gpu-layers、numa 等)。最后包含常见问题排查与基准测试结果,旨在帮助用户充分利用 8 卡 5090 硬件进行大语言模型推理部署。

观心发布于 2026/4/6更新于 2026/6/232 浏览

8 卡 RTX 5090 服务器完整安装及性能调优指南

基于 Ubuntu 22.04 LTS,适配 Blackwell 架构的 8 卡 RTX 5090 服务器从 NVIDIA 驱动安装到多 GPU 测试的完整流程。

一、系统与硬件准备

1.1 系统要求

  • 推荐:Ubuntu 22.04 LTS(64 位)
  • 内核:6.8+ HWE 内核(5090 必须高内核)
  • 禁用:Nouveau 开源驱动(与 NVIDIA 驱动冲突)

1.2 硬件检查

# 查看 8 张 5090 是否被识别
lspci | grep -i nvidia
# 应输出 8 条 NVIDIA Corporation Device 2782 (rev a1)

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

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 内核(5090 强制要求)

# 安装 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 专用开源驱动(-open)

RTX 5090(Blackwell)必须用 open-dkms 开源内核模块驱动,闭源驱动会报错。

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

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

# 重启
 reboot


nvidia-smi
sudo
# 验证驱动(8 卡均正常显示)

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

三、安装 CUDA Toolkit(llama.cpp 依赖)

3.1 安装 CUDA 12.4(与 590 驱动匹配)

# 下载 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 多 GPU 核心依赖)

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

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

4.1 克隆源码

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

4.2 编译(开启 CUDA + 多 GPU + 5090 算力 sm_120)

# 关键参数:
# LLAMA_CUDA=1:启用 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 模型(测试用)

5.1 下载测试模型(以 Qwen3 32B Q4_K_M 为例)

# 进入模型目录
mkdir -p models && cd models

# 下载 Qwen3 32B Q4_K_M 量化模型(4-bit,显存友好)
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 卡并行测试(多 GPU 自动负载均衡)

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

6.3 8 卡显存与负载验证

新开终端,实时监控:

watch -n 1 nvidia-smi

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 数提升至 2048,满足更长篇幅的技术概述撰写需求;
  • -t 64:分配 64 个 CPU 线程,匹配多 GPU 并行推理的 CPU 调度需求,提升协同效率;
  • -c 32768:将上下文长度提升至 32768,支持更长文本输入与生成,适配技术概述的深度撰写;
  • --batch-size 2048:提升批量推理效率,适配 8×RTX 5090 多 GPU 并行算力;
  • --mlock:锁定内存,避免内存交换(swap),提升多 GPU 推理稳定性;
  • --flash-attn on:启用 Flash Attention 优化,充分发挥 RTX 5090 硬件性能,显著提升推理速度;
  • --no-mmap:禁用内存映射(mmap),减少内存开销,进一步提升多 GPU 协同推理速度;
  • --numa distribute:启用 NUMA(非统一内存访问)优化,采用'distribute'模式,将执行任务均匀分配到所有 CPU 节点,适配多 CPU 节点服务器,平衡 CPU 与多 GPU 之间的内存访问效率,避免资源瓶颈。

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

7.2 多 GPU 显存分配(手动指定)

如需手动分配层到不同 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
  • -n 2048:最大生成 token 数,满足技术概述长文本撰写需求;
  • -t 64:分配 64 个 CPU 线程,匹配多 GPU 并行推理的 CPU 调度,提升协同效率;
  • -c 32768:上下文长度 32768,支持长文本输入与生成;
  • --batch-size 2048:提升批量推理效率,适配 8×RTX 5090 多 GPU 算力;
  • --mlock:锁定内存,避免内存交换,提升推理稳定性;
  • --flash-attn on:启用 Flash Attention 优化,充分发挥 RTX 5090 硬件性能;
  • --no-mmap:禁用内存映射,减少内存开销,提升多 GPU 协同速度;
  • --numa distribute:NUMA 优化,均匀分配任务到所有 CPU 节点,避免资源瓶颈;
  • --gpu-layers 80:核心分层配置,总加载 80 层模型到 GPU(前 40 层 + 后 40 层),需确保该层数不超过 Qwen3-32B 模型总层数(适配 32B 模型,80 层为合理分配值);
  • --main-gpu 0:关键分层参数,指定 GPU0 作为主 GPU,llama.cpp 会优先将前 40 层模型加载到主 GPU(GPU0),剩余的 40 层会自动均匀分配到其余 GPU(GPU1-GPU7),完全匹配'前 40 层到 GPU0,后 40 层到 GPU1-7'的需求;

补充:llama.cpp 不支持 --cuda-devices 参数,无需手动指定 GPU 设备(0-7),通过 --main-gpu 0 即可实现分层分配,系统会自动识别剩余 GPU 并分配后续层数。

八、常见问题排查

  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

使用 llama-bench 正确的参数格式:

./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 张 5090 是否被识别
  2. 应输出 8 条 NVIDIA Corporation Device 2782 (rev a1)
  3. 1. 彻底卸载旧 NVIDIA 驱动
  4. 2. 禁用 Nouveau
  5. 3. 重启生效
  6. 安装 6.8+ HWE 内核
  7. 验证内核版本(必须≥6.8)
  8. 输出示例:6.8.0-45-generic
  9. 添加显卡驱动 PPA
  10. 安装 590-open 驱动(5090 推荐)
  11. 重启
  12. 验证驱动(8 卡均正常显示)
  13. 下载 CUDA 12.4 安装包
  14. 安装(仅安装 CUDA Toolkit,不装驱动)
  15. 配置环境变量
  16. 验证 CUDA
  17. 输出应显示 release 12.4
  18. 关键参数:
  19. LLAMA_CUDA=1:启用 CUDA
  20. LLAMACUDADMMV_X=32:提升多 GPU 显存效率
  21. LLAMACUDANGRAPHLAYERS=9999:全层 GPU 卸载
  22. LLAMACUDAARCHS=120:5090 专属算力(sm_120)
  23. 8 线程编译(匹配服务器 CPU 核心)
  24. 应输出:--cuda, --gpu-layers N 等 CUDA 参数
  25. 进入模型目录
  26. 下载 Qwen3 32B Q4KM 量化模型(4-bit,显存友好)
  27. 8 卡极致性能参数
  28. 示例:前 40 层到 GPU0,后 40 层到 GPU1-7
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 金仓 SQL 防火墙:原理、模式与性能实测
  • 用 Vibe Coding 实现 AI 全自动代码生成与交付
  • 网络安全转行指南:零基础学习路径与职业规划建议
  • 基于腾讯云 HAI 与 DeepSeek 快速搭建个人网页
  • Android TV 开发:实现 3D 仿 Gallery 效果
  • AR 健身应用开发:基于 Rokid CXR-M SDK 的实践落地
  • 从高原到云端:一名青海学子的 AI 农业创业实践
  • llama.cpp Docker 镜像国内加速下载地址
  • NewStar CTF Web 题目解析与解题思路
  • Web 创建与设计实战指南
  • Python 高性能编程:绕开 Threading 陷阱的 3 种并发方案
  • Ghostty + Yazi + Lazygit:构建现代化终端开发环境
  • AI 大模型基础:Embedding 与 LLM 核心对比解析
  • Python in Excel 功能特性与使用心得
  • So-VITS-SVC 语音合成与 Stable Diffusion 文生图模型搭建指南
  • AI 绘画为何普遍采用高斯分布作为流匹配源分布
  • 决策树优化:剪枝与随机森林
  • 鸿蒙 APP 开发:安全加固与组件化架构
  • JavaQuestPlayer 跨平台 QSP 游戏播放器与开发工具教程
  • PaperRed:AI 辅助论文写作与查重降重工具解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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