基于英特尔平台加速 AI 应用及 LLM 推理性能介绍|龙蜥大讲堂第115期

简介: 本文摘自龙蜥大讲堂英特尔 AI 软件工程师黄文欢的分享,主要包括以下三个方面的内容:1. 第五代英特尔至强处理器2. LLM 推理加速框架 xFast Transformer 及其优化策略3. 性能数据及 Demo 展示

基于英特尔平台加速 AI 应用及 LLM 推理性能介绍|龙蜥大讲堂第115期


内容介绍

1. 第五代英特尔至强处理器

2. LLM 推理加速框架 xFast Transformer 及其优化策略

3. 性能数据及 Demo 展示


image.png

 

01、第五代英特尔至强处理器

1.1 性能与特性提升

第五代英特尔至强处理器带来可靠性能和卓越效率,提升所有工作负载的性能和功耗比,为 AI、数据库、网络、存储和高性能计算提供出色性能。

image.png

相较于上一代处理器,两代之间功率相同,但第五代处理器计算能力更强,共享缓存更大,内存更快,且兼容上一代软件和平台,在为 AI 和其他工作负载部署新系统时,可最大限度地减少用户测试和验证工作量。

第五代英特尔至强处理器内置 AI加速器——高级矩阵扩展 Intel AMX,拥有更快的内存和更大的三级缓存,每个内核具备 AI加速功能,可随时处理 AI工作负载,提升深度学习推理和训练性能,在生成式 AI、推荐系统、自然语言处理、机器学习和图像分类等方向表现出色,其内存与IO

技术支持 DDR5、PCIE 5.0 和 CXL 等。

1.2 深度学习加速技术演进

image.png

自 Sky Lake 支持 AVX512 以来,深度学习训练和推理能力提升一倍;一年后,在 Cascade Lake 引入第一代深度学习加速技术 DL Boost VNNI,提升 INT8 吞吐量;在CooperLake 上,将 BFloat16 添加到 DL Boost 指令集,进一步提升深度学习训练和推理能力的性能。

硬件持续发展,第四代至强处理器推出了 AMX,提升从一维向量到二维矩阵的处理能力。

1.3 Intel AMX

image.png

Intel AMX 的全称是高级矩阵扩展,其目的是为了处理矩阵与加速 AI 相关的工作负载,它是第四代及第五代至强可扩展处理器内核,都有一个专用的硬件模块,有助于加速深度学习任务。

(1)架构图

image.png

AMX 是全新 x86 扩展,涉及复杂度高于其他深度学习加速技术扩展。它具有自己的存储和操作,引入新的二维寄存器 TILE。矩阵寄存器文件包括 8个 tile,分部命名为tmm0 - tmm7,每个 tile 最大 1KB,总大小 8KB。其乘法单元是矩阵乘法指令集 TMUL,可实现矩阵乘法运算,支持 INT8 和 BFloat16 数据类型。

(2)理论性能提升

image.png

理论上,AMX在 BF16 和 FP32 的对比中,单核单周期运算次数由 64 提升至 1024,达16倍在INT8 数据类型下,较上一代深度学习加速技术 VNNI性能提升 8 倍。换言之,无论是INT8或是 BF16,AMX 的处理性能都表现得更加出色。当然,在实际的工作负载中,其性能与矩阵的大小以及矩阵的占比都有关。

1.4 五代与四代性能对比

image.png

对于归一化的性能,以第四代至强可扩展处理器为基准线,第五代至强处理器在 AI 训练、AI 实时推理和 AI 批量处理方面性能均有可靠提升测试模型包括 BERT、DLRM、MaskRCNN、RNN-T、Resnext 等主流模型。

 

02、LLM 推理加速框架 xFast Transformer 及其优化策略

2.1 框架简介

image.png

xFast Transformer 是英特尔开源的推理框架,遵循 Apache 2.0 许可为大语言模型在英特尔平台上的推理加速提供深度优化解决方案。xFast Transformer 支持分布式推理的单机跨 Socket 和多机跨节点分布式部署,提供 C++ 和 Python 接口,涵盖了从上层到底层的接口调用,易于使用,可以使用户更加方便地将其集成到自有的框架业务中。它支持多种数据类型(如 BF16、FP16、INT8、INT4 等)和主流大语言模型(如 ChatGLM、LLAMA、Baichuan、千问、OPT 等)。

2.2 架构图

image.png

其架构上层提供 C++ 和 Python 接口,并支持主流大语言模型及优化算子(如 Attention、MLP、LayNorm 等)底层集成 oneDNN、oneCCL 等优化库。oneDNN 提供大量基础算子优化,如矩阵乘法 Softmax 和常用激活函数等,为大语言模型推理提供了基本的 Kernel支持,API对不同平台统一,底层可自动调度到当前平台最高指令集,将操作加速到更高的性能水准,从而提升整体的计算效率。如在支持高级矩阵扩展 AMX 加速基础的平台上采用集成了xFast Transformer会自动识别并使用 AMX 对矩阵运算进行加速,提升推理性能。

2.3 优化策略

xFast Transformer 的优化采用了自上而下的多种优化策略

(1)分布式推理优化

image.png

在分布式推理的过程中,通信延迟对分布式推理性能影响大,xFast Transformer 在高效通信库 oneCCL 基础上优化通信实现降低通信量。

例如,在每轮推理的初始阶段,推荐的实现方式是广播 TokenID,而非广播通过 TokenID 查到的 Embedding 值。在每轮推理结束时,直接对所有 Token 的 Logics 进行 Reduce 并非最佳选择。更有效的方法是让各个 Worker 计算出 Topk后再进行 Reduce 操作

image.png

此外,我们需要根据模型结构优化通信方式。如 GPT- J模型,其Attention 部分和 Feed Forward Network 并行,我们可以在每一个Decoder Layer 上只做一次通信。另外,计算与通信模块交互时采用激进方式实现零拷贝,即计算模块在做通信前的最后一次运算时,直接将结果写到通讯模块所在的位置。

关于分布式优化更详细的说明,可以参考发表在 ICLR 2024 Workshop 上的论文。

(2)Attention 优化

算子融合、最小化数据拷贝、重拍操作和内存重复利用等是常用优化手段,有效管理内存可减少占用、提高缓存命中率,提升整体性能。此外

还可减少大语言模型工作流程中的不必要计算开销,提升数据重用度和计算效率。以 Attention 为例。

image.png

Attention 是 xFast Transformer 模型关键热点之一,其资源消耗与序

列长度的平方成正比,长序列输入时优化尤为重要。我们提出了两种优化策略

①SlimAttention

如上图右侧所示,其本质是对 Query 和 Key 之间的 Score 做一维拆分先计算横向 Score、Softmax,再乘 Value 得到部分 Output,再使用同个 Score Buffer 计算下一个 Block。每个线程维护一个 Block 大小的Buffer,减少内存使用、提升计算效率。

②FlashAttention

如上图右侧所示,它是 GPU 率先使用的技术,本质是对 Score 做二维拆分,每个线程维护一个 Tile。但因 Tile 在 Softmax 方向数据不全,

计算过程需对结果反复校正。

对比两者策略,Slimattention 没有冗余计算,但是要更大的中间Buffer。

实验结果也表明,对于特别长的 Token,Flashattention 有较强优势;对于较短的 Token,Slimattention 是更好的选择。更多的技术细节可以参考开源的 xFast Transformer 项目。

(3)低精度量化和稀疏化

image.png

在大语言模型推理优化的过程中,量化是一种非常重要的方法。通过低精度数据类型或权重稀疏化降低内存带宽需求,在推理速度和准确度间取得平衡。xFast Transformer 支持多种数据类型实现模型推理和部署包括单精度和混合精度(首包和生成图层精度可任意组合),充分利用计算资源和带宽资源提升大语言模型的推理速度。将模型量化为INT8、INT4 的数据类型,可以显著提升模型的推理性能。同时,利用AWQ、GPTQ方式提升量化精度。

多种不同的数据类型的输入输出对底层算子库提出了多远的适配要求。xFast Transformer 框架中已实现对多种数据类型输入输出的适配,满足大语言模型对底层 Kernel 的需求。

 

03、性能数据及 Demo 展示

3.1 性能情况

(1)第四代至强平台

image.png

单颗至强 Max 处理器可同时部署四路大语言模型推理服务,同时满足首包和生成速度性能要求,每个模型只需 12个核和四分之一内存带宽。上图左侧是首包性能图,右侧是 Next Token 性能图。可以看到,两者的生成速度约在 90 - 100+ 的区间,远小于人类阅读速度

(2)分布式

image.png

上图展现了 xFast Transformer 分布式的性能效果。图中1个Node 指的是两个 Socket 的第五代至强可扩展处理器,每个 Socket 上有 52 个核。输入 Token1024,输出Token128时,4个Node 相比1个 Node 可实现近三倍的性能提升。

(3)Serving

image.png

上图展现了 xFast Transformer serving的能力。在两个 Socket 的第五代至强可扩展处理器 AMX 上,硬件配置是 48 核,每个 Socket 采用BF16 数据类型,使用 Qwen2-7B 模型统计 the script of benchmark throughput.py 脚本,其 Throughput 可达 3000+ tokens/s。

3.2 基于龙蜥操作系统的 Demo 演示 1

(1)购买实例

提前在阿里云购买一台实例输入 cat /etc/os-release 查询实例信息。

image.png

可以看到,使用的是龙蜥操作系统 Anolis OS 8.8 版本。

输入 lscpu 查看 CPU 信息:

image.png

可知,购买的是 32 个 VCPU 的实例,硬件平台是英特尔第五代至强平台,支持 amx_bf16、amx_int8 等;

(2)安装 xFast Transformer

输入 pip3 install xfasttransformer,完成 xFast Transformer的安装。

(3)xFast Transformer 配置

输入 git clone https://github.com/intel/xFastTransformer^C ,从GitHub 拉取源码。输入cd xFastTransformer/,进入其目录。

运行xFast Transformer推理优化引擎,还需安装依赖包。输入 pip3 install -r requirements.txt 在 requirements 文件中安装依赖包。

(4)运行 xFast Transformer 引擎

①模型转换

以 Qwen2-7B 模型为例,将下载的模型放入该目录下,使用 Qwen2 的脚本,输入 python -c‘import xfasttransformer as xft

xft.Qwen2Convert().convert(“/data/Qwen2-7B-Instruct/”)’进行模型转化。转换命令根据模型和需求(如 Llama、OPT 等)设置,其他模型也有相应转换操作,可从 GitHub 的 README 获取信息。

另外,在云环境上转换模型时,物理核通过超线程的方式扩展成两个逻辑核。在大语言模型场景下,超线程带来的收益欠佳,还会引发调度等方面的额外开销。因此,我们建议在运行大语言模型中,避免使用超线程产生的逻辑核。如上述案例中的 32VCPU实例,其对应 16 个物理核,可以通过相应的命令获得相应的物理核,并通过 Numactl 工具将需要运行的应用绑定在对应的物理核上。

image.png

上图即可说明该模型转换成功,也可将 data/Qwen2-7B-Instruct-xft更换为自定义路径。

②设置环境变量

模型转换成功后,输入 cd examples/pytorch 进入 demo 目录,

通过 export $(python -c‘import xfasttransformer as xft ; print(xft.get env()))设置环境变量,以获取更优性能。

③运行 Demo

输入 ll 进入 Demo 目录,查看该 Demo 下提供的脚本。

image.png

输入命令 OMP_NUM_THREADS = 16 numactl -c $(seq -s,0 2 30)python demo.py d int8--chat true --output len 128 -t /data/Qwen2-7B-Instruct -m /data/Qwen2-7B-Instruct-xft/(由于使用的是 32 vCPU实例,故 OMP 线程使用 16 个物理核;使用 numactl -C工具将应用绑定到对应的物理核上;-d 是指数据类型可以指定为int8、bf16等;该聊天机器人中提供 Chat 功能,设置为 true;output len可设置为目标值;-t 后是对应的 Token 的路径;-m 是转换所需的模型文件)。

此时,即可实现 Chat 功能。如输入“你好,介绍一下自己”或输入“你知道龙蜥大讲堂吗”,就会返回相应的内容,文本产生的速度较快。

image.png

3.3 基于 Gradient 的 Web Demo 演示 2

输入 cd ../web_demo/进入该演示。

输入 pip3 install -r examples/web_demo/requirements.txt安装相应的依赖。输入命令 OMP_NUM_THREADS=16 numactl -C $(seg -s,0 2 30)python demo.py -d int8 -t /data/Qwen2-7B-Instruct -m /data/Qwen2-7B-Instruct -xft/(OMP 线程使用16 个物理核;使用 numactl -C 工具将应用绑定到对应的物理核上;运行 Qwen2 的脚本)。

输入ls 查询该 web demo 下提供的脚本。

image.png

可以看到它提供了 Baichuan、ChatGLM、Llama、Qwen 等脚本。

输入OMP_NUM_THREADS=16 numactl -c $(seq-s,0 2 30)python demo.py -d int8 -t /data/Qwen2-7B-Instruct -m /data/Qwen2-7B-Instruct -xft/,运行 Qwen2 查看 demo 的运行效果。待页面提示“Running on local URL:……”后说明该 Demo 已启用。

进入 Web Demo 界面:

image.png

案例中是通义千问2的模型,基于xFastTransformer 优化推理引擎端口是 7860,在阿里云上需要暴露相关的端口。可以通过本级地址访问,也可以通过 Gradient 的相关设置进行公网 IP 的访问。

可以输入“龙蜥(OpenAnolis)是一个什么样的平台?”进行询问,结果返回如下,速度也非常快。

image.png

再如输入“介绍一下英特尔至强处理器”,也可以返回相应的内容。

image.png

以上就是本次分享的全部内容。

相关文章
|
25天前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
352 29
|
27天前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
275 1
|
25天前
|
人工智能 缓存 运维
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
本文介绍联调造数场景下的AI应用演进:从单Agent模式到多Agent协同的架构升级。针对复杂指令执行不准、响应慢等问题,通过意图识别、工具引擎、推理执行等多Agent分工协作,结合工程化手段提升准确性与效率,并分享了关键设计思路与实践心得。
333 20
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
|
1月前
|
人工智能 安全 数据可视化
Dify让你拖拽式搭建企业级AI应用
Dify是开源大模型应用开发平台,融合BaaS与LLMOps理念,通过可视化工作流、低代码编排和企业级监控,支持多模型接入与RAG知识库,助力企业快速构建安全可控的AI应用,实现从原型到生产的高效落地。
Dify让你拖拽式搭建企业级AI应用
|
1月前
|
自然语言处理 数据挖掘 关系型数据库
ADB AI指标分析在广告营销场景的方案及应用
ADB Analytic Agent助力广告营销智能化,融合异动与归因分析,支持自然语言输入、多源数据对接及场景模板化,实现从数据获取到洞察报告的自动化生成,提升分析效率与精度,推动数据驱动决策。
|
7月前
|
机器学习/深度学习 存储 缓存
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
大型语言模型(LLM)的推理效率是AI领域的重要挑战。本文聚焦KV缓存技术,通过存储复用注意力机制中的Key和Value张量,减少冗余计算,显著提升推理效率。文章从理论到实践,详细解析KV缓存原理、实现与性能优势,并提供PyTorch代码示例。实验表明,该技术在长序列生成中可将推理时间降低近60%,为大模型优化提供了有效方案。
1316 15
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
|
4月前
|
弹性计算 关系型数据库 API
自建Dify平台与PAI EAS LLM大模型
本文介绍了如何使用阿里云计算巢(ECS)一键部署Dify,并在PAI EAS上搭建LLM、Embedding及重排序模型,实现知识库支持的RAG应用。内容涵盖Dify初始化、PAI模型部署、API配置及RAG知识检索设置。
自建Dify平台与PAI EAS LLM大模型
|
1月前
|
监控 安全 Docker
10_大模型开发环境:从零搭建你的LLM应用平台
在2025年,大语言模型(LLM)已经成为AI应用开发的核心基础设施。无论是企业级应用、科研项目还是个人创新,拥有一个高效、稳定、可扩展的LLM开发环境都至关重要。
|
1月前
|
人工智能 监控 安全
06_LLM安全与伦理:部署大模型的防护指南
随着大型语言模型(LLM)在各行业的广泛应用,其安全风险和伦理问题日益凸显。2025年,全球LLM市场规模已超过6400亿美元,年复合增长率达30.4%,但与之相伴的是安全威胁的复杂化和伦理挑战的多元化