AWS Neuron
AWS Neuron ist ein SDK mit einem Compiler, einer Laufzeitumgebung und Profiling-Tools, die eine leistungsstarke und kostengünstige Beschleunigung von Deep Learning (DL) ermöglichen. Es unterstützt Hochleistungstraining auf AWS Trainium-basierten Amazon Elastic Compute Cloud (Amazon EC2)-Trn1-Instances. Für die Modellbereitstellung unterstützt es hochleistungsfähige und latenzarme Inferenzen auf AWS-Inferentia-basierten Amazon-EC2-Inf1-Instances und AWS-Inferentia2-basierten Amazon-EC2-Inf2-Instances. Mit Neuron können Sie beliebte Frameworks wie TensorFlow und PyTorch verwenden und Modelle für Machine Learning (ML) auf Amazon-EC2-Trn1-, Inf1- und Inf2-Instances trainieren und bereitstellen. Neuron ist so konzipiert, dass Codeänderungen und die Bindung an anbieterspezifische Lösungen minimiert werden.
Vorteile
Erstellung mit nativer Unterstützung für ML-Frameworks und -Bibliotheken
Das AWS Neuron SDK, das Inferentia- und Trainium-Beschleuniger unterstützt, integriert PyTorch und TensorFlow nativ. Diese Integration stellt sicher, dass Sie Ihre bestehenden Arbeitsabläufe in diesen beliebten Frameworks weiter nutzen und mit nur wenigen Zeilen Codeänderungen loslegen können. Für das verteilte Modelltraining unterstützt das Neuron SDK Bibliotheken wie Megatron-LM und PyTorch Fully Sharded Data Parallel (FSDP).
Optimieren Sie die Leistung für Training und Inferenz
Das AWS Neuron SDK ermöglicht einen effizienten Programmier- und Laufzeitzugriff auf die Trainium- und Inferentia-Beschleuniger. Es unterstützt eine breite Palette von Datentypen, neue Rundungsmodi, Kontrollfluss und benutzerdefinierte Operatoren, damit Sie die optimale Konfiguration für Ihre DL-Workloads wählen können. Für verteiltes Training ermöglicht Neuron die effiziente Nutzung von Trn1-UltraClustern mit eng gekoppelter Unterstützung für kollektive Rechenoperationen über Elastic Fabric Adapter (EFA)-Netzwerke.
Erweitertes Debugging und Überwachung erhalten
Neuron bietet Just-In-Time-Kompilierung (JIT), um die Arbeitsabläufe für Entwickler zu beschleunigen. Es bietet Debugging- und Profiling-Tools mit der Unterstützung des TensorBoard-Plugins. Neuron unterstützt den Eager-Debug-Modus, mit dem Sie einfach durch den Code schreiten und die Operatoren einzeln auswerten können. Sie können die Neuron-Hilfstools verwenden, um die Best Practices für das Modell-Onboarding und die Leistungsoptimierung zu befolgen. Neuron enthält zudem Tools, die Einblicke in die Leistung und Nutzung bieten.
Einfache Integration mit weiteren AWS-Services
AWS Deep Learning AMIs und AWS Deep Learning Containers werden mit AWS Neuron vorkonfiguriert geliefert. Wenn Sie containerisierte Anwendungen verwenden, können Sie Neuron mithilfe von Amazon Elastic Container Service (ECS), Amazon Elastic Kubernetes Service (EKS) oder Ihrer bevorzugten nativen Container-Engine bereitstellen. Neuron unterstützt auch Amazon SageMaker, mit dem Datenwissenschaftler und Entwickler Modelle für ML erstellen, trainieren und bereitstellen können.
Funktionen
Intelligente Partitionierung
Um die Gesamtleistung zu erhöhen, optimiert AWS Neuron automatisch die Berechnung von neuronalen Netzen, um rechenintensive Aufgaben auf Trainium- und Inferentia-Beschleunigern und andere Aufgaben auf der CPU auszuführen.
Große Auswahl an ML-Datentypen
AWS Neuron unterstützt FP32, TF32, BF16, FP16, INT8 und das neue konfigurierbare FP8. Die Verwendung der richtigen Datentypen für Ihre Workloads hilft Ihnen, die Leistung zu optimieren und gleichzeitig Genauigkeitsziele zu erreichen.
FP32 Autocasting
AWS Neuron übernimmt hochpräzise FP32-Modelle und wandelt sie automatisch in Datentypen mit geringerer Genauigkeit um, wobei Genauigkeit und Leistung optimiert werden. Autocasting verkürzt die Zeit bis zur Markteinführung, da keine Nachschulung mit geringerer Präzision erforderlich ist.
Native Unterstützung für stochastisches Runden
AWS Neuron ermöglicht das hardwarebeschleunigte stochastische Runden. Das stochastische Runden ermöglicht das Training mit BF16-Geschwindigkeit, mit nahezu FP32-Genauigkeit beim Auto-Casting von FP32 nach BF16.
NeuronCore-Pipeline
Die NeuronCore-Pipeline ermöglicht Modellparallelität mit hohem Durchsatz für latenzempfindliche Anwendungen, wie z. B. die Verarbeitung natürlicher Sprache. Die Pipeline ermöglicht dies, indem sie einen Berechnungsgraphen auf mehrere NeuronCores aufteilt, die Modellparameter im On-Chip-Speicher der einzelnen Kerne zwischenspeichert. Anschließend werden die Trainings- und Inferenzaufgaben in einer Pipeline auf die Kerne verteilt.
Kollektive Kommunikationsvorgänge
AWS Neuron unterstützt die parallele Ausführung verschiedener kollektiver Kommunikations- und Rechenoperationen auf dedizierter Hardware. Dies sorgt für geringere Latenzzeiten und eine höhere Gesamtleistung bei verteilten Arbeitslasten.
Benutzerdefinierte Operatoren
AWS Neuron unterstützt benutzerdefinierte Operatoren. Sie können neue benutzerdefinierte Operatoren in C++ schreiben und Neuron wird diese auf Trainium- und Inferentia2-Inline-Single-Instruction-Multiple-Data-Kernen (SIMD) ausführen.
Eager-Debug-Modus
AWS Neuron unterstützt den Eager-Debug-Modus, mit dem Sie einfach durch den Code schreiten und die Operatoren einzeln auswerten können.
Funktionsweise
Vergrößern und Bildbeschreibung lesenAWS-Machine-Learning-Beschleuniger
AWS-Trainium-Beschleuniger
AWS Trainium ist ein Trainings-Beschleuniger für ML, den AWS speziell für leistungsstarke und kostengünstige DL-Trainings entwickelt hat. Jeder AWS-Trainium-Beschleuniger verfügt über zwei NeuronCores der zweiten Generation und unterstützt die Datentypen FP32, TF32, BF16, FP16 und INT8 sowie den konfigurierbaren FP8 (cFP8), um das richtige Gleichgewicht zwischen Reichweite und Präzision zu erreichen. Zur Unterstützung einer effizienten Daten- und Modellparallelität verfügt jeder Trainium-Beschleuniger über 32 GB Speicher mit hoher Bandbreite, liefert bis zu 210 TFLOPS an FP16/BF16-Rechenleistung und verfügt über NeuronLink, eine instanceinterne, ultraschnelle, nicht blockierende Verbindungstechnologie.
AWS-Inferentia-Beschleuniger
AWS Inferentia und AWS Inferentia2 sind Inferenzbeschleuniger für Machine Learning, die AWS entwickelt und gebaut hat, um leistungsstarke und kostengünstige Inferenzen zu liefern. Jeder AWS-Inferentia-Beschleuniger hat vier NeuronCores der ersten Generation und unterstützt die Datentypen FP16, BF16 und INT8. Jeder AWS-Inferentia2-Beschleuniger verfügt über zwei NeuronCores der zweiten Generation und bietet außerdem Unterstützung für FP32, TF32 und die neuen konfigurierbaren FP8-Datentypen (cFP8).
Amazon EC2-G4-Instances
Amazon EC2-Trn1-Instances
Amazon-EC2-Trn1-Instances, die von dem AWS-Trainium-Beschleuniger angetrieben werden, sind speziell für Hochleistungs-Training für DL konzipiert. Sie bieten Einsparungen von bis zu 50 % der Kosten im Vergleich zu vergleichbaren Amazon-EC2-Instances. Trn1-Instances verfügen über bis zu 16 AWS Trainium-Beschleuniger und unterstützen bis zu 1 600 Gbps (Trn1n) Elastic Fabric Adapter (EFA)-Netzwerkbandbreite der zweiten Generation.
Amazon-EC2-Inf2-Instances
Amazon-EC2-Inf2-Instances werden von bis zu 12 AWS-Inferentia2-Beschleunigern angetrieben und bieten im Vergleich zu Inf1-Instances einen bis zu 4x höheren Durchsatz und eine bis zu 10x niedrigere Latenz. Inf2-Instances sind die ersten für Inferenzen optimierten Instances in Amazon EC2, die skalierbare verteilte Inferenzen mit Ultra-High-Speed-Konnektivität zwischen Beschleunigern unterstützen.
Amazon EC2-Inf1-Instances
Amazon-EC2-Inf1-Instances werden von bis zu 16 AWS-Inferentia-Beschleunigern betrieben. Diese Instances liefern einen bis zu 2,3-fach höheren Durchsatz und bis zu 70 % niedrigere Kosten pro Inferenz als vergleichbare Amazon-EC2-Instances.
Erste Schritte
Weitere Hilfe erhalten Sie im Entwicklerforum, das auch über die AWS-Managementkonsole zugänglich ist.