Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Elastic Inference

Amazon Elastic Inference (EI) 是一种您可以附加到 Amazon EC2 实例用于加速深度学习 (DL) 推理工作负载的资源。Amazon EI 加速器提供有多种大小,是一种为在 Amazon EC2 实例上运行的应用程序引入智能功能的经济高效的方法。

Amazon EI 在基于 GPU 的低成本 DL 推理加速器上,加快由 TensorFlow、Apache MXNet 和开放神经网络交换 (ONNX) 格式定义的操作。对于开发人员而言,在 Amazon EC2 实例上生成具有机器学习推理工作负载的广泛应用程序时,可以通过 Amazon EI 带来的成本削减实现更广泛的部署,因而从中获益。

Amazon EI 基础知识

在配置 Amazon EC2 实例与 Amazon EI 加速器一起启动时,AWS 查找可用的加速器容量并在您的实例与加速器之间建立网络连接。

Amazon EI 加速器可供所有 EC2 实例类型使用。

Amazon EI 加速器有以下类型可用。您可以将任意 Amazon EI 加速器类型附加到任意实例类型。

加速器类型 FP32 吞吐量 (TFLOPS) FP16 吞吐量 (TFLOPS) 内存 (GB)
eia1.medium 1 8 1
eia1.large 2 16 2
eia1.xlarge 4 32 4

Amazon EI 加速器并非组成实例的硬件部分。相反,加速器使用 AWS PrivateLink 终端节点服务,通过网络附加。终端节点服务将流量从您的实例路由到配置到您实例的 Amazon EI 加速器。

使用 Amazon EI 加速器启动实例之前,您必须创建 AWS PrivateLink 终端节点服务。每个可用区需要仅一个终端节点服务来连接到具有 Amazon EI 加速器的实例。有关更多信息,请参阅 VPC 终端节点服务 (AWS PrivateLink)


                Amazon EI 加速器附加到 EC2 实例。

您可以使用启用了 Amazon Elastic Inference 的 TensorFlow Serving 或 Apache MXNet 库来加载模型并进行推理调用。这些库修改后的版本自动检测是否存在 Amazon EI 加速器,以最佳方式在 Amazon EI 加速器与实例的 CPU 之间分配模型操作,并使用 IAM 策略安全控制对加速器的访问。AWS 深度学习 AMI 包括启用 Amazon Elastic Inference 的 TensorFlow Serving 和 MXNet 的最新版本。如果您使用自定义 AMI 或者容器映像,则可以从 Amazon S3 下载并安装所需的 Amazon Elastic Inference TensorFlow ServingAmazon Elastic Inference Apache MXNet 库。

注意

Amazon EI 加速器对您实例的设备管理器不可见,也无法通过设备管理器访问。

Amazon EI 加速器网络流量使用 HTTPS 协议(TCP 端口 443)。确保您实例以及 AWS PrivateLink 终端节点服务的安全组允许此流量。有关更多信息,请参阅为 Amazon EI 配置安全组

Amazon EI 定价

对于附加到处于 running 状态的实例的 Amazon EI 加速器,您需要按秒支付费用。对于附加到处于 pendingstoppingstoppedshutting-downterminated 状态的加速器,您无需支付费用。Amazon EI 加速器处于 unknownimpaired 状态时,您也无需支付费用。

当您在子网中预配置了加速器时,不会产生对 VPC 终端节点上 Amazon EI 服务的 AWS PrivateLink 费用。

Amazon EI 注意事项

在开始使用 Amazon EI 加速器之前,请注意以下限制:

  • 您一次只能将一个 Amazon EI 加速器附加到一个实例,并且只能在实例启动期间附加。

  • 您无法在实例之间共享 Amazon EI 加速器。

  • 您无法从实例分离 Amazon EI 加速器或者将它转移到另一个实例。如果不再需要 Amazon EI 加速器,您必须终止自己的实例。要更改 Amazon EI 加速器类型,请从您的实例创建 AMI,终止该实例,然后启动具有不同 Amazon EI 加速器规格的新实例。

  • 目前,只有 Amazon Elastic Inference 增强 MXNet 和 Amazon Elastic Inference 增强 TensorFlow Serving 库可以对 Amazon EI 加速器发出推理调用。

  • Amazon EI 加速器只能附加到 VPC 中的实例。

  • Amazon EI 加速器的定价仅提供按需费率。您可以将加速器附加到Reserved Instance、计划的预留实例或 Spot 实例。但是,按照 Amazon EI 加速器的按需价格收取费用。您无法预留或计划 Amazon EI 加速器容量。

为模型选择实例和加速器类型

对 CPU 计算资源、CPU 内存、基于 GPU 的加速和 GPU 内存的需求,在不同深度学习模型之间会有极大差别。应用程序的延迟和吞吐量需求也会确定您需要的实例计算和 Amazon EI 加速的数量。为您的模型选择实例和加速类型组合时,请考虑以下情况:

  • 在您评估模型或应用程序的合适资源组合时,您应确定整体应用程序堆栈所需的目标延迟和吞吐量,以及您可能会有的任何约束。例如,如果应用程序需要在 300 毫秒 (ms) 以内响应,而数据检索(包括任何身份验证)和预处理需要 200ms,则您有 100ms 的时段来处理推理请求。使用此分析,您可以确定满足这些目标的最低成本基础设施组合。

  • 从合理的小规模资源组合开始。例如,c5.xlarge 实例类型以及 eia1.medium 加速器类型。此组合经过测试,在多种计算机视觉工作负载(包括较大规模的 ResNet: ResNet-200)上可以很好地工作,相比 p2.xlarge 实例提供相当或更好的性能。然后,您可以根据延迟目标加大实例或加速器类型。

  • 由于 Amazon EI 加速器已附加到网络,实例和加速器之间的输入/输出数据传输也会增加推理延迟。为实例和/或加速器使用较大的大小可以缩短数据传输时间,从而减少整体推理延迟。

  • 如果将多个模型加载到您的加速器中(或者,来自实例上的多个应用程序进程的相同模型),您可能需要较大的加速器大小,从而满足加速器上的计算和内存需求。

  • 您可以将模型转换为混合精度,这会利用 Amazon EI 较高的 FP16 TFLOPS(对于指定大小)来提供较低的延迟和较高的性能。

将 Amazon Elastic Inference 与 EC2 Auto Scaling 结合使用

在您创建 Auto Scaling 组时,可以指定所需信息来配置 Amazon EC2 实例,包括 Amazon EI 加速器。要为 Auto Scaling 实例配置 Amazon EI 加速器,您可以使用实例配置指定启动模板,以及 Amazon EI 加速器类型。

本页内容: