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

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

目录
打赏
0
3
3
0
1041
分享
相关文章
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
大型语言模型(LLM)的推理效率是AI领域的重要挑战。本文聚焦KV缓存技术,通过存储复用注意力机制中的Key和Value张量,减少冗余计算,显著提升推理效率。文章从理论到实践,详细解析KV缓存原理、实现与性能优势,并提供PyTorch代码示例。实验表明,该技术在长序列生成中可将推理时间降低近60%,为大模型优化提供了有效方案。
293 15
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息
Dream-7B是由香港大学与华为诺亚方舟实验室联合研发的开源扩散大语言模型,采用独特的掩码扩散范式,在文本生成、数学推理和代码编写等任务中展现出卓越性能。
164 3
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
英伟达提出的CLIMB框架,是一种自动化优化大型语言模型(LLM)预训练数据混合的创新方法。通过语义嵌入与聚类技术,CLIMB能系统地发现、评估并优化数据混合策略,无需人工干预。该框架包含数据预处理、迭代自举及最优权重确定三大阶段,结合小型代理模型与性能预测器,高效搜索最佳数据比例。实验表明,基于CLIMB优化的数据混合训练的模型,在多项推理任务中显著超越现有方法,展现出卓越性能。此外,研究还构建了高质量的ClimbMix数据集,进一步验证了框架的有效性。
124 0
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
阿里云 Serverless 助力海牙湾构建弹性、高效、智能的 AI 数字化平台
海牙湾(G-Town)是一家以“供应链+场景+技术+AI”为核心驱动力的科技公司,致力于为各行业提供数字化转型解决方案。通过采用阿里云Serverless架构,解决了弹性能力不足、资源浪费与运维低效的问题。SAE全托管特性降低了技术复杂度,并计划进一步探索Serverless与AI结合,推动智能数字化发展。海牙湾业务覆盖金融、美妆、能源等领域,与多家知名企业建立战略合作,持续优化用户体验和供应链决策能力,保障信息安全并创造可量化的商业价值。未来,公司将深化云原生技术应用,助力更多行业实现高效数字化转型。
226 19
RAGEN:RL训练LLM推理新范式!开源强化学习框架让Agent学会多轮决策
RAGEN是一个基于StarPO框架的开源强化学习系统,通过马尔可夫决策过程形式化Agent与环境的交互,支持PPO、GRPO等多种优化算法,显著提升多轮推理训练的稳定性。
287 5
RAGEN:RL训练LLM推理新范式!开源强化学习框架让Agent学会多轮决策
炎鹊 • AI+行业工具创建平台
炎鹊是AI+行业应用工具创建平台,聚焦各行业深度业务场景需求。通过“行业知识注入+场景化微调”技术,基于垂直AI大模型与多模态推理能力,实现零代码创建定制化“智员体”(AI专业应用工具)。平台支持低代码开发、多模态输入输出、动态更新知识图谱及跨平台协作,具备持续学习进化机制。炎鹊推出的“智员体”数字员工可模拟人类思维逻辑,完成复杂任务,推动AI从辅助工具向协作主体演进,已在快消、教育、医疗等20+领域落地,助力企业构建智能组织形态。
123 11
DMS+X:GenAI 时代的一站式 Data+AI 平台
在AI技术快速发展的背景下,阿里云DMS + X平台应运而生,通过OneMeta和OneOps两大创新,提供统一元数据服务及一体化Data + AI开发环境。文章详细介绍了DMS + X在数据治理、开发提效及实际案例中的应用,助力企业在GenAI时代实现数字化转型。
用 AI 搭建秒杀平台后端,一周搞定所有功能(附超详细踩坑记录)
本文分享如何借助AI技术快速搭建电商秒杀平台后端。通过飞算JavaAI,从需求分析到代码生成全流程智能化,大幅提高开发效率。文章详细记录了技术栈选择(Java、Spring Boot、MySQL、Redis)、系统架构设计、缓存机制优化、数据一致性保障及测试调优等环节,解决高并发难题,助开发者高效完成秒杀平台构建并规避常见坑点。
27.4K Star!这个LLM应用宝库让你秒变AI全栈高手,RAG和AI Agent一网打尽!
想要快速入门LLM应用开发?想要了解最新的RAG和AI Agent技术?这个收获27.4K Star的开源项目集合了当下最热门的LLM应用案例,从简单的PDF对话到复杂的多智能体系统应该有尽有。无论你是AI开发新手还是经验丰富的工程师,这里都能找到适合你的项目!
109 0
当无人机遇上Agentic AI:新的应用场景及挑战
本文简介了Agentic AI与AI Agents的不同、Agentic无人机的概念、应用场景、以及所面临的挑战
105 5
当无人机遇上Agentic AI:新的应用场景及挑战
AI助理

你好,我是AI助理

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

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问