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

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

2025-05-29 11:11:52作者:鲍丁臣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框架的性能优化方法论,为后续类似场景的部署提供了宝贵参考。

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

最新内容推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
132
1.89 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
193
273
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
70
63
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
379
389
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.24 K
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
915
548
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
144
189
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15