AWS Neuron

用于优化 AWS Trainium 和 AWS Inferentia 加速器上的机器学习的 SDK

AWS Neuron 是一款带有编译器、运行时和分析工具的开发工具包,可解锁高性能且经济高效的深度学习(DL)加速。它支持在基于 AWS Trainium 的 Amazon Elastic Compute Cloud (Amazon EC2) Trn1 实例上进行高性能训练。对于模型部署,它支持在基于 AWS Inferentia 的 Amazon EC2 Inf1 实例和基于 AWS Inferentia2 的 Amazon EC2 Inf2 实例上进行高性能和低延迟推理。借助 Neuron,您可以使用 TensorFlow 和 PyTorch 等热门框架,并在 Amazon EC2 Trn1、Inf1 和 Inf2 实例上以最佳方式训练和部署机器学习(ML)模型,Neuron 则旨在最大限度地减少代码更改,并且与特定于供应商的解决方案挂钩。

优势

构建对 ML 框架和库的原生支持

支持 Inferentia 和 Trainium 加速器的 AWS Neuron SDK 与 PyTorch 和 TensorFlow 原生集成。该集成确保您可以继续在这些热门框架中使用现有的工作流程,并且只需更改几行代码即可开始使用。对于分布式模型训练,Neuron SDK 支持诸如 Megatron-LM 和 PyTorch 全分片数据并行(FSDP)等库。

优化训练和推理的性能

通过 AWS Neuron 开发工具包,能够实现高效的编程并在运行时访问 Trainium 和 Inferentia 加速器。它支持广泛的数据类型、新的舍入模式、控制流和自定义运算符,以帮助您为 DL 工作负载选择最佳配置。对于分布式训练,Neuron 支持高效使用 Trn1 UltraClusters,并通过 Elastic Fabric Adapter (EFA) 网络对集体计算操作提供紧密耦合的支持。

实现增强的调试和监控

Neuron 提供即时 (JIT) 编译以加快开发人员的工作流程。它在 TensorBoard 插件的支持下提供调试和分析工具。Neuron 支持 Eager Debug 模式,您可以使用该模式轻松单步执行代码并逐一评估运算符。您可以使用 Neuron 辅助工具来帮助您遵循模型载入和性能优化的最佳实践。此外,Neuron 还包括提供性能和利用率见解的工具。

轻松和其他 AWS 服务集成

AWS Deep Learning AMIAWS Deep Learning Containers 预配置了 AWS Neuron。如果您使用的是容器化应用程序,则可以使用 Amazon Elastic Container Service (ECS)Amazon Elastic Kubernetes Service (EKS) 或您首选的本机容器引擎来部署 Neuron。Neuron 还支持 Amazon SageMaker,数据科学家和开发人员可以使用它来构建、训练和部署机器学习模型。

功能

智能分区


为了提高整体性能,AWS Neuron 将自动优化神经网络计算,以在 Trainium 和 Inferentia 加速器上运行计算密集型任务,并在 CPU 上运行其他任务。

广泛的 ML 数据类型


AWS Neuron 支持 FP32、TF32、BF16、FP16、INT8 和新的可配置 FP8。为工作负载使用正确的数据类型可帮助您优化性能,同时满足准确的目标。

FP32 自动投射


AWS Neuron 采用高精度 FP32 模型,并自动将它们转换为精度较低的数据类型,同时优化了准确性和性能。Autocasting 通过消除对低精度再培训的需求来缩短上市时间。

对随机舍入的原生支持

AWS Neuron 支持硬件加速的随机舍入。随机舍入支持以 BF16 速度进行训练,在从 FP32 自动投射到 BF16 时具有接近 FP32 的准确度。

NeuronCore Pipeline


NeuronCore Pipeline 为延迟敏感的应用程序(例如自然语言处理)提供高吞吐量模型并行性。管道通过跨多个 NeuronCore 分片计算图、将模型参数缓存在每个内核的片上内存中,然后以流水线方式跨内核流式传输训练和推理工作负载来实现这一点。

集体通信操作

AWS Neuron 支持在专用硬件上并行运行各种集体通信和计算操作。这样做可以在分布式工作负载上提供更低的延迟和更高的整体性能。

自定义运算符


AWS Neuron 支持自定义运算符。您可以用 C++ 编写新的自定义运算符,Neuron 将在 Trainium 和 Inferentia2 内联单指令多数据(SIMD)内核上运行这些运算符。

紧急调试模式


AWS Neuron 支持紧急调试模式,您可以使用该模式轻松单步执行代码并逐一评估运算符。

工作原理

AWS 机器学习加速器

AWS Trainium 加速器

AWS Trainium 是 AWS 专为高性能、低成本 DL 训练而构建的 ML 训练加速器。每个 AWS Trainium 加速器都搭载了两个第二代 NeuronCore,支持 FP32、TF32、BF16、FP16 和 INT8 数据类型以及可配置的 FP8 (cFP8),让您可以在范围和精确度之间取得适当的平衡。为了支持高效的数据和模型并行,每个 Trainium 加速器具有 32 GB 的高带宽内存,提供高达 210 TFLOPS 的 FP16/BF16 计算能力,并采用 NeuronLink,这是一种实例内、超高速非阻塞互连技术。

了解详情 »

AWS Inferentia 加速器

AWS Inferentia 和 AWS Inferentia2 是 AWS 设计和打造的一款机器学习推理加速器,旨在提供高性能、低成本的推理。每个 AWS Inferentia 加速器都搭载了四个第一代 NeuronCore,并支持 FP16、BF16 和 INT8 数据类型。每个 AWS Inferentia2 加速器都搭载了两个第二代 NeuronCore,并进一步增加了对 FP32、TF32 和新的可配置 FP8 (cFP8) 数据类型的支持。

了解详情 »

Amazon EC2 ML 实例

Amazon EC2 Trn1 实例

Amazon EC2 Trn1 实例由 AWS Trainium 加速器提供支持,专为高性能 DL 训练而构建。与同类 Amazon EC2 实例相比,它们可节省高达 50% 的训练成本。Trn1 实例具有多达 16 个 AWS Trainium 加速器,支持高达 1600 Gbps (Trn1n) 的第二代 Elastic Fabric Adapter (EFA) 网络带宽。

了解详情 »

Amazon EC2 Inf2 实例

Amazon EC2 Inf2 实例由多达 12 个 AWS Inferentia2 加速器提供支持,与 Inf1 实例相比,吞吐量提高了 4 倍,延迟降低到了 1/10。Inf2 实例是 Amazon EC2 中的首个推理优化实例,可通过加速器之间的超高速连接支持横向扩展分布式推理。

了解更多 »

Amazon EC2 Inf1 实例

Amazon EC2 Inf1 实例由多达 16 个 AWS Inferentia 加速器提供支持。与同类 Amazon EC2 实例相比,这些实例的吞吐量可提高多达 2.3 倍,每次推理的成本可降低多达 70%。

了解详情 »

入门

请参阅文档以获得教程、操作指南、应用指南和路线图。

如需获得进一步帮助,请访问开发人员论坛,该论坛也可通过 AWS 管理控制台访问。