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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
云服务器(按量付费),48vCPU 186GiB
简介: 本次实测涵盖图像分类识别、图像目标检测、自然语言处理以及搜索推荐等四种常见的深度学习推理场景

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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
弹性计算 运维 监控
【阿里云弹性计算】ECS实例的生命周期管理:阿里云自动化工具与策略介绍
【5月更文挑战第29天】阿里云提供自动化工具和策略管理ECS实例生命周期,如资源编排服务(ROS)实现一键部署,通过模板定义实例配置;自动化运维服务(OOS)执行自动化运维任务;弹性伸缩策略动态调整实例数量;定时启动/停止策略节省成本;监控告警策略确保业务连续性。通过这些工具和策略,企业可实现ECS实例的高效管理。
12 2
|
2天前
|
机器学习/深度学习 弹性计算 自然语言处理
【阿里云弹性计算】深度学习训练平台搭建:阿里云 ECS 与 GPU 实例的高效利用
【5月更文挑战第28天】阿里云ECS结合GPU实例为深度学习提供高效解决方案。通过弹性计算服务满足大量计算需求,GPU加速训练。用户可按需选择实例规格,配置深度学习框架,实现快速搭建训练平台。示例代码展示了在GPU实例上使用TensorFlow进行训练。优化包括合理分配GPU资源和使用混合精度技术,应用涵盖图像识别和自然语言处理。注意成本控制及数据安全,借助阿里云推动深度学习发展。
27 2
|
2天前
|
存储 弹性计算 数据管理
【阿里云弹性计算】ECS实例的冷热数据管理:利用阿里云 OSS 与 ECS 的高效协同
【5月更文挑战第28天】阿里云ECS与OSS协同,实现弹性计算服务的高效数据管理。ECS处理热数据,OSS存储冷数据,降低存储成本,提升性能。通过自动化策略实现数据自动迁移,优化实例性能,适用于电商图片、日志存储等场景。注意迁移策略设置和数据安全,为企业带来更大价值和竞争力。
16 1
|
2天前
|
存储 编解码 弹性计算
租用2核4G、4核8G、8核16G配置阿里云服务器可选实例规格及价格参考
在租用阿里云服务器时,一般计算型实例规格的云服务器处理器与内存配比为1:2,而2核4G、4核8G、8核16G配置就是用户选择较多的配置,这些配置的云服务器一般可用于网站应用、批量计算、视频编码等各种类型和规模的企业级应用,目前在阿里云的活动中经济型e、通用算力型u1、计算型c7、计算型c8y、计算型c7a等实例2核4G、4核8G、8核16G配置有优惠,本文为大家介绍这些配置在阿里云目前的活动中可选的实例规格及具体价格和收费标准情况,以供参考。
租用2核4G、4核8G、8核16G配置阿里云服务器可选实例规格及价格参考
|
1天前
|
机器学习/深度学习 网络架构 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第29天】 随着计算机视觉和人工智能技术的不断进步,深度学习已经成为图像识别领域的核心动力。本文将探讨深度学习技术在图像识别任务中的运用,包括卷积神经网络(CNN)的基础结构、数据增强的重要性以及损失函数的选择等关键因素。同时,我们将深入讨论当前面临的主要挑战,如过拟合、计算资源需求和对抗性攻击,并提出可能的解决方案。通过分析现有文献和最新研究成果,本文旨在为读者提供一个关于深度学习在图像识别中应用的全面视角,以及未来发展趋势的洞见。
|
1天前
|
机器学习/深度学习 存储 监控
Kubernetes 集群的持续监控与性能优化策略深度学习在图像识别中的应用与挑战
【5月更文挑战第29天】 在当今微服务架构和容器化部署的大背景下,Kubernetes 已成为众多企业的首选平台。然而,随着集群规模的扩大和业务复杂性的增加,如何确保系统的高可用性和性能稳定性成为一个挑战。本文将探讨针对 Kubernetes 集群实施的持续监控方案以及针对性能瓶颈的优化策略,旨在帮助运维人员有效管理和提升其服务的质量。
|
1天前
|
机器学习/深度学习 运维 监控
构建高效自动化运维系统:策略与实践基于深度学习的图像识别在自动驾驶系统中的应用
【5月更文挑战第29天】 在当今的信息技术时代,企业的IT基础设施管理变得日益复杂。为了保持竞争力,组织必须确保其服务的稳定性和效率。本文将探讨如何通过实施自动化运维系统来优化IT管理流程,降低成本并提高服务质量。文中不仅介绍了自动化的核心原则和组件,还分享了实际案例研究和最佳实践,为读者提供了一套切实可行的自动化运维解决方案。
|
1天前
|
机器学习/深度学习 安全 自动驾驶
深度学习在图像识别中的应用与挑战
【5月更文挑战第29天】 随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心动力。尤其是在图像识别任务中,深度神经网络以其卓越的特征提取能力,推动了从面部识别到医学影像分析等多领域的技术进步。本文将深入探讨深度学习模型在处理图像识别问题时的有效性,并剖析当前面临的主要挑战,包括数据集偏差、模型泛化能力以及对抗性攻击等关键问题。同时,将提出针对性的改进策略和未来研究方向,以期推动深度学习技术在图像识别中的更广泛应用。
|
1天前
|
机器学习/深度学习 算法 大数据
深度学习在图像识别中的应用与挑战
【5月更文挑战第29天】 随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心动力。尤其是在图像识别任务中,深度神经网络凭借其强大的特征提取能力,显著提升了模型的识别精度和泛化能力。然而,尽管取得了显著进展,深度学习在图像识别的应用仍面临着数据偏差、模型泛化及算力资源等多重挑战。本文将围绕这些关键技术点展开讨论,并探索可能的解决方案。
|
1天前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第29天】 随着人工智能技术的飞速发展,深度学习在图像识别领域取得了显著的成果。本文主要探讨了基于深度学习的图像识别技术在自动驾驶领域的应用,包括卷积神经网络(CNN)和循环神经网络(RNN)等关键技术。通过对自动驾驶系统的分析,本文提出了一种基于深度学习的图像识别方法,以提高自动驾驶系统的准确性和安全性。

相关产品

  • 云服务器 ECS
  • http://www.vxiaotou.com