Bewerken

Delen via


Azure Kubernetes Service gebruiken om workloads op basis van GPU te hosten

Azure Kubernetes Service (AKS)

In dit artikel wordt beschreven hoe u efficiënt workloads uitvoert die GPU-knooppunten gebruiken in een AKS-cluster (Azure Kubernetes Service). Leer hoe u de juiste SKU kiest, GPU-knooppunten gebruikt om machine learning-modellen te trainen en GPU-knooppunten gebruikt om deducties uit te voeren op AKS.

Scenario's

GPU-workloads kunnen duur zijn om uit te voeren. Om onnodige kosten te voorkomen, moet u weten wanneer u GPU-knooppunten in uw AKS-clusters moet implementeren.

GPU's zijn speciaal ontworpen voor afbeeldingen, AI en machine learning en gespecialiseerde taken, waardoor ze ideaal zijn voor rekenintensieve workloads. CPU's beheren complexe logica en vertakkingen effectief. GPU's zijn geoptimaliseerd voor doorvoer. Ze kunnen eenvoudige rekenkundige bewerkingen en vectorbewerkingen efficiënt verwerken.

Als u wilt bepalen wanneer gpu's voor AKS-workloads moeten worden gebruikt, moet u de GPU-optimalisatie en rekenintensiteit begrijpen, maar u moet ook andere factoren overwegen. Bekijk de volgende workloadvoorbeelden die profiteren van GPU-knooppunten in een AKS-cluster om beter inzicht te krijgen in HET GPU-gebruik voor AKS-workloads.

Gegevenswetenschap en -analyse

U kunt GPU's gebruiken om het voorverwerken van gegevens, functie-engineering en modeltraining in data science-werkstromen te versnellen. Om GPU's efficiënt te gebruiken, breiden frameworks zoals RAPIDS en Dask GPU populaire bibliotheken voor gegevensverwerking uit, zoals pandas en scikit-learn.

Opensource-software (OSS)-versnelde SQL-query-engines en kolomdatabases zoals BlazingSQL en HeavyDB gebruiken GPU's om snel query's en analyses uit te voeren op grote gegevenssets.

Machine learning en deep learning

Populaire frameworks voor machine learning en deep learning, zoals TensorFlow en PyTorch , profiteren van GPU's omdat ze trainings- en deductietaken kunnen versnellen.

Deep Learning-modellen hebben complexe neurale netwerken. Parallelle verwerking op GPU's versnelt de berekeningen van het model. GPU's bieden zeer efficiënte matrixvermeniging en samenvoegingen, wat kernbewerkingen zijn in Deep Learning.

U kunt GPU's ook gebruiken om taken zoals afbeeldingsclassificatie, objectdetectie, verwerking van natuurlijke taal en spraakherkenning te versnellen.

Computer Vision en beeldverwerking

Computer Vision-taken interpreteren visuele gegevens om zinvolle informatie te extraheren. Deze taken komen steeds vaker voor in ai-toepassingen, autonome voertuigen, medische imaging, bewakingssystemen en augmented reality. GPU's gebruiken parallelle verwerking, zodat ze efficiënt grootschalige afbeeldingsgegevens en complexe berekeningen kunnen verwerken voor taken zoals objectdetectie, afbeeldingsclassificatie en functie-extractie.

Videoverwerking en streaming

Video's komen steeds vaker voor in het bedrijfsleven, dus organisaties hebben gpu-hardware nodig in plaats van CPU's. Werkbelastingen voor videoverwerking, waaronder transcodering, codering en streaming, zijn rekenintensief, met name als ze high-definition inhoud of 4K-inhoud hebben. GPU's bieden een efficiënt platform dat video-ervaringen met hoge prestaties en lage latentie biedt voor diverse toepassingen, zoals streaming sportevenementen of bedrijfsvideo's.

Knooppunten met GPU-agents bieden een rijke klantervaring in virtuele bureaubladomgevingen, omdat ze afbeeldingenintensieve taken offloaden naar de GPU. Met GPU versnelde videocoderings- en ontsleutelingsmogelijkheden kunt u realtime videostreaming, videotranscodering en videoanalyse verbeteren.

Als u computer vision-taken zoals objectdetectie, objecttracking en beeld- of videoverwerking wilt versnellen, kunt u frameworks zoals OpenCV, OpenCL, NVIDIA CUDA en NVIDIA cuDNN gebruiken.

Gamingplatforms en cloud gamingservices zijn afhankelijk van GPU's om hoogwaardige graphics en vloeiende gameplay-ervaringen te bieden.

High Performance Computing

HPC-toepassingen (High Performance Computing) vereisen vaak complexe simulaties, numerieke analyses en wetenschappelijke berekeningen. Als u deze taken snel wilt uitvoeren, kunt u GPU's gebruiken om de werkbelasting over meerdere kernen te parallelliseren. Voorbeelden van HPC-toepassingen die enorme parallelle verwerkingskracht nodig hebben, zijn wetenschappelijke simulaties, weersvoorspellingen, rekenkundige vloeistofdynamiek en moleculaire modellering. GPU's zijn ideaal voor parallelle berekeningen en versnellen HPC-workloads aanzienlijk. Wetenschappelijke en onderzoeksgestuurde inspanningen profiteren van GPU's.

Om HPC-toepassingen te versnellen, bieden frameworks zoals NVIDIA CUDA, OpenCL en OpenACC GPU-API's en bibliotheken.

Genomische analyse en bio-informatica

Werkbelastingen voor gezondheids- en levenswetenschappen, zoals genomische analyse en bio-informaticatoepassingen, komen steeds vaker voor. Deze workloads omvatten het verwerken van genetische gegevens, zoals DNA-sequenties en eiwitstructuren, en vereisen complexe algoritmen voor reeksuitlijning, variantaanroepen en genomische gegevensanalyse. GPU's versnellen genomische analysewerkstromen, zodat onderzoekers gegevens kunnen verwerken en inzichten sneller kunnen ontdekken.

Houd rekening met de kosten voordat u GPU-knooppunten implementeert in AKS-clusters. Krijg inzicht in GPU-optimalisatie voor rekenintensieve taken, zoals computer vision, videoverwerking, HPC en genomische analysetaken. Houd rekening met deze factoren wanneer u GPU-resources vergelijkt met CPU-resources in AKS-clusters.

Generatieve AI-modellen

Grote taalmodellen (LLM's), zoals OpenAI GPT, Meta Llama, Falcon of Mistral, kunnen profiteren van mogelijkheden voor parallelle verwerking van GPU's. Gebruik GPU's met deze modellen om de prestaties te verbeteren.

GPU's kunnen trainings- en deductietaken versnellen, waarbij complexe berekeningen en grote hoeveelheden gegevens nodig zijn. GPU's hebben mogelijkheden voor parallelle verwerking die de grote rekenkundige taken van een bepaald model verdelen in kleinere subtaken die gelijktijdig worden uitgevoerd. Dit proces levert snelle resultaten en verbetert de prestaties.

Taalmodellen hebben vaak complexe neurale netwerken met verschillende lagen en parameters, waardoor de rekenkracht kan toenemen. GPU's versnellen belangrijke bewerkingen in taalverwerking, zoals matrixververmenigvuldigen en samenvoegingen, waardoor training en deductietijden worden versneld.

GPU's bieden voldoende geheugencapaciteit, bandbreedte en verwerkingskracht voor het verwerken van op LLM gebaseerde toepassingen met gespreksinterfaces en het genereren van tekst. Gpu-verbeteringen bieden bijvoorbeeld snelle reactietijden voor gebruikers die communiceren met chatbots en AI-assistenten.

Niet alle workloads profiteren van agentknooppunten met GPU en in sommige gevallen zijn CPU's voldoende. Werkbelastingen die voornamelijk invoer- en uitvoergebonden zijn of waarvoor zware berekeningen niet nodig zijn, worden mogelijk niet verbeterd met GPU's.

Klantverhalen

Veel Microsoft-klanten profiteren van GPU-workloads om te innoveren voor hun klanten. Bekijk de volgende voorbeelden:

Best practices voor gpu-workloadimplementatie

AKS biedt verschillende opties voor het implementeren van pools en workloads met GPU-knooppunten en Windows-knooppunten. Volg deze aanbevolen procedures om de werking van uw GPU-workload soepel te laten verlopen.

Implementatie van Linux-werkbelasting

  • Maak een knooppuntgroep met een ondersteunde virtuele machine met GPU (VM) en installeer de NVIDIA-apparaatinvoegtoepassing handmatig om pools met GPU-knooppunten te implementeren. Deze methode biedt geen ondersteuning voor het bijwerken van een bestaande knooppuntgroep om GPU's toe te voegen.

  • Bekijk de ondersteunde VM's met GPU in Azure. U wordt aangeraden een minimale grootte van Standard_NC6s_v3 te gebruiken voor AKS-knooppuntgroepen. AKS biedt geen ondersteuning voor de NVv4-serie op basis van AMD GPU's.

  • Meer informatie over de beperkingen wanneer u een knooppuntgroep met Azure Linux GPU gebruikt. Automatische beveiligingspatches worden niet toegepast en het standaardgedrag voor het cluster is onbeheerd.

  • Gebruik Kubernetes-knooppuntkiezers, knooppuntaffiniteit, taints en toleranties wanneer u workloads plant in uw gpu-knooppuntgroepen.

Implementatie van Windows-werkbelasting

  • Maak een knooppuntgroep met een ondersteunde VM met GPU om Windows-knooppuntgroepen met GPU te implementeren. AKS installeert automatisch de stuurprogramma's en de benodigde NVIDIA-onderdelen. Deze methode biedt geen ondersteuning voor het bijwerken van een bestaande knooppuntgroep om GPU's toe te voegen.

    Wanneer u een ondersteunde VM met GPU selecteert, installeert AKS automatisch het juiste NVIDIA CUDA- of GRID-stuurprogramma. Sommige workloads zijn afhankelijk van een specifiek stuurprogramma, wat van invloed kan zijn op uw implementatie. Voor VM-grootten uit de NC-serie en ND-serie installeert AKS het CUDA-stuurprogramma. Voor VM-grootten uit de NV-serie installeert AKS het GRID-stuurprogramma.

  • Bekijk de ondersteunde VM's met GPU in Azure. U wordt aangeraden een minimale grootte van Standard_NC6s_v3 te gebruiken voor AKS-knooppuntgroepen. AKS biedt geen ondersteuning voor de NVv4-serie op basis van AMD GPU's.

  • Inzicht in de beperkingen wanneer u een Windows-knooppuntgroep gebruikt. Kubernetes-versies 1.28 en lager bieden geen ondersteuning voor Windows GPU's.

  • Gebruik Kubernetes-knooppuntkiezers, knooppuntaffiniteit, taints en toleranties wanneer u workloads plant in uw gpu-knooppuntgroepen.

Notitie

Windows GPU is een preview-functie. U moet de WindowsGPUPreview functievlag registreren.

NVIDIA GPU-operator

De NVIDIA GPU-operator is een hulpprogramma dat u kunt gebruiken om GPU-resources in Kubernetes-clusters efficiënt te implementeren en te beheren. U kunt de operator gebruiken om de installatie, configuratie en onderhoud van softwareonderdelen te automatiseren. Deze aanpak zorgt voor het optimale gebruik van NVIDIA GPU's voor veeleisende workloads, zoals AI- en machine learning-workloads.

De NVIDIA GPU-operator beheert automatisch alle NVIDIA-softwareonderdelen die u nodig hebt om GPU's te implementeren, zoals de NVIDIA-apparaatinvoegtoepassing voor Kubernetes en de NVIDIA-containerruntime. De operator installeert het stuurprogramma automatisch. Zie NVIDIA-overzicht voor meer informatie.

Als u meer controle en flexibiliteit wilt voor geavanceerde GPU-workloads, kunt u de NVIDIA GPU-operator gebruiken met uw GPU-knooppunten in AKS. De NVIDIA GPU-operator biedt geen ondersteuning voor Windows-GPU's.

Houd rekening met de volgende best practices:

  • Gebruik de NVIDIA GPU-operator om geavanceerde GPU-configuraties uit te voeren, zoals selectie van stuurprogrammaversies en tijdslicing.

  • Sla de automatische installatie van het stuurprogramma over voordat u de GPU-operator gebruikt.

  • Stel het minimumaantal in op 1 wanneer u de GPU-operator gebruikt met de automatische schaalaanpassing van clusters.

Notitie

Microsoft biedt geen ondersteuning voor het onderhoud en de compatibiliteit van de NVIDIA-stuurprogramma's als onderdeel van de implementatie van de knooppuntinstallatiekopieën wanneer u de GPU-operator gebruikt.

GPU-workloadimplementatie voor LLM's

De Kubernetes AI-toolchainoperator (KAITO) is een Kubernetes-operator die vereenvoudigt hoe u opensource-LLM's uitvoert, zoals Falcon en Llama2, in uw Kubernetes-cluster. U kunt KAITO implementeren op uw AKS-cluster als een beheerde invoegtoepassing voor AKS. KAITO gebruikt Karpenter om GPU-knooppunten automatisch in te richten en te implementeren op basis van een specificatie in de aangepaste resourcedefinitie van de werkruimte van het gekozen model. KAITO maakt de deductieserver als eindpunt voor uw LLM en vermindert de totale onboardingtijd, zodat u machine learning-bewerkingen kunt uitvoeren in plaats van infrastructuurinstallatie en onderhoud.

Kaito biedt de volgende mogelijkheden om machine learning-bewerkingen te verbeteren:

  • Containerinstallatiekopieën beheren: containerinstallatiekopieën gebruiken om LLM's te beheren. KAITO biedt een HTTP-server, zodat u een ondersteunde modelbibliotheek kunt gebruiken om deductieaanroepen uit te voeren.

  • GPU-hardwareconfiguratie: KAITO biedt vooraf ingestelde configuraties die automatisch worden toegepast op basis van modelvereisten. U hoeft implementatieparameters niet handmatig af te stemmen op gpu-hardware.

  • Automatische inrichting van GPU-knooppunten: KAITO richt GPU-knooppunten automatisch in op basis van modelvereisten en raadt lagere GPU-VM-grootten aan om gedistribueerde deductie te configureren.

  • Integratie met Microsoft-artefactregister: Als uw LLM-licentie toestaat, kan KAITO modelinstallatiekopieën hosten in het openbare artefactregister. Deze methode vereenvoudigt de toegang tot en implementatie van ondersteunde modellen. Voor opensource-modellen met MIT- of Apache2-licenties die niet door de KAITO-opslagplaats worden ondersteund, kunt u een aanvraag indienen voor onboarding van een nieuw model.

Zie de volgende bronnen voor meer informatie over KAITO:

Workload- en clusterschalen

Voor AI- en machine learning-scenario's moet u onderscheid maken tussen trainingsworkloads en deductie met vooraf getrainde modellen. Als u uw machine learning-model wilt bouwen en trainen, kunt u GPU-berekeningen gebruiken die zijn ontworpen voor deep learning en het parallelliseren van AI-berekeningen. Training vereist vaak geleidelijk schalen en de distributie van grote hoeveelheden gegevens over GPU's om een hoge nauwkeurigheid te bereiken met gegevensparallellisme.

Modelsharding is een veelgebruikte geavanceerde techniek die u kunt gebruiken om fasen van modeltraining te verdelen. U kunt GPU's toewijzen aan afzonderlijke taken en het gebruik ervan maximaliseren. GPU's kunnen HPC-workloads omhoog schalen en uitschalen, zoals VM's uit de NV-serie of de ND-serie in Azure. Deze mogelijkheid helpt bij het onderhouden van hoog resourcegebruik en het verminderen van gebruikersintervallen voor machine learning-trainingsprocessen die lang en duur zijn.

U kunt ook vooraf getrainde, opensource AI- en machine learning-modellen gebruiken voor deductie. Ga aan de slag met populaire modellen zoals Llama, Falcon of Mistral als een snellere en rendabelere optie in vergelijking met het bouwen en trainen van een LLM vanaf het begin. Zie Taalmodellen op AKS voor meer informatie.

Wanneer u vooraf getrainde modellen gebruikt voor deductie, kan het zijn dat u dynamisch en fluctuerend resourcegebruik ondervindt, afhankelijk van het aantal gegevens dat u verwerkt. Wanneer u livegegevens uitvoert via uw gekozen model, treden er soms pieken in het verkeer op, afhankelijk van de grootte en vereisten van het model. U moet een acceptabel, laag latentieniveau behouden gedurende het deductieproces. Als u uw GPU's effectief wilt gebruiken voor hoge prestaties en lage latentie, kunt u gedistribueerde deductie uitvoeren met de modellen die KAITO ondersteunt. Deze aanpak breidt uw rekenopties uit om SKU's met een of twee GPU's die elk een of twee GPU's hebben, hoge beschikbaarheid te bieden in Azure-regio's en de onderhoudskosten te verlagen.

Kostenbeheer voor GPU-workloads

GPU's kunnen de kosten verhogen. Bewaak workloads op de juiste manier om inzicht te krijgen in de GPU-kosten en om optimalisatiemogelijkheden te identificeren. Als u de zichtbaarheid van kosten wilt verhogen, kunt u de invoegtoepassing AKS-kostenanalyse gebruiken.

De volgende scenario's profiteren van zichtbaarheid van kosten.

Kosten voor VM-grootte met GPU

Selecteer de juiste VM-grootte met GPU om de kosten voor het uitvoeren van GPU's te optimaliseren. De dagelijkse kosten kunnen variëren, afhankelijk van de VM-grootte die u kiest. A100 GPU's zijn kostbaar. Vermijd deze, tenzij uw workload specifieke vereisten heeft. Een AKS-kostenanalyse toont de dagelijkse kosten voor elk van uw VM's en verdeelt de bijbehorende kosten van elke workload die wordt uitgevoerd op de VM met GPU. Gebruik deze gegevens om te evalueren of u een juiste VM-grootte hebt of als u een rendabelere optie nodig hebt.

Niet-actieve kosten

Nadat u een knooppuntgroep met GPU hebt gemaakt, worden er kosten in rekening gebracht voor de Azure-resource, zelfs als u geen GPU-workload uitvoert. Niet-actieve kosten vertegenwoordigen de kosten van de beschikbare resourcecapaciteit die niet door workloads wordt gebruikt. Deze kosten worden snel opge telt als u meerdere ongebruikte knooppunten hebt. Om hoge niet-actieve kosten te voorkomen, maakt u alleen knooppuntgroepen wanneer u uw workload uitvoert en gebruikt u methoden zoals de functie voor het stoppen van clusters wanneer u uw workload niet uitvoert. In AKS-kostenanalyse worden niet-actieve kosten voor elk van uw knooppunten weergegeven.

Overprovisioning en ondergebruik

Overprovisioning is wanneer u meer resources toewijst dan nodig is voor een pod. Overprovisioning leidt tot resourceverspilling en ondergebruik. Overtollige resources blijven gereserveerd voor het knooppunt, zelfs als u ze niet gebruikt. Gebruik de verticale automatische schaalaanpassing voor pods om nauwkeurige aanvragen en limieten in te stellen op basis van eerdere gebruikspatronen om overprovisioning te verminderen.

Ondergebruik kan optreden wanneer uw workloads geen GPU's volledig gebruiken. Overweeg geavanceerde technieken voor delen en partitioneren van GPU's. In plaats van meerdere knooppunten te gebruiken, kunt u één knooppunt gebruiken met partitionering om het GPU-gebruik te maximaliseren. Deze technieken kunnen u helpen bij het toewijzen van de juiste hoeveelheid GPU-versnelling voor elke workload, waardoor het gebruik kan worden verbeterd en de operationele kosten van de implementatie kunnen worden verlaagd.

Linux GPU-workloadimplementaties op AKS ondersteunen GPU's met meerdere exemplaren. Gebruik deze functie om een NVIDIA A100 GPU te partitioneren in maximaal zeven onafhankelijke instanties. Elk exemplaar heeft een eigen geheugen en stream multiprocessor.

NVIDIA ondersteunt andere partitioneringstechnieken, zoals tijdslicing en de implementatie van de multiprocesservice. Als u deze configuraties handmatig wilt toepassen, gebruikt u de NVIDIA GPU-operator.

Voor geavanceerde scenario's kunt u het verpakken van resourcelocaties op uw knooppunten verbeteren. U kunt scheduler-configuraties instellen en een tweede planner uitvoeren. Configureer en onderhoud een secundaire planner om strategieën voor workloadplaatsing te gebruiken die verschillen van de standaard AKS-scheduler. Zie Meerdere planners configureren in Kubernetes voor meer informatie.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen