基于英特尔平台加速 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天前
|
人工智能 算法 前端开发
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
OmAgent 是 Om AI 与浙江大学联合开源的多模态语言代理框架,支持多设备连接、高效模型集成,助力开发者快速构建复杂的多模态代理应用。
124 72
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
|
1天前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
|
2天前
|
机器学习/深度学习 存储 人工智能
AI实践:智能工单系统的技术逻辑与应用
智能工单系统是企业服务管理的核心工具,通过多渠道接入、自然语言处理等技术,实现工单自动生成、分类和分配。它优化了客户服务流程,提高了效率与透明度,减少了运营成本,提升了客户满意度。系统还依托知识库和机器学习,持续改进处理策略,助力企业在竞争中脱颖而出。
17 5
|
7天前
|
人工智能 缓存 安全
每一个大模型应用都需要一个 AI 网关|场景和能力
本次分享的主题是每一个大模型应用都需要一个 AI 网关|场景和能力。由 API 网关产品经理张裕(子丑)进行分享。主要分为三个部分: 1. 企业应用 AI 场景面临的挑战 2. AI 网关的产品方案 3. AI 网关的场景演示
|
8天前
|
人工智能 数据安全/隐私保护 图形学
关于AI绘画优雅草央千澈整理的一份咒语(与AI对话提示词-应用于AI绘图和AI生成视频)-本文长期更新-本次更新2025年1月15日更新-长期更新建议点赞收藏
关于AI绘画优雅草央千澈整理的一份咒语(与AI对话提示词-应用于AI绘图和AI生成视频)-本文长期更新-本次更新2025年1月15日更新-长期更新建议点赞收藏
|
6天前
|
SQL 人工智能 数据管理
跨云数据管理平台DMS:构建Data+AI的企业智能Data Mesh
跨云数据管理平台DMS助力企业构建智能Data Mesh,实现Data+AI的统一管理。DMS提供开放式元数据服务OneMeta、一站式智能开发平台和云原生AI数据平台,支持多模数据管理和高效的数据处理。结合PolarDB、AnalyticDB等核心引擎,DMS在多个垂直场景中展现出显著优势,如智能营销和向量搜索,提升业务效率和准确性。通过DataOps和MLOps的融合,DMS为企业提供了从数据到AI模型的全生命周期管理,推动数据驱动的业务创新。
|
8天前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
16天前
|
机器学习/深度学习 人工智能 算法
AI在体育分析与预测中的深度应用:变革体育界的智能力量
AI在体育分析与预测中的深度应用:变革体育界的智能力量
93 31
|
12天前
|
人工智能 运维 负载均衡
智能运维新时代:AI在云资源管理中的应用与实践
智能运维新时代:AI在云资源管理中的应用与实践
102 23
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
94 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务

热门文章

最新文章

AI助理

你好,我是AI助理

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