Allocazione della quota di calcolo nella governance delle attività di Amazon SageMaker HyperPod - Amazon SageMaker AI

Allocazione della quota di calcolo nella governance delle attività di Amazon SageMaker HyperPod

Gli amministratori del cluster possono decidere le modalità di utilizzo delle risorse di calcolo acquistate dall’organizzazione. In questo modo si riducono gli sprechi e le risorse inattive. Puoi allocare una quota di calcolo in modo tale che i team possano prendere in prestito le risorse inutilizzate gli uni dagli altri. L’allocazione delle quote di calcolo nella governance delle attività di HyperPod consente agli amministratori di allocare le risorse a livello di istanza e a un livello di risorsa più granulare. Questa funzionalità offre una gestione flessibile ed efficiente delle risorse per i team, consentendo un controllo granulare sulle singole risorse di calcolo, invece di richiedere l’allocazione di intere istanze. L’allocazione a livello granulare elimina le inefficienze della tradizionale allocazione a livello di istanza. Grazie a questo approccio, puoi ottimizzare l’utilizzo delle risorse e ridurre le risorse di calcolo inattive.

L’allocazione delle quote di calcolo supporta tre tipi di allocazione delle risorse: acceleratori, vCPU e memoria. Gli acceleratori sono componenti delle istanze a calcolo accelerato che eseguono funzioni, ad esempio calcoli di numeri in virgola mobile, elaborazione grafica o corrispondenza di modelli di dati. Gli acceleratori includono GPU, acceleratori Trainium e core Neuron. Per la condivisione di GPU tra più team, team diversi possono ricevere allocazioni della GPU specifiche dallo stesso tipo di istanza, massimizzando l’utilizzo dell’hardware dell’acceleratore. Per i carichi di lavoro a uso intensivo di memoria che richiedono RAM aggiuntiva per la pre-elaborazione dei dati o gli scenari di caching dei modelli, puoi allocare una quota di memoria superiore al rapporto predefinito GPU/memoria. Per le attività di pre-elaborazione che richiedono ingenti risorse di CPU, oltre all’addestramento della GPU, puoi allocare risorse della CPU indipendenti.

Una volta fornito un valore, la governance delle attività di HyperPod calcola il rapporto utilizzando la formula risorsa allocata divisa per la quantità totale di risorse disponibili nell’istanza. La governance delle attività di HyperPod utilizza quindi questo rapporto per applicare le allocazioni predefinite ad altre risorse, ma puoi comunque sostituire queste impostazioni predefinite e personalizzarle in base al tuo caso d’uso. Di seguito sono riportati alcuni esempi di come la governance delle attività di HyperPod alloca le risorse in base ai tuoi valori:

  • Solo acceleratore specificato: la governance delle attività di HyperPod applica il rapporto predefinito a vCPU e memoria in base ai valori dell’acceleratore.

  • Solo vCPU specificata: la governance delle attività di HyperPod calcola il rapporto e lo applica alla memoria. Gli acceleratori sono impostati su 0.

  • Solo memoria specificata: la governance delle attività di HyperPod calcola il rapporto e lo applica alla vCPU perché le risorse di calcolo sono necessarie per eseguire i carichi di lavoro specificati dalla memoria. Gli acceleratori sono impostati su 0.

Per controllare in modo programmatico l’allocazione delle quote, puoi utilizzare l’oggetto ComputeQuotaResourceConfig e specificare le allocazioni in numeri interi.

{ "ComputeQuotaConfig": { "ComputeQuotaResources": [{ "InstanceType": "ml.g5.24xlarge", "Accelerators": "16", "vCpu": "200.0", "MemoryInGiB": "2.0" }] } }

Per visualizzare tutte le allocazioni eseguite, incluse quelle predefinite, utilizza l’operazione DescribeComputeQuota. Per aggiornare le allocazioni, utilizza l’operazione UpdateComputeQuota.

Puoi anche utilizzare la CLI di HyperPod per allocare le quote di calcolo. Per ulteriori informazioni sulla CLI di HyperPod, consulta Esecuzione di processi su cluster SageMaker HyperPod orchestrati da Amazon EKS. L’esempio seguente mostra come impostare le quote di calcolo con la CLI di HyperPod.

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-type sample-instance-type \ --accelerators 1 \ --vcpu 3 \ --memory 1 \ --accelerators-limit 1 \ --vcpu-limit 4 \ --memory-limit 2

Segui questa procedura per allocare le quote con la console AWS.

  1. Apri la console di Amazon SageMaker AI all’indirizzo https://console.aws.amazon.com/sagemaker/.

  2. In Cluster HyperPod, scegli Gestione dei cluster.

  3. In Allocazioni delle risorse di calcolo, scegli Crea.

  4. Se non sono ancora presenti istanze, scegli Aggiungi allocazione per aggiungere un’istanza.

  5. In Allocazioni, scegli di allocare in base alle istanze o alle singole risorse. Se scegli l’allocazione in base alle singole risorse, SageMaker AI assegna automaticamente le allocazioni alle altre risorse in base al rapporto scelto. Per sostituire questa allocazione delle risorse di calcolo basata sul rapporto, utilizza l’interruttore corrispondente.

  6. Ripeti le fasi 4 e 5 per configurare istanze aggiuntive.

Dopo aver allocato la quota di calcolo, puoi inviare i processi tramite la CLI di HyperPod o kubectl. HyperPod pianifica in modo efficiente i carichi di lavoro in base alla quota disponibile.