0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Meta开发AITemplate,大幅简化多GPU后端部署

3D视觉工坊 来源:机器之心 作者:机器之心 2022-11-04 17:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

众所周知,GPU 在各种视觉、自然语言和多模态模型推理任务中都占据重要位置。然而,对于高性能 GPU 推理引擎,AI 从业者几乎没有选择权,必须使用一些平台专有的黑盒系统。这意味着如果要切换 GPU 供应商,就必须重新实现一遍部署系统。在生产环境中当涉及复杂的依赖状况时,这种灵活性的缺失使维护迭代成本变得更加高昂。

在 AI 产品落地过程中,经常需要模型快速迭代。尽管一些闭源系统(如 TensorRT)提供了一些定制化功能,但这些定制化功能完全不能满足需求。更进一步来说,这些闭源专有的解决方案,会使 debug 更加困难,对开发敏捷性造成影响。

针对这些业界难题,Meta AI 开发了拥有 NVIDIA GPU 和 AMD GPU 后端的统一推理引擎——AITemplate。

AITemplate 在 CNN、Transformer 和 Diffusion 模型上都能提供接近硬件上限的 TensorCore (NVIDIA GPU) 和 MatrixCore (AMD GPU) 性能。使用 AITemplate 后,在 NVIDIA GPU 上对比 PyTorch Eager 的提速最高能达到 12 倍,在 AMD GPU 上对比 PyTorch Eager 的提速达到 4 倍。

这意味着,当应用于超大规模集群时,AITemplate 能够节约的成本数额将是惊人的。

具体而言,AITemplate 是一个能把 AI 模型转换成高性能 C++ GPU 模板代码的 Python 框架。该框架在设计上专注于性能和简化系统。AITemplate 系统一共分为两层:前段部分进行图优化,后端部分针对目标 GPU 生成 C++ 模板代码。AITemplate 不依赖任何额外的库或 Runtime,如 cuBLAS、cudnn、rocBLAS、MIOpen、TensorRT、MIGraphX 等。任何 AITemplate 编译的模型都是自洽的。

AITemplate 中提供了大量性能提升创新,包括更先进的 GPU Kernel fusion,和一些专门针对 Transformer 的先进优化。这些优化极大提升了 NVIDIA TensorCore 和 AMD MatrixCore 的利用率。

目前,AITemplate 支持 NVIDIA A100 和 MI-200 系列 GPU,两种 GPU 都被广泛应用在科技公司、研究实验室和云计算提供商的数据中心

团队对 AITemplate 进行了一系列测试。下图的测试展示了 AITemplate 和 PyTorch Eager 在 NVIDIA A100 上的主流模型中的加速比。

92189092-4576-11ed-96c9-dac502259ad0.png

在带有 Cuda 11.6 的 Nvidia A100 上运行 BERT 和 ResNet-50,AITemplate 在 ResNet-50 中提供了 3 到 12 倍的加速,在 BERT 上提供了 2 到 5 倍的加速。

经测试,AITemplate 在 AMD MI250 GPU 上较 PyTorch Eager 也有较大的加速比。

922eea18-4576-11ed-96c9-dac502259ad0.png

使用 ROCm 5.2 和 MI250 加速器,ResNet-50 和 BERT 的加速在 1.5-2 倍范围内。

AITemplate 的统一 GPU 后端支持,让深度学习开发者在最小开销的情况下,拥有了更多的硬件提供商选择。下图直观展示了 AITemplate 在 NVIDIA A100 GPU 和 AMD MI250 GPU 上的加速对比:

924a6572-4576-11ed-96c9-dac502259ad0.png

此外,AITemaplte 的部署较其他方案也更为简洁。由于 AI 模型被编译成了自洽的二进制文件并且不存在任何第三方库的依赖,任何被编译的二进制文件都能在相同硬件、CUDA 11/ ROCm 5 或者更新的软件环境中运行,也不用担心任何后向兼容问题。AITemplate 提供了开箱即用的模型样例,如 Vision Transformer、BERT、Stable Diffusion、ResNet 和 MaskRCNN,使得部署 PyTorch 模型更加简单。

AITemplate 的优化

AITemplate 提供了目前最先进的 GPU Kernel 融合技术:支持纵向、水平和内存融合为一体的多维融合技术。纵向融合将同一条链上的操作进行融合;水平融合将并行无依赖的操作进行融合;内存融合把所有内存移动操作和计算密集算子进行融合。

9265ec70-4576-11ed-96c9-dac502259ad0.png

在水平融合中,AITemplate 目前可以把不同输入形状的矩阵乘法 (GEMM)、矩阵乘法和激活函数,以及 LayerNorm、LayerNorm 和激活函数进行融合。

在纵向融合中,AITemplate 支持超过传统标准的 Elementwise 融合,包括:

通过 CUTLASS 和 Composable Kernel 支持了矩阵和 Elementwise 算子融合;

为 Transformer 的 Multi-head Attention 提供了矩阵乘法和内存布局转置融合;

通过张量访问器对内存操作,如 split、slice、concatenate 等进行融合来消除内存搬运。

在标准的 Transformer Multi head attention 模块,目前 AITemplate 在 CUDA 平台使用了 Flash Attention,在 AMD 平台上使用了 Composable Kernel 提供的通用背靠背矩阵乘法融合。两种解决方案都能大幅减小内存带宽需求,在长序列问题中,提升更为明显。如下图所示:

928121ca-4576-11ed-96c9-dac502259ad0.png

AITemplate 与 Composable Kernel 的广义背靠背融合显着提高了长序列 Transformer 的推理效率。在 batch size 为 1 时,使用 AITemplate 的两张 GPU 均比原生框架加速了 80%。

开发 AITemplate

AITemplate 有两层模版系统:第一层在 Python 中使用 Jinja2 模板,第二层在 GPU TensorCore/MatrixCore 中使用 C++ 模板(NVIDIA GPU 上使用 CUTLASS,AMD GPU 上使用 Composable Kernel)。AITemplate 在 Python 中找到性能最优的 GPU 模板参数,再通过 Jinja2 渲染出最终的 C++ 代码。

在代码生成后,就能使用 GPU C++ 编译器(NVIDIA 平台上的 NVCC 和 AMD 平台上的 HIPCC)编译出最终的二进制代码。AITemplate 提供了一套类似于 PyTorch 的前端,方便用户直接将模型转换到 AITemplate 而不是通过多层 IR 转换。

总体来看,AITemplate 对当前一代及下一代 NVIDIA GPU 和 AMD GPU 提供了 SOTA 性能并大幅简化了系统复杂度。

Meta 表示,这只是创建高性能多平台推理引擎旅程的开始:「我们正在积极扩展 AITemplate 的完全动态输入支持。我们也有计划推广 AITemplate 到其他平台,例如 Apple 的 M 系列 GPU,以及来自其他供应商的 CPU 等等。」

此外,AITemplate 团队也正在开发自动 PyTorch 模型转换系统,使其成为开箱即用的 PyTorch 部署方案。「AITemplate 对支持 ONNX 和 Open-XLA 也持开放态度。我们希望能构建一个更为绿色高效的 AI 推理系统,能拥有更高的性能,更强的灵活性和更多的后端选择。」团队表示。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

    134458
  • AI
    AI
    +关注

    关注

    89

    文章

    38091

    浏览量

    296592

原文标题:推理速度数倍提升,大幅简化多GPU后端部署:Meta发布全新推理引擎AITemplate

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    米尔RK3576部署端侧模态轮对话,6TOPS算力驱动30亿参数LLM

    流程 2.1 依赖环境 2.2 一键编译 2.3 端侧部署步骤 三、效果展示:图文轮问答 四、二次开发与拓展方向 五、结论与未来发展方向 一、引言1.1 什么是轮对话?
    发表于 09-05 17:25

    基于米尔瑞芯微RK3576开发板的Qwen2-VL-3B模型NPU模态部署评测

    关键词:瑞芯微 RK3576、NPU(神经网络处理器)、端侧小语言模型(SLM)、模态 LLM、边缘 AI 部署开发板、RKLLM随着大语言模型(LLM)技术的快速迭代,从云端集中式部署
    发表于 08-29 18:08

    【米尔RK3576开发板免费体验】1、开发环境、镜像烧录、QT开发环境搭建以及应用部署

    示例程序中的.pro文件,导入工程。 修改QT的Projects界面中的Command line Argments为--platform wayland,指定QT使用的显示后端类型。 编译并运行工程,部署执行程序到开发
    发表于 07-14 11:26

    Say Hi to ERNIE!Imagination GPU率先完成文心大模型的端侧部署

    ImaginationTechnologies宣布率先完成百度文心大模型(ERNIE4.5开源版)在其GPU硬件上的端侧部署。适配完成后,开发者可在搭载ImaginationGPU的设备上实现高效
    的头像 发表于 07-01 08:17 772次阅读
    Say Hi to ERNIE!Imagination <b class='flag-5'>GPU</b>率先完成文心大模型的端侧<b class='flag-5'>部署</b>

    HarmonyOS5云服务技术分享--Serverless抽奖模板部署

    活动。不用写复杂代码,跟着步骤走就能搞定,文末还有部署避坑指南哦~ 一、前期准备 1️⃣ ​​注册账号+创建项目​​ 先到华为开发者平台注册账号 创建新项目时记得勾选\"云开发
    发表于 05-22 20:25

    如何在Ollama中使用OpenVINO后端

    /GPU/NPU)为模型推理提供了高效的加速能力。这种组合不仅简化了模型的部署和调用流程,还显著提升了推理性能,特别适合需要高性能和易用性的场景。
    的头像 发表于 04-14 10:22 1121次阅读

    极速部署!GpuGeek提供AI开发者的云端GPU最优解

    在AI开发领域,算力部署的效率和资源调度的灵活性直接影响研发进程与创新速度。随着模型复杂度的提升和全球化协作需求的增长,开发者对GPU云服务的核心诉求已从单纯追求硬件性能,转向对
    的头像 发表于 03-17 11:27 651次阅读
    极速<b class='flag-5'>部署</b>!GpuGeek提供AI<b class='flag-5'>开发</b>者的云端<b class='flag-5'>GPU</b>最优解

    添越智创基于 RK3588 开发部署测试 DeepSeek 模型全攻略

    DeepSeek 模型的部署与测试,开启这场充满挑战与惊喜的技术探索之旅。 RK3588 开发板:AI 性能担当 RK3588 开发板基于先进的 8nm LP 制程工艺精心打造,其硬件配置堪称豪华,在 AI
    发表于 02-14 17:42

    如何在Arm Ethos-U85上使用ExecuTorch

    在快速发展的机器学习领域,PyTorch 凭借其灵活性和全面的生态系统,已成为模型开发的热门框架。Arm 与 Meta 合作在 ExecuTorch 中引入了对 Arm 平台的支持,进一步简化了模型算法
    的头像 发表于 02-14 14:23 1015次阅读
    如何在Arm Ethos-U85上使用ExecuTorch

    Meta 2024年四季度财报亮点:营收大幅增长

    Meta近期正式发布了其2024年第四季度及全年的财报数据。数据显示,Meta在2024年第四季度实现了483.9亿美元的营收,与去年同期相比增长了21%,这一表现超出了市场预期。 同时,Meta
    的头像 发表于 02-05 14:21 1020次阅读

    微服务容器化部署好处吗?

    微服务容器化部署好处有很多,包括环境一致性、资源高效利用、快速部署与启动、隔离性与安全性、版本控制与回滚以及持续集成与持续部署。这些优势助力应用可靠稳定运行,提升开发运维效率,是现代软
    的头像 发表于 01-17 10:22 543次阅读

    华为云 Flexus X 轻松实现 Redis 一主从高效部署

    ,Flexus X 预装 Redis 加速镜像,简化了 Redis 的安装和配置流程,降低了技术门槛,使开发者能够更专注于业务逻辑的实现。         本文将详细介绍如何在华为云 Flexus X 上
    的头像 发表于 12-27 13:45 782次阅读
    华为云 Flexus X 轻松实现 Redis 一主<b class='flag-5'>多</b>从高效<b class='flag-5'>部署</b>

    Meta要求阻止OpenAI营利化转变

    近日,据外媒报道,Meta已向司法部门提出投诉,要求阻止OpenAI从非营利性组织转变为营利性公司。这一举动引发了广泛关注,继特斯拉创始人马斯克之后,Meta也成为了反对OpenAI营利化转变的又一
    的头像 发表于 12-17 09:57 686次阅读

    《CST Studio Suite 2024 GPU加速计算指南》

    监控/利用率、选择可用GPU卡子集等内容。 6. 故障排除:针对NVIDIA驱动安装、GPU设置、GPU模式、硬件识别、CUDA错误、TCC模式等问题给出了相应的解决方法。
    发表于 12-16 14:25

    Meta发布新AI模型Meta Motivo,旨在提升元宇宙体验

    Meta在人工智能领域迈出了重要一步。通过这款模型,Meta希望能够为用户提供更加自然、流畅的元宇宙交互体验。数字代理在元宇宙中的动作将更加逼真,从而增强用户的沉浸感和参与度。 除了Meta Motivo,
    的头像 发表于 12-16 10:34 1349次阅读