Ampere Computing Logo
Contact Sales
Ampere Computing Logo

腾讯 Arm 云实例评测系列 — AI 推理

image

腾讯 CVM 标准型 SR1 是腾讯云推出的首款搭载 ARM 架构处理器的新一代 CVM 标准型计算实例规格。SR1 基于全核一致主频 3.0GHz 的 Ampere® Altra® 处理器,实例核数从 1 核到 64 核,并支持 1: 2、1: 4 等多种处理器与内存配比,相对 x86 架构实例为用户提供卓越的性价比。

Ampere 为基于 Ampere Altra 处理器的 SR1 实例提供了优化过的 AI 框架 (Ampere AI), 并通过腾讯镜像市场提供免费的镜像给客户使用。 本文将介绍如何在腾讯云上创建 SR1 实例,并基于 TensorFlow 对计算机视觉分类性能进行评测。

用 CPU 做推理

现在AI 推理应用的算力来源主要有三种方式,即 CPU+AI 专用芯片,CPU+GPU 和单纯的 CPU 推理。根据 Statista 和麦肯锡之前发布的AI硬件洞察报告,基于 CPU 的推理目前仍占 50% 以上。相比其他两种模式,采用 CPU 推理的主要原因有几点:

  • 更加灵活便利,软件主导,对应用方来说对专用硬件的依赖性低。
  • 涉及操作系统、驱动程序、运行时组件库等的复杂性较低。
  • CPU 上 AI 模型算法(例如稀疏性、量化等)的持续优化创新可以提供接近 GPU 的高吞吐量。
  • 更容易实现横向扩展并与其他软件堆栈进行集成。

更重要的是在 CPU 上搭建推理应用可以方便的将 AI 集成到业务逻辑模块,融入微服务云原生体系。

本文将介绍如何在腾讯云上创建 SR1 云实例,基于 SR1 所搭载的 Ampere Altra CPU,以 TensorFlow 为例对计算机视觉分类性能进行评测。

创建 SR1 实例

我们将创建一个 16vCPU 的 SR1 实例 SR1.4XLARGE32 来进行评测,该实例配置 16 个 Ampere Altra 物理核和 32GB 内存。

首先登录腾讯云的控制台,在“实例”类别下选择“新建”,将进入实例创建页面。由于 SR1 目前只在广州六区有售,所以需要选择“广州”->“广州六区”->”标准型 SR1”。 ai_tencent_1.png

然后将看到不同规格的 SR1 实例,这里我们选择 SR1.4XLARGE32 规格的实例。

ai_tencent_2.png

镜像选择“镜像市场”-> “从镜像市场选择”,然后搜索“Ampere”,选取“Ampere® Optimized TensorFlow - Ubuntu 20.04”镜像即可免费使用 Ampere 针对 SR1 优化过的 TensorFlow 2.7 以及各种示例程序。

ai_tencent_3.png

ai_tencent_4.png

设置好其它的实例配置,就可以确认配置信息并开通实例了。

启动并连接到实例

实例创建完就可以启动并登录了。实例的 IP 地址可以从控制台获取,取决于创建时设置的登录方式,可以使用密码或密钥的方式登录实例。

ai_tencent_ssh.png

登录后将看到下面的 Ampere AI 的欢迎界面。

AIOterminal.png

可以看到,这个镜像除了集成了 Ampere 优化的 Tensorflow,也包含 aio-example 的测试代码,该代码也可以从 github 上获取。

访问 github: https://github.com/AmpereComputingAI/aio-examples

运行 TensorFlow AIO 示例

TensorFlow 是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。

我们创建实例时从镜像市场选择的镜像已经包含了针对 Ampere Altra CPU 优化过的 Tensorflow 2.7。为了运行 aio-example 提供的示例程序,我们需要先下载模型。aio-examples 提供了包括图像分类和对象检测的不同模型,有 32 位的,也有 16 位和 8 位的模型。 aio_examples.png

取决于网络状况,下载所有的模型将需要几分钟。

我们将用 TensorFlow resnet_50_v15 分类模型来进行测试和评估。ResNet50 是最常用的图像分类模型之一。

由于 Ampere Altra CPU 是单核单线程,SR1 里每一个 vCPU 都对应一个 Altra 物理核,所以在用 SR1.4XLARGE32 测试时,我们指定 AIO_NUM_THREADS 为 16。我们首先测试 FP32 的双精度模型。

resnet_50.png resnet_50(2).png

可以看到,使用 16 个核心,resnet_50_v15 可以每秒处理 65.36 张图像(65.36 ips), 延时为 15ms。

下面我们再测试基于 FP16 的模型。

resnet_50_3.png resnet50_4.png

我们看到 FP16 的模型提供了高达 115.59 ips 的吞吐能力,这是因为 Ampere Altra 处理器对 FP16 提供了原生支持。相比 FP32 模型, FP16 模型可以在不影响模型的精度的前提下提供接近 2 倍的图像处理能力。

与其他实例的性能对比 这里的 aio-example 同样可以运行在基于 Intel CPU 和 AMD CPU 的腾讯 CVM 实例上。我们同样创建 16vCPU 的实例 S6.4XLARGE32 和 SA3.4XLARGE32。其中 S6.4XLARGE32 是基于 Intel® Xeon® Ice Lake 处理器的 16vCPU 实例,SA3.4XLARGE32 是基于 AMD EPYC™ Milan 处理器的 16vCPU 实例。与 SR1.4XLARGE32 不同的是,这里的 16vCPU 是 16 个线程,而非物理核,实际的物理核为 8。

我们在 S6.4XLARGE32 上运行 intel-tensorflow, 这是 Intel 优化过的 TensorFlow 以充分发挥 AVX-512 指令集的性能。 访问 intel-tensorflow: https://cloud.tencent.com/document/product/213/55669 AMD 也提供了针对 AMD CPU 优化的 ZenDNN,但在腾讯 CVM 里测试的结果并不比 native 的 Tensorflow 更好,所以以下 SA3.4XLARGE32 的数据采用的是 native TensorFlow。 访问 ZenDNN: https://developer.amd.com/zendnn/ “resnet_50_v15”模型在 3 个平台上的性能表现如下表。

resnet50table.png

我们可以看到,每秒处理的图像数量(ips),SR1.4xLARGE32 分别比同规格的 S6 和 SA3 实例高出 40% 和 50%;如果再考虑单个实例的价格差异,以相同的价格,SR1.4xLARGE32 可以获得比同规格的 S6 和 SA3 高出 70% 和 40% 的性能。

于此同时,SR1 实例还提供了对 FP16 的支持,可以获得更高的吞吐能力,以及更低的延时特性。

Jupyter Notebook 的可视化示例 aio-example 也提供了 Jupyter Notebook 脚本,方式编辑,调试和实现可视化。

下面将以对象检测模型 SSD Inception v2 为例。首先在 CVM 里启动 Jupyter Notebook。

![jupyter-aio.png](https://uawartifacts.blob.core.windows.net/upload-files/jupyter_aio_9877b69e57.png

在另外一台有浏览器的机器上,执行以下命令,输入实例的密码,开启 ssh 隧道;然后打开浏览器,输入上面最后一行的地址,就可以看到 AIO 的 Jupyter Notebook 了。

jupyter_2.png

进入“object_detection”,点击“examples.ipynb”,将会看到 Object Detection Examples 的页面。

Objectdetection.png

点击“Cell” -> “Run All”运行。

runall.png

查看运行结果。

tf_code.png

tf_code_2.png

tf_code_3.png

image_det_output.png

image_det_output2.png

image_det_output3.png

也可以通过同样的方法运行 aio-examples 里面其它的示例。

结论

采用 Ampere® Altra® 处理器的腾讯 SR1 实例,充分发挥了单核单线程的性能优势,同时 Ampere® AI 优化软件栈将 SR1 在 AI 推理应用中,相对 x86 架构的性价比优势提升到了 70%。

除了腾讯云市场的免费镜像,用户也可以从 Ampere 解决方案网站获取即用型 Docker 映像,包括代码和文档,在接受最终用户许可协议后的进行下载。Docker 映像包含一个标准的 ML 框架(TensorFlow,PyTorch, ONNX等),预装了优化的软件,可以在腾讯 CVM SR1 无需更改即可运行推理脚本。镜像中也提供了图像分类和对象检测等示例模型。

Ampere Computing 免费试用计划为开发者开放了 SR1 实例的申请通道,可以通过该计划免费试用 SR1 实例。

Created At : April 11th 2023, 10:39:12 pm
Last Updated At : April 11th 2023, 11:18:33 pm
Ampere Logo

Ampere Computing

4655 Great America Parkway

Suite 601 Santa Clara, CA 95054

image
image
 |  |  |  |  | 
© 2022 Ampere Computing LLC. All rights reserved. Ampere, Altra and the A and Ampere logos are registered trademarks or trademarks of Ampere Computing.
This site runs on Ampere Processors.