基于英特尔平台加速 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

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

相关文章
|
4天前
|
数据采集 人工智能 大数据
演讲实录:中小企业如何快速构建AI应用?
AI时代飞速发展,大模型和AI的应用创新不断涌现,面对百花齐放的AI模型,阿里云计算平台大数据AI解决方案总监魏博文分享如何通过阿里云提供的大数据AI一体化平台,解决企业开发难、部署繁、成本高等一系列问题,让中小企业快速搭建AI应用。
|
5天前
|
人工智能 搜索推荐 API
AI赋能大学计划·大模型技术与应用实战学生训练营——华东师范大学站圆满结营
4月24日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行大模型应用实战学生训练营——华东师范大学站圆满结营。
35 2
|
2天前
|
机器学习/深度学习 存储 缓存
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
大型语言模型(LLM)的推理效率是AI领域的重要挑战。本文聚焦KV缓存技术,通过存储复用注意力机制中的Key和Value张量,减少冗余计算,显著提升推理效率。文章从理论到实践,详细解析KV缓存原理、实现与性能优势,并提供PyTorch代码示例。实验表明,该技术在长序列生成中可将推理时间降低近60%,为大模型优化提供了有效方案。
51 15
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
|
4天前
|
开发框架 人工智能 Cloud Native
破茧成蝶:阿里云应用服务器让传统J2EE应用无缝升级AI原生时代
一场跨越20年的技术对话:在杭州某科技园的会议室里,一场特殊的代码评审正在进行。屏幕上同时展示着2005年基于WebLogic开发的供应链系统和2025年接入DeepSeek大模型的智能调度方案——令人惊叹的是,二者的核心业务代码竟保持着惊人的一致性。"我们保住了20年积累的238个核心业务对象,就像修复传世名画时保留了每一笔历史痕迹。"企业CTO的感慨,揭开了阿里云应用服务器助力传统系统智能化转型的奥秘。
38 13
|
4天前
|
人工智能 分布式计算 数据管理
DMS+X:GenAI 时代的一站式 Data+AI 平台
在AI技术快速发展的背景下,阿里云DMS + X平台应运而生,通过OneMeta和OneOps两大创新,提供统一元数据服务及一体化Data + AI开发环境。文章详细介绍了DMS + X在数据治理、开发提效及实际案例中的应用,助力企业在GenAI时代实现数字化转型。
|
3天前
|
人工智能 算法
中国AI应用排行榜3月榜单发布,「AI四大天王」格局正式形成
2025年3月,中国AI应用排行榜发布!由AIGCRank制作,基于国内主流App市场及算法备案数据筛选200+款代表性AI应用排名。榜单显示夸克、DeepSeek、豆包、腾讯元宝形成“AI四大天王”格局,头部生态壁垒加深。通用助手主导市场,垂类赛道如教育、生成工具等多点开花。报告揭示中国AI市场进入“头部固化+垂类爆发”阶段,未来商业化路径将成为垂类应用突破关键。
41 0
苹果A13芯片细节曝光,大幅提升AI性能
苹果A13芯片使用了台积电7nm极紫外光刻(EUV)工艺,有三个性能核心+四个能效核心。
837 0
|
16天前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
173 29
|
8天前
|
开发框架 人工智能 Java
破茧成蝶:传统J2EE应用无缝升级AI原生
本文探讨了技术挑战和解决方案,还提供了具体的实施步骤,旨在帮助企业顺利实现从传统应用到智能应用的过渡。
破茧成蝶:传统J2EE应用无缝升级AI原生
|
23天前
|
存储 人工智能 监控
一键部署 Dify + MCP Server,高效开发 AI 智能体应用
本文将着重介绍如何通过 SAE 快速搭建 Dify AI 研发平台,依托 Serverless 架构提供全托管、免运维的解决方案,高效开发 AI 智能体应用。
2538 64

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等