Zuweisen von Rechenkontingenten in Amazon SageMaker HyperPod Task Governance
Clusteradministratoren können entscheiden, wie die Organisation gekaufte Rechenleistung verwendet. Dadurch werden Verschwendung und ungenutzte Ressourcen reduziert. Sie können Rechenquoten so zuweisen, dass sich Teams ungenutzte Ressourcen gegenseitig ausleihen können. Die Berechnung der Kontingentzuweisung in HyperPod-Aufgaben-Governance ermöglicht es Administratoren, Ressourcen auf Instance-Ebene und auf detaillierterer Ressourcenebene zuzuweisen. Diese Funktion ermöglicht ein flexibles und effizientes Ressourcenmanagement für Teams, indem sie eine detaillierte Kontrolle über einzelne Rechenressourcen ermöglicht, anstatt ganze Instance-Zuweisungen erforderlich zu machen. Durch die Zuweisung auf granularer Ebene werden Ineffizienzen der herkömmlichen Zuweisung auf Instance-Ebene vermieden. Durch diesen Ansatz können Sie die Ressourcennutzung optimieren und ungenutzte Rechenleistung reduzieren.
Die Compute-Kontingentzuweisung unterstützt drei Arten der Ressourcenzuweisung: Beschleuniger, vCPU und Arbeitsspeicher. Beschleuniger sind Komponenten in beschleunigten ComputerInstances, die Funktionen wie Berechnungen von Gleitkommazahlen, Grafikverarbeitung oder Mustererkennung in Daten ausführen. Zu den Beschleunigern gehören GPUs, Trainium-Beschleuniger und Neuron-Kerne. Bei der gemeinsamen Nutzung von GPUs durch mehrere Teams können verschiedene Teams spezifische GPU-Zuweisungen vom gleichen Instance-Typ erhalten, wodurch die Auslastung der Beschleuniger-Hardware maximiert wird. Für speicherintensive Workloads, die zusätzlichen RAM für die Datenvorverarbeitung oder für Modell-Caching-Szenarien benötigen, können Sie Speicherkontingente zuweisen, die über das standardmäßige GPU-Speicherverhältnis hinausgehen. Für CPU-intensive Vorverarbeitungsaufgaben, die neben dem GPU-Training auch erhebliche CPU-Ressourcen benötigen, können Sie eine unabhängige CPU-Ressourcenzuweisung zuweisen.
Sobald Sie einen Wert angegeben haben, berechnet HyperPod Task Governance das Verhältnis anhand der Formel der zugewiesenen Ressource geteilt durch die Gesamtmenge der in der Instance verfügbaren Ressourcen. HyperPOD Task Governance verwendet dann dieses Verhältnis, um Standardzuweisungen auf andere Ressourcen anzuwenden. Sie können diese Standardwerte jedoch überschreiben und sie an Ihren Anwendungsfall anpassen. Im Folgenden finden Sie Beispielszenarien, in denen gezeigt wird, wie HyperPod Task Governance Ressourcen auf der Grundlage Ihrer Werte zuweist:
-
Nur Beschleuniger angegeben — HyperPod Task Governance wendet das Standardverhältnis auf vCPU und Arbeitsspeicher basierend auf den Beschleunigerwerten an.
-
Nur vCPU angegeben — HyperPod Task Governance berechnet das Verhältnis und wendet es auf den Arbeitsspeicher an. Beschleuniger sind auf 0 gesetzt.
-
Nur Arbeitsspeicher angegeben — HyperPod Task Governance berechnet das Verhältnis und wendet es auf vCPU an, da Rechenleistung erforderlich ist, um speicherspezifische Workloads auszuführen. Beschleuniger sind auf 0 gesetzt.
Um die Quotenzuweisung programmgesteuert zu steuern, können Sie das ComputeQuotaResourceConfig-Objekt verwenden und Ihre Zuweisungen in Ganzzahlen angeben.
{ "ComputeQuotaConfig": { "ComputeQuotaResources": [{ "InstanceType": "ml.g5.24xlarge", "Accelerators": "16", "vCpu": "200.0", "MemoryInGiB": "2.0" }] } }
Verwenden Sie den Vorgang DescribeComputeQuota, um alle zugewiesenen Zuweisungen, einschließlich der Standardzuweisungen, anzuzeigen. Verwenden Sie den Vorgang updateComputeQuota, um Ihre Zuweisungen zu aktualisieren.
Sie können auch die HyperPod-CLI verwenden, um Rechenkontingente zuzuweisen. Weitere Informationen zur HyperPod-CLI finden Sie unter Ausführung von Jobs auf SageMaker HyperPod-Clustern, orchestriert von Amazon EKS. Das folgende Beispiel veranschaulicht, wie Sie Rechenkontingente mit der HyperPod CLI festlegen.
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \ --image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \ --pull-policy "Always" \ --tasks-per-node 1 \ --max-retry 1 \ --priority high-priority \ --namespace hyperpod-ns-team-name\ --queue-name hyperpod-ns-team-name-localqueue \ --instance-typesample-instance-type\ --accelerators 1 \ --vcpu 3 \ --memory 1 \ --accelerators-limit 1 \ --vcpu-limit 4 \ --memory-limit 2
Gehen Sie folgendermaßen vor, um Kontingente mithilfe der AWS Konsole zuzuweisen.
-
Öffnen Sie die Konsole von Amazon SageMaker AI unter https://console.aws.amazon.com/sagemaker/
. -
Wählen Sie unter HyperPod-Cluster die Option Clusterverwaltung aus.
-
Wählen Sie unter Zuordnungen berechnen die Option Create aus.
-
Wenn Sie noch keine Instances haben, wählen Sie Allokation hinzufügen aus, um eine Instance hinzuzufügen.
-
Wählen Sie unter Zuordnungen aus, ob die Zuweisung nach Instances oder einzelnen Ressourcen erfolgen soll. Wenn Sie nach einzelnen Ressourcen zuweisen, weist SageMaker AI anderen Ressourcen automatisch Allokationen in dem von Ihnen ausgewählten Verhältnis zu. Um diese verhältnisbasierte Zuordnung zu überschreiben, verwenden Sie den entsprechenden Schalter, um diese Berechnung zu überschreiben.
-
Wiederholen Sie die Schritte 4 und 5, um weitere Instances zu konfigurieren.
Nachdem Sie das Rechenkontingent zugewiesen haben, können Sie Jobs über die HyperPod-CLI oder einreichen. kubectl HyperPod plant Workloads effizient auf der Grundlage des verfügbaren Kontingents.