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

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

近几年,深度学习在视觉、自然语言处理、搜索广告推荐等工业界的各个领域广泛落地。深度学习模型参数量的指数级上升、以及新的业务对复杂模型的需求,都要求云厂商的弹性计算能够降低算力成本、提高计算效率,尤其是深度学习的推理,将会成为优化的重点。在此因素影响下,阿里云平头哥团队推出了全球首个 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 倍。

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


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



Figure 2: SSD 性能对比图


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

Figure 3: BERT 性能对比图


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 也已经合入。


Figure5: OpenBLAS 矩阵乘法性能对比


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

PyTorch CNN Performance

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

Figure 6: VGG19性能对比图


05 结论

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 人工智能 编解码
阿里云服务器计算型c8i、通用型g8i和计算型c8a、通用型g8a实例区别及选择参考
在选择阿里云服务器计算型和通用型实例规格的时候,有的用户不清楚计算型c8i、通用型g8i与计算型c8a、通用型g8a实例的区别,他们都是采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。但是计算型c8i和通用型g8i实例用的是Intel处理器,计算型c8a和通用型g8a实例用的是AMD处理器。本文将详细介绍阿里云服务器计算型c8i、通用型g8i与计算型c8a、通用型g8a实例各自的性能和区别,以及适合的用户群体,帮助用户更好地选择适合自己的云服务器实例。
|
7天前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
31 6
|
8天前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c8i实例解析:实例规格性能及使用场景和最新价格参考
计算型c8i实例作为阿里云服务器家族中的重要成员,以其卓越的计算性能、稳定的算力输出、强劲的I/O引擎以及芯片级的安全加固,广泛适用于机器学习推理、数据分析、批量计算、视频编码、游戏服务器前端、高性能科学和工程应用以及Web前端服务器等多种场景。本文将全面介绍阿里云服务器计算型c8i实例,从规格族特性、适用场景、详细规格指标、性能优势、实际应用案例,到最新的活动价格,以供大家参考。
|
13天前
|
存储 弹性计算 缓存
阿里云服务器通用型g8i实例性能与使用场景介绍及最新收费标准参考
阿里云ECS通用型g8i服务器采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。ECS通用型g8i实例支持开启或关闭超线程配置,单台g8i实例最高支持100万IOPS。阿里云ECS通用型g8i实例CPU采用Intel®Xeon®Emerald Rapids或者Intel®Xeon®Sapphire Rapids,主频不低于2.7 GHz,全核睿频3.2GHz。本文为大家介绍通用型g8i实例性能与使用场景介绍及最新收费标准,以供参考。
|
14天前
|
弹性计算 缓存 数据挖掘
阿里云服务器经济型e和通用算力型u1实例区别及选择参考
在阿里云目前的活动中,经济型e和通用算力型u1实例是两个比较热门的云服务器实例规格,收费标准相对其他计算型、通用型和内存型实例来说要更低一些,经济型e实例ECS云服务器2核2G3M带宽新购和续费都是99元1年,通用算力型u1实例2核4G5M带宽新购和续费都只要199元1年、4核8G云服务器955.58元1年。有的新手用户并不清楚他们之间的区别及如何选择,本文将介绍阿里云服务器中的经济型e实例和通用算力型u1实例的特点、区别以及新手选择参考。
|
17天前
|
机器学习/深度学习 算法 开发者
探索深度学习中的优化器选择对模型性能的影响
在深度学习领域,优化器的选择对于模型训练的效果具有决定性作用。本文通过对比分析不同优化器的工作原理及其在实际应用中的表现,探讨了如何根据具体任务选择合适的优化器以提高模型性能。文章首先概述了几种常见的优化算法,包括梯度下降法、随机梯度下降法(SGD)、动量法、AdaGrad、RMSProp和Adam等;然后,通过实验验证了这些优化器在不同数据集上训练神经网络时的效率与准确性差异;最后,提出了一些基于经验的规则帮助开发者更好地做出选择。
|
3天前
|
机器学习/深度学习 数据采集 传感器
基于深度学习的图像识别技术在自动驾驶中的应用研究####
本文旨在探讨深度学习技术,特别是卷积神经网络(CNN)在自动驾驶车辆图像识别领域的应用与进展。通过分析当前自动驾驶技术面临的挑战,详细介绍了深度学习模型如何提升环境感知能力,重点阐述了数据预处理、网络架构设计、训练策略及优化方法,并展望了未来发展趋势。 ####
25 6
|
6天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
26 8
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
10天前
|
机器学习/深度学习 数据采集 测试技术
深度学习在图像识别中的应用
本篇文章将探讨深度学习在图像识别中的应用。我们将介绍深度学习的基本原理,以及如何使用深度学习进行图像识别。我们将通过一个简单的代码示例来演示如何使用深度学习进行图像识别。这篇文章的目的是帮助读者理解深度学习在图像识别中的作用,并学习如何使用深度学习进行图像识别。

热门文章

最新文章

相关产品

  • 云服务器 ECS