4 卡 Intel B60(48G) 服务器

llama.cpp完整安装及性能调优指南

一、系统与硬件准备(必做)

1.1 系统要求

  • 推荐:Ubuntu 25.04 LTS(64位)
  • 内核:6.14.0-1011-intel

1.2 硬件检查

Bash
# 查看4张Intel B60是否被识别
lspci | grep -i VGA

实际识别为8张显卡

二、安装Intel oneAPI工具包

2.1 下载并安装Base Toolkit 

# 下载最新版oneAPI Base Toolkit(约3GB)

cd /tmp

wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6caa93ca-e10a-4cc5-b210-68f385feea9e/intel-oneapi-base-toolkit-2025.3.1.36_offline.sh

# 静默安装(接受EULA)

sudo sh ./intel-oneapi-base-toolkit-2025.3.1.36_offline.sh -a --silent --cli --eula accept

# 默认安装路径:/opt/intel/oneapi

2.2 配置环境变量

# 临时加载(当前终端)

source /opt/intel/oneapi/setvars.sh

# 永久添加到bashrc

echo 'source /opt/intel/oneapi/setvars.sh' >> ~/.bashrc

source ~/.bashrc

# 验证安装

which icx icpx

icx --version

2.3 验证SYCL设备识别 

# 查看SYCL能识别到的所有设备

sycl-ls

# 正常输出应该显示4张B60 GPU,类似:

# [level_zero:gpu:0] Intel(R) Data Center GPU B60 ...

# [level_zero:gpu:1] Intel(R) Data Center GPU B60 ...

# [level_zero:gpu:2] Intel(R) Data Center GPU B60 ...

# [level_zero:gpu:3] Intel(R) Data Center GPU B60 ...

三、安装Intel多卡驱动(llama.cpp依赖)

3.1 专门的Intel多卡驱动来解决SYCL无法识别GPU的问题

# 1. 下载Intel多卡离线驱动(专门针对8卡B60配置)

cd /tmp

wget "https://cdrdv2.intel.com/v1/dl/getContent/873591/873592?filename=multi-arc-bmg-offline-installer-26.5.6.1.tar.xz" -O multi-arc-bmg-offline-installer-26.5.6.1.tar.xz

# 2. 解压

tar -xvf multi-arc-bmg-offline-installer-26.5.6.1.tar.xz

cd multi-arc-bmg-offline-installer-26.5.6.1

# 3. 安装驱动(会自动安装兼容内核6.14.0-1011-intel)

sudo ./installer.sh

# 4. 重启系统

sudo reboot

# 检查新内核

uname -r

# 应显示:6.14.0-1011-intel

# 固定内核版本(防止自动更新破坏驱动)

sudo apt-mark hold linux-image-generic linux-headers-generic

# 禁用自动更新

sudo vim /etc/apt/apt.conf.d/10periodic

# 将APT::Periodic::Update-Package-Lists从"1"改为"0"

# 添加用户权限

sudo gpasswd -a ${USER} render

sudo gpasswd -a ${USER} video

newgrp render

newgrp video

# 验证GPU状态

xpu-smi discovery

# 加载oneAPI环境并测试

source /opt/intel/oneapi/setvars.sh

sycl-ls

实际4卡48G被识别成为8卡

3.2 安装基础编译工具(llama.cpp多GPU核心依赖)

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

四、安装llama.cpp编译依赖

Bash
# 基础编译工具
sudo apt update
sudo apt install git build-essential cmake pkg-config libopenblas-dev -y

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

五、编译llama.cpp

5.1 克隆源码

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

5.2 编译(开启oneAPI + 多GPU )

# 1. 创建项目目录

mkdir -p ~/llama-projects && cd ~/llama-projects

# 2. 克隆源码(如果之前没做过)

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

cd llama.cpp

git submodule update --init --recursive

# 3. 确保oneAPI环境已加载

source /opt/intel/oneapi/setvars.sh --force

# 4. 清理并创建构建目录

rm -rf build && mkdir build

# 5. 配置CMake(针对8卡B60优化)

cmake -B build \

  -DGGML_SYCL=ON \

  -DCMAKE_C_COMPILER=icx \

  -DCMAKE_CXX_COMPILER=icpx \

  -DGGML_SYCL_F16=ON \

  -DCMAKE_BUILD_TYPE=Release \

  -DLLAMA_SYCL_TARGET_INTEL_GPU=ON \

  -DGGML_SYCL_MMQ=ON

# 6. 并行编译(使用所有CPU核心)

cmake --build build --config Release -j $(nproc)

5.3 验证编译

# 1. 验证可执行文件

ls -lh build/bin/ | grep -E "llama-cli|llama-server|llama-bench"

# 2. 查看SYCL设备(专用工具)

./build/bin/llama-ls-sycl-device

六、准备GGUF模型(测试用)

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

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

# 下载Qwen3 32B Q4_K_M量化模型(4-bit,显存友好)
wget -c https://hf-mirror.com/bartowski/Qwen_Qwen3-32B-GGUF/resolve/main/Qwen_Qwen3-32B-Q4_K_M.gguf



cd ..

七、4卡Intel B60  llama.cpp测试(核心步骤)

7.1 单卡基础测试(验证CUDA)

Bash
cd .. 

./build/bin/llama-cli \

-m models/Qwen_Qwen3-32B-Q4_K_M.gguf \

--gpu-layers 99 \

-t 64 \

-c 4096 \

-p "你好"

[ Prompt: 1.9 t/s | Generation: 6.8 t/s ]

7.2 8卡并行测试(多GPU自动负载均衡)

llama.cpp 自动识别所有NVIDIA GPU,无需手动指定卡ID。

Bash
./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: 6.6 t/s | Generation: 8.2 t/s ]

7.3 4卡显存与负载验证

新开终端,实时监控:

Bash
watch -n 1 nvidia-smi

八、性能调优

8.1 关键参数优化

Bash
# 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之间的内存访问效率,避免资源瓶颈

[ Prompt: 6.5 t/s | Generation: 8.3 t/s ]

九、最终验证

执行以下命令,确认 4B60 (48G)全量工作

Bash
./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: 5.4 t/s | Generation: 8.2 t/s ]

十、输出测试效果:

# 使用 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

|                         model               |        size   |  params | backend | ngl | threads | fa | test  |       t/s |

| --------------------               | ------ | ----- : | ------ | --| ---   : | -| -------: | ------------|

| qwen3 32B Q4_K - Medium | 18.40 GiB| 32.76 B | SYCL | 99 | 64 |  1  | pp512 | 462.15 ± 10.46 |

| qwen3 32B Q4_K - Medium | 18.40 GiB| 32.76 B | SYCL | 99 | 64 |  1 | pp2048 | 432.08 ± 0.44 |

| qwen3 32B Q4_K - Medium | 18.40 GiB | 32.76 B | SYCL| 99 | 64 |  1 | pp8192 | 277.95 ± 0.08 |

| qwen3 32B Q4_K - Medium | 18.40 GiB | 32.76 B | SYCL| 99 | 64 |  1 |  tg128 |     8.50 ± 0.01 |

| qwen3 32B Q4_K - Medium | 18.40 GiB | 32.76 B | SYCL| 99 | 64 |  1 |  tg512 |     8.45 ± 0.00 |

| qwen3 32B Q4_K - Medium| 18.40 GiB | 32.76 B | SYCL| 99 |  64 |  1 | tg2048 |   8.37 ± 0.00 |

build: 08f21453a (8589)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐