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

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

3天内不再提示

采用阿里云倚天实例g8y对深度学习推理性能进行测试和比较

jf_9aVl32Dp 来源:阿里云开发者社区 作者:弹性计算-百晓生 2022-11-25 10:33 次阅读

简介:本次实测涵盖图像分类识别、图像目标检测、自然语言处理以及搜索推荐等四种常见的深度学习推理场景

近几年,深度学习在视觉、自然语言处理、搜索广告推荐等工业界的各个领域广泛落地。深度学习模型参数量的指数级上升、以及新的业务对复杂模型的需求,都要求云厂商的弹性计算能够降低算力成本、提高计算效率,尤其是深度学习的推理,将会成为优化的重点。在此因素影响下,阿里云平头哥团队推出了全球首个5nm 制程的 ARM Server 芯片倚天710。该芯片基于 ARM Neoverse N2 架构,支持最新的 ARMv9 指令集,其中包括 i8mm,bf16等扩展指令集,能在科学/AI计算领域获得性能优势。

在本文中,我们聚焦于采用倚天710芯片的 ECS倚天实例g8y,对深度学习推理任务的性能进行了测试和比较。

01 Workloads

本次分析,我们选择了四种常见的深度学习推理场景,涵盖图像分类识别、图像目标检测、自然语言处理以及搜索推荐领域。所使用的代表性模型如下:

Area Task Model
Vision Image Classification Resnet50-v1.5 and VGG19
Vision Object Detection SSD-Resnet34
Language Natural Language Processing BERT-Large
Recommendation Click-Through Rate Prediction DIN

02 Platforms

实例类型

我们在阿里云两种实例类型上进行测试,分别是ECS g8y(倚天710) 和 ECS g7(Ice Lake),实例均为 8-vCPU

Deep Learning Framework

在所有平台,我们使用 TensorFlow v2.10.0 和 PyTorch 1.12.1。

在 Arm 设备上,TensorFlow 支持两种后端,我们使用 OneDNN 后端。OneDNN 是一个开源的跨平台深度学习库,并且能够集成 Arm Compute Library(Arm设备的机器学习计算库)。在 Arm 设备上使用该后端能够取得更高的性能。

OneDNN 在 PyTorch 上的支持仍然是实验版本,因此在 PyTorch 框架上使用默认的 OpenBLAS 后端。

BFloat16

BFloat16 (BF16) 是一种浮点数表示形式,其指数位与单精度浮点数(IEEE FP32)保持一致,但是小数位只有 7 位,因此 BF16 的表示范围与 FP32 几乎一致,但是精度较低。BF16 非常适合深度学习,因为通常精度下降并不会显著降低模型的预测精度,但是16位的数据格式却能够节省空间、加速计算。

03 TensorFlow Performance Comparison

g8y 借助新的 BF16 指令,大幅提升了深度学习模型的推理性能,在多个场景下跑出了比 g7 更优秀的数据。此外,倚天 710 作为自研芯片,相比 g7 最大有 30% 的价格优势。

下面四幅图分别是 Resnet50,SSD,BERT 和 DIN 模型下的对比结果,其中,Resnet,SSD 和 BERT 都来自 MLPerf Inference Benchmark 项目,DIN 是 alibaba 提出的点击率预测模型。蓝色柱状条是直接性能对比,橙色柱状条是考虑了单位价格的性能对比,例如在 Resnet50 上,g8y 的性能是 g7 的 1.43倍,单位价格的性能是 g7 的 2.05 倍。

b3637baa-6c03-11ed-8abf-dac502259ad0.png

Figure 1: Resnet50 在 g8y 和 g7 上的推理性能对比图

说明:此处设置 Batch Size = 32,测试图像尺寸为 224 * 224

b3a2567c-6c03-11ed-8abf-dac502259ad0.png

Figure 2: SSD 性能对比图

说明:此处 Batch Size = 1,测试图像尺寸为1200 * 1200

b3bdb886-6c03-11ed-8abf-dac502259ad0.png

Figure 3: BERT 性能对比图

b3dae80c-6c03-11ed-8abf-dac502259ad0.png

Figure 4: DIN 性能对比图

04 PyTorch Performance Comparison

Arm 上的 OneDNN 后端的 PyTorch 版本仍然是实验性质,因此本次实验采用默认的 OpenBLAS 后端。OpenBLAS 是一个开源的线性代数库,我们为其添加了针对 Arm Neoverse N2 的 BFloat16 矩阵乘法计算的优化实现。

OpenBLAS BFloat16 矩阵乘法优化

矩阵乘法和深度学习存在非常紧密的关系,例如深度学习中常见的 Fully Connected Layer,Convolutional Layer等,最终是被转换成矩阵乘法实现的。因此,加速矩阵乘法最终能加速模型的计算。

OpenBLAS 是一个广泛使用的计算库,默认作为 Numpy,PyTorch 等库的后端,我们在调研中发现该库不支持倚天 710 的 bf16 指令扩展,在和社区交流后,我们决定利用倚天 710 支持的 BFMMLA 等向量指令实现支持 bf16 数据格式的矩阵乘法,实现后性能的到大幅提升,性能对比如图 5 所示。该实现目前已经贡献给开源社区,OpenBLAS 的最新版本 0.3.21 也已经合入。

b3fcf8c0-6c03-11ed-8abf-dac502259ad0.png

Figure5: OpenBLAS 矩阵乘法性能对比

说明:参与运算的矩阵的行数和列数均为 1000。

PyTorch CNN Performance

OpenBLAS 作为 PyTorch 的默认后端,在矩阵乘法上的优化可以体现在 PyTorch 实现的深度学习模型中,我们以卷积计算占比较高的模型 VGG19 为例,该模型推理时,所有的卷积算子会被转换为矩阵乘法,并调用 OpenBLAS 完成计算。下图是 VGG 19 的性能对比:

b41e7e28-6c03-11ed-8abf-dac502259ad0.png

Figure 6: VGG19性能对比图

05 结论

本文的分析显示,在阿里云倚天实例g8y上,多个深度学习模型的推理性能高于同规格 g7,这主要得益于 Arm Neoverse N2 的新指令以及不断更新的软件支持(OneDNN、ACL 和 OpenBLAS)。在这个过程中,阿里云编译器团队贡献了一部分软件优化,后续我们将继续关注该领域的软硬件优化,提高 Arm 系列实例在 ML/AI 方面的竞争力。

审核编辑:郭婷

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

    关注

    455

    文章

    50714

    浏览量

    423158
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9084

    浏览量

    367390
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121113

原文标题:性能最高提升50%,ECS倚天实例深度学习推理性能实测

文章出处:【微信号:Arm软件开发者,微信公众号:Arm软件开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    解锁NVIDIA TensorRT-LLM的卓越性能

    Batching、Paged KV Caching、量化技术 (FP8、INT4 AWQ、INT8 SmoothQuant 等) 以及更多功能,确保您的 NVIDIA GPU 能发挥出卓越的推理性能
    的头像 发表于 12-17 17:47 119次阅读

    阿里开源推理大模型QwQ

    近日,阿里通义团队宣布推出全新AI推理模型QwQ-32B-Preview,并同步实现了开源。这一举措标志着阿里在AI
    的头像 发表于 11-29 11:30 537次阅读

    基于哪吒开发板部署YOLOv8模型

    开发板的推理性能,同时测试所推出的 OpenVINO C# API (https://github.com/guojin-yan/OpenVINO-CSharp-API) 项目能否应用到该开发板上,我们使用该开发板,结合 OpenVINO C# API 的异步
    的头像 发表于 11-15 14:13 223次阅读
    基于哪吒开发板部署YOLOv<b class='flag-5'>8</b>模型

    开箱即用,AISBench测试展示英特尔至强处理器的卓越推理性能

    近期,第五代英特尔®至强®可扩展处理器通过了中国电子技术标准化研究院组织的人工智能服务器系统性能测试(AISBench)。英特尔成为首批通过AISBench大语言模型(LLM)推理性能测试
    的头像 发表于 09-06 15:33 315次阅读
    开箱即用,AISBench<b class='flag-5'>测试</b>展示英特尔至强处理器的卓越<b class='flag-5'>推理性能</b>

    飞凌OK-全志T527开发板nbench性能测试

    T527芯片采用8核处理器(4大核+4小核),芯片性能不容小觑,那么实际表现到底如何呢?这里笔者使用nbench作为CPU性能测试工具,对
    发表于 08-20 10:25

    TensorFlow与PyTorch深度学习框架的比较与选择

    学习框架,它们各自拥有独特的特点和优势。本文将从背景介绍、核心特性、操作步骤、性能对比以及选择指南等方面对TensorFlow和PyTorch进行详细比较,以帮助读者了解这两个框架的优
    的头像 发表于 07-02 14:04 953次阅读

    学习笔记|如何移植NCNN

    队的步伐,揭秘他们如何进行NCNN的交叉编译,并在ELF1开发板上演绎实践,以此验证模型推理性能。1、从GitHub下载NCNN源码:https://github.c
    的头像 发表于 05-29 10:06 1095次阅读
    <b class='flag-5'>学习</b>笔记|如何移植NCNN

    飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨

    日前,飞天技术沙龙《业务创新新选择,倚天Arm架构深入探索》在上海成功举行。来自阿里、平头哥及Arm的专家为现场观众深入解读了Arm架构的核心优势,并重点分享了基于倚天710的计算
    的头像 发表于 05-21 16:48 580次阅读
    飞天技术沙龙回顾:业务创新新选择,<b class='flag-5'>倚天</b>Arm架构深入探讨

    腾讯正式上线第八代服务器标准型实例S8和内存型实例M8

    4月15日,腾讯正式上线第八代服务器标准型实例 S8和内存型实例M8。基于自研服务器的高密设
    的头像 发表于 04-30 17:16 2025次阅读
    腾讯<b class='flag-5'>云</b>正式上线第八代<b class='flag-5'>云</b>服务器标准型<b class='flag-5'>实例</b>S<b class='flag-5'>8</b>和内存型<b class='flag-5'>实例</b>M<b class='flag-5'>8</b>

    阿里倚天710服务器处理器速度超至强

    4 月 30 日资讯,电气和电子工程师协会(IEEE)发布的《Transactions on Cloud Computing》杂志显示,阿里倚天 710 处理器在 2021 年度被评为处理超级规模
    的头像 发表于 04-30 16:22 648次阅读

    自然语言处理应用LLM推理优化综述

    当前,业界在将传统优化技术引入 LLM 推理的同时,同时也在探索从大模型自回归解码特点出发,通过调整推理过程和引入新的模型结构来进一步提升推理性能
    发表于 04-10 11:48 582次阅读
    自然语言处理应用LLM<b class='flag-5'>推理</b>优化综述

    UL Procyon AI 发布图像生成基准测试,基于Stable Diffusion

    UL去年发布的首个Windows版Procyon AI推理基准测试,以计算机视觉工作负载评估AI推理性能。新推出的图像生成测试将提供统一、精确且易于理解的工作负载,用以保证各支持硬件间
    的头像 发表于 03-25 16:16 875次阅读

    阿里第八代企业级实例g8i搭载第五代英特尔至强可扩展处理器

    +CIPU」架构体系,ECS g8i 实例的整机性能最高提升 85%*,AI 推理性能最高提升 7 倍*,可支撑高达 72B 参数的大语言模型,帮助中小规模模型起建成本降低 50%*。
    的头像 发表于 01-15 11:28 939次阅读
    <b class='flag-5'>阿里</b><b class='flag-5'>云</b>第八代企业级<b class='flag-5'>实例</b><b class='flag-5'>g8</b>i搭载第五代英特尔至强可扩展处理器

    Torch TensorRT是一个优化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我们大家聚在一起的原因,它是一个端到端的机器学习框架。而TensorRT则是NVIDIA的高性能深度学习
    的头像 发表于 01-09 16:41 1716次阅读
    Torch TensorRT是一个优化PyTorch模型<b class='flag-5'>推理性能</b>的工具

    HarmonyOS应用性能与功耗测试

    。 说明 每天只能进行 100 次性能测试任务,请合理安排测试任务。 选择测试设备,性能
    发表于 12-26 16:39