AWS Neuron 是一款帶有編譯器、執行時間和分析工具的軟體開發套件,可解鎖高效能且經濟高效的深度學習 (DL) 加速。AWS Neuron 支援在採用 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 旨在以最少的程式碼變更綁定到供應商特定解決方案。
優勢
使用對機器學習架構和程式庫的原生支援來建立
支援 Inferentia 和 Trainium 加速器的 AWS Neuron SDK 已與 PyTorch 和 TensorFlow 原生整合。這項整合確保您可以繼續在這些常用架構中使用現有的工作流程,只需更改幾行程式碼即可開始使用。對於分散式模型訓練,Neuron SDK 支援 Megatron-LM 和 PyTorch Fully Sharded Data Parallel (FSDP) 等程式庫。
優化訓練和推論效能
透過 AWS Neuron SDK 能對 Trainium 和 Inferentia 加速器進行高效程式設計和執行時間存取。它支援多種資料類型、新的捨入模式、控制流和自訂運算子,可幫助您為深度學習工作負載選擇最佳組態。對於分散式訓練,Neuron 能高效使用 Trn1 UltraClusters,並透過 Elastic Fabric Adapter (EFA) 網路為集體運算操作提供緊密耦合的支援。
獲得增強的偵錯和監控
Neuron 提供 Just-In-Time (JIT) 編譯以加快開發人員的工作流程。它在 TensorBoard 外掛程式的支援下提供偵錯和分析工具。Neuron 支援即時偵錯模式,您可以使用該模式輕鬆地逐步偵錯程式碼,並逐個評估運算子。您可以使用 Neuron 協助程式工具來幫助您遵循模型入門和效能優化的最佳實務。Neuron 還包括提供效能和利用率洞察的工具。
輕鬆與其他 AWS 服務整合
AWS Deep Learning AMI 和 AWS Deep Learning Containers 預先設定了 AWS Neuron。如果您使用的是容器化應用程式,則可以使用 Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS),或您偏好的原生容器引擎來部署 Neuron。AWS Neuron 還支援 Amazon SageMaker,資料科學家和開發人員可以使用它來建立、訓練和部署 ML 模型。
功能
智慧分割
為了提高整體效能,AWS Neuron 能自動優化神經網路運算,以在 Trainium 和 Inferentia 加速器上執行運算密集型任務和在 CPU 上執行其他任務。
廣泛的機器學習資料類型
AWS Neuron 支援 FP32、TF32、BF16、FP16、INT8 和新的可設定的 FP8。為工作負載使用正確的資料類型有助於您在實現準確目標的同時最佳化效能。
FP32 Autocasting
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 專為高效能、低成本的深度學習訓練而打造的 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 執行個體
採用 AWS Trainium 加速器的 Amazon EC2 Trn1 執行個體專為高效能 ML 訓練而打造。與其他同類 Amazon EC2 執行個體相比,Trn1 執行個體可節省高達 50% 的訓練成本。Trn1 執行個體配備高達 16 個 AWS Trainium 加速器,且支援高達 1600 Gbps (Trn1n) 的第二代 Elastic Fabric Adapter (EFA) 網路頻寬。
Amazon EC2 Inf2 執行個體
Amazon EC2 Inf2 執行個體由多達 12 個 AWS Inferentia2 加速器提供支援,相較於 Inf1 執行個體,輸送量提升高達 4 倍,而延遲則降低高達 10 倍。Inf2 執行個體是 Amazon EC2 中的首個推論最佳化執行個體,可透過加速器之間的超高速連線,支援橫向擴展分散式推論。
Amazon EC2 Inf1 執行個體
Amazon EC2 Inf1 執行個體由多達 16 個 AWS Inferentia 加速器提供支援。相較於 Amazon EC2 執行個體,這些執行個體的輸送量最多提高 2.3 倍,每次推論成本最多降低 70%。