首页
/ BigDL项目下Intel Arc A770双卡vLLM推理性能优化实践

BigDL项目下Intel Arc A770双卡vLLM推理性能优化实践

2025-05-29 17:10:12作者:鲍丁臣Ursa

背景概述

在Intel BigDL项目中,使用vLLM推理框架搭配Intel Arc A770显卡进行大模型部署时,用户报告了一个典型的多卡性能问题。当使用双Arc A770显卡时,虽然推理速度有所提升,但文本生成速度却出现了明显下降,从单卡时的8-9 token/s降至3-4 token/s。这一现象引起了技术团队的关注,并展开了一系列性能分析和优化工作。

问题现象分析

通过详细的测试和用户反馈,我们观察到以下关键现象:

  1. 单卡性能表现:使用单张Arc A770时,Llama-3.1-8B模型的推理速度约为14-15 token/s,文本生成速度稳定在8-9 token/s。

  2. 双卡性能异常:启用双卡并行(tensor_parallel_size=2)后,虽然推理速度提升至30-50 token/s,但文本生成速度反而降至3-4 token/s,出现了明显的性能下降。

  3. 环境差异影响:在不同硬件配置上测试发现,性能表现存在显著差异,说明系统环境和硬件配置对最终性能有重要影响。

根本原因探究

经过深入分析,我们确定了导致这一问题的几个关键因素:

  1. 计算与通信开销平衡:对于7B-9B规模的模型,双卡并行带来的计算加速不足以抵消增加的通信开销,特别是在短文本生成场景下。

  2. 系统配置影响

    • 未使用推荐的Ubuntu 22.04 + Kernel 6.5组合
    • 缺少Intel i915-dkms驱动
    • CPU/GPU频率未优化
    • 未正确启用ReBAR和Above 4G MMIO功能
  3. 模型规模适配:对于8B规模的模型,单卡已经能够较好地处理计算负载,双卡并行带来的收益有限。

优化方案与实践

基于上述分析,我们提出以下优化建议:

1. 系统环境配置

操作系统与内核: 推荐使用Ubuntu 22.04操作系统,并升级至6.5版本内核。可通过以下命令安装和配置:

export VERSION="6.5.0-35"
sudo apt-get install -y linux-headers-$VERSION-generic linux-image-$VERSION-generic

GPU驱动安装: 必须安装Intel i915-dkms驱动,确保GPU能够充分发挥性能。

2. BIOS设置

确保在BIOS中启用以下关键设置:

  • Re-sizeable BAR支持
  • Above 4G MMIO功能

3. 硬件频率优化

CPU频率调整: 使用cpupower工具将CPU频率锁定在较高水平:

sudo cpupower frequency-set -d 3.8GHz

GPU频率设置: 通过xpu-smi工具固定GPU频率:

sudo xpu-smi config -d 0 -t 0 --frequencyrange 2400,2400

4. vLLM服务配置优化

推荐的服务启动参数如下:

python -m ipex_llm.vllm.xpu.entrypoints.openai.api_server \
  --served-model-name $served_model_name \
  --port 8000 \
  --model $model \
  --trust-remote-code \
  --gpu-memory-utilization 0.9 \
  --device xpu \
  --dtype float16 \
  --enforce-eager \
  --load-in-low-bit fp8 \
  --max-model-len 2048 \
  --max-num-batched-tokens 4000 \
  --max-num-seqs 12 \
  --tensor-parallel-size 2

5. 模型规模与硬件匹配策略

根据模型规模选择合适的硬件配置:

  • 7B-9B模型:建议单卡部署,可通过多实例提高吞吐
  • ~14B模型:推荐使用双Arc A770
  • ~33B模型:建议使用四Arc A770

性能对比与验证

经过上述优化后,我们获得了以下性能数据:

配置 首token延迟(ms) 后续token速度(token/s)
单卡 100.48 15.19
双卡 69.22 21.78

在OpenWebUI实际应用中,优化后的双卡配置可实现45+ token/s的文本生成速度,显著优于优化前的性能表现。

经验总结

  1. 环境配置是关键:操作系统版本、内核版本、驱动版本等基础环境对性能影响巨大,必须严格按照推荐配置。

  2. 模型规模适配:不是所有模型都适合多卡并行,需要根据模型规模选择合适的硬件配置。

  3. 全面性能调优:从BIOS设置到系统参数,再到服务配置,需要进行全方位的优化才能获得最佳性能。

  4. 监控与验证:建议使用标准化的性能测试工具(如vllm_online_benchmark.py)进行性能验证,确保结果的可比性。

通过本次优化实践,我们不仅解决了用户报告的具体问题,还总结出了一套适用于Intel Arc显卡+vLLM框架的性能优化方法论,为后续类似场景的部署提供了宝贵参考。

登录后查看全文
热门项目推荐