Amazon Elastic Compute-cloud (Amazone EC2) G5-instanties zijn de eerste en enige instanties in de cloud met NVIDIA A10G Tensor Core GPU's, die u kunt gebruiken voor een breed scala aan grafisch-intensieve en machine learning (ML) use-cases. Met G5-instanties krijgen ML-klanten hoge prestaties en een kostenefficiรซnte infrastructuur om grotere en meer geavanceerde modellen te trainen en te implementeren voor natuurlijke taalverwerking (NLP), computervisie (CV) en gebruiksscenario's van de aanbevelingsengine.
Het doel van dit bericht is om de prestatievoordelen van G5-instanties voor grootschalige ML-inferentie-workloads te demonstreren. We doen dit door de prijs-prestatieverhouding (gemeten als $ per miljoen gevolgtrekkingen) voor NLP- en CV-modellen te vergelijken met G4dn-instanties. We beginnen met het beschrijven van onze benchmarking-aanpak en presenteren vervolgens doorvoer- versus latentiecurves voor batchgroottes en gegevenstypeprecisie. In vergelijking met G4dn-instanties, vinden we dat G5-instanties consistent lagere kosten per miljoen gevolgtrekkingen opleveren voor zowel volledige precisie als gemengde precisiemodi voor de NLP- en CV-modellen, terwijl een hogere doorvoer en lagere latentie wordt bereikt.
Benchmarking-aanpak
Om een โโprijs-prestatiestudie tussen G5 en G4dn te ontwikkelen, moeten we de doorvoer, latentie en kosten per miljoen gevolgtrekkingen meten als functie van de batchgrootte. We bestuderen ook de impact van volledige precisie versus gemengde precisie. Zowel de modelgrafiek als de invoer worden vรณรณr de inferentie in CUDA geladen.
Zoals weergegeven in het volgende architectuurdiagram, maken we eerst respectieve basiscontainerafbeeldingen met CUDA voor de onderliggende EC2-instantie (G4dn, G5). Om de basiscontainer-images te bouwen, beginnen we met: AWS diepe leercontainers, die voorverpakte Docker-images gebruiken om deep learning-omgevingen binnen enkele minuten te implementeren. De afbeeldingen bevatten de vereiste deep learning PyTorch-bibliotheken en -hulpmiddelen. U kunt uw eigen bibliotheken en tools toevoegen aan deze afbeeldingen voor een hogere mate van controle over monitoring, compliance en gegevensverwerking.
Vervolgens bouwen we een modelspecifieke containerafbeelding die de modelconfiguratie, modeltracering en gerelateerde code inkapselt om voorwaartse passen uit te voeren. Alle containerafbeeldingen worden geladen in Amazon ECR om horizontale schaling van deze modellen voor verschillende modelconfiguraties mogelijk te maken. We gebruiken Amazon eenvoudige opslagservice (Amazon S3) als een algemene gegevensopslag om configuratie te downloaden en benchmarkresultaten te uploaden voor samenvatting. U kunt deze architectuur gebruiken om de benchmarkresultaten opnieuw te maken en te reproduceren en opnieuw te gebruiken om verschillende modeltypen (zoals Hugging Face-modellen, PyTorch-modellen, andere aangepaste modellen) te benchmarken voor EC2-instantietypen (CPU, GPU, Inf1).
Met dit experiment opgezet, is ons doel om latentie te bestuderen als een functie van doorvoer. Deze curve is van belang voor het applicatieontwerp om te komen tot een kostenoptimale infrastructuur voor de doelapplicatie. Om dit te bereiken, simuleren we verschillende belastingen door query's van meerdere threads in een wachtrij te plaatsen en vervolgens de retourtijd voor elk voltooid verzoek te meten. De doorvoer wordt gemeten op basis van het aantal voltooide verzoeken per kloktijdeenheid. Bovendien kunt u de batchgroottes en andere variabelen, zoals sequentielengte en volledige precisie versus halve precisie, variรซren om de ontwerpruimte volledig te doorzoeken om tot indicatieve prestatiestatistieken te komen. In onze studie wordt door een parametrische reeks van batchgrootte en query's van multi-threaded clients de doorvoer versus latentiecurve bepaald. Elk verzoek kan worden gegroepeerd om ervoor te zorgen dat de versneller volledig wordt gebruikt, met name voor kleine verzoeken die mogelijk niet volledig gebruikmaken van het rekenknooppunt. U kunt deze instelling ook gebruiken om de batchgrootte aan de clientzijde te identificeren voor optimale prestaties.
Samenvattend kunnen we dit probleem wiskundig weergeven als: (doorvoer, latentie) = functie van (batchgrootte, aantal threads, precisie).
Dit betekent dat, gezien de uitputtende ruimte, het aantal experimenten groot kan zijn. Gelukkig kan elk experiment onafhankelijk worden uitgevoerd. We raden aan om AWS-batch om deze horizontaal geschaalde benchmarking in gecomprimeerde tijd uit te voeren zonder een verhoging van de benchmarkingkosten in vergelijking met een lineaire benadering van testen. De code voor het repliceren van de resultaten is aanwezig in de GitHub-repository voorbereid voor AWS Re:Invent 2021. De repository is uitgebreid om benchmarking uit te voeren op verschillende accelerators. U kunt verwijzen naar het GPU-aspect van code om de container te bouwen (Dockerfile-gpu
) en raadpleeg vervolgens de code erin Container-Root
voor specifieke voorbeelden voor BERT en ResNet50.
We hebben de voorgaande benadering gebruikt om prestatiestudies te ontwikkelen voor twee modeltypen: Bert-base-uncased (110 miljoen parameters, NLP) en ResNet50 (25.6 miljoen parameters, CV). De volgende tabel geeft een overzicht van de modeldetails.
Model type | Model | Details |
NLP | twmkn9/bert-base-uncased-squad2 | 110 miljoen parameters Sequentielengte = 128 |
CV | ResNet 50 | 25.6 miljoen parameters |
Bovendien gebruiken we om te benchmarken tussen gegevenstypen (volledige, halve precisie), torch.cuda.amp
, die handige methoden biedt voor het omgaan met gemengde precisie waarbij sommige bewerkingen de torch.float32
(float) gegevenstype en andere bewerkingen gebruiken torch.float16
(voor de helft). Operators zoals lineaire lagen en windingen zijn bijvoorbeeld veel sneller met float16, terwijl andere, zoals reducties, vaak het dynamische bereik van float32 vereisen. Automatische gemengde precisie probeert elke operator af te stemmen op het juiste gegevenstype om de runtime en geheugenvoetafdruk van het netwerk te optimaliseren.
Benchmarkresultaten
Voor een eerlijke vergelijking hebben we gekozen voor G4dn.4xgroot en G5.4xgroot instanties met vergelijkbare kenmerken, zoals vermeld in de volgende tabel.
Aanleg | GPU's | GPU-geheugen (GiB) | vCPU's | Geheugen (GiB) | Instantieopslag (GB) | Netwerkprestaties (Gbps) | EBS-bandbreedte (Gbps) | Linux on-demand prijzen (us-east-1) |
G5.4xgroot | 1 | 24 | 16 | 64 | 1x 600 NVMe-SSD | tot 25 | 8 | $ 1.204 / uur |
G4dn.4xgroot | 1 | 16 | 16 | 64 | 1x 225 NVMe-SSD | tot 25 | 4.75 | $ 1.624 / uur |
In de volgende secties vergelijken we de ML-inferentieprestaties van BERT- en RESNET50-modellen met een grid sweep-benadering voor specifieke batchgroottes (32, 16, 8, 4, 1) en de precisie van het gegevenstype (volledige en halve precisie) om tot de doorvoer te komen vs. latentiecurve. Daarnaast onderzoeken we het effect van doorvoer versus batchgrootte voor zowel volledige als halve precisie. Ten slotte meten we de kosten per miljoen gevolgtrekkingen als een functie van de batchgrootte. De geconsolideerde resultaten van deze experimenten worden later in dit bericht samengevat.
Doorvoer versus latentie
De volgende afbeeldingen vergelijken G4dn- en G5-instanties voor NLP- en CV-workloads met zowel volledige als halve precisie. In vergelijking met G4dn-instanties levert de G5-instantie een verwerkingscapaciteit van ongeveer vijf keer hoger (volledige precisie) en ongeveer 2.5 keer hoger (halve precisie) voor een BERT-basismodel, en ongeveer 2-2.5 keer hoger voor een ResNet50-model. Over het algemeen is G5 een voorkeurskeuze, met toenemende batchgroottes voor beide modellen voor zowel volledige als gemengde precisie vanuit een prestatieperspectief.
De volgende grafieken vergelijken de doorvoer en P95-latentie met volledige en halve precisie voor BERT.
De volgende grafieken vergelijken de doorvoer en P95-latentie met volledige en halve precisie voor ResNet50.
Doorvoer en latentie versus batchgrootte
De volgende grafieken tonen de doorvoer als functie van de batchgrootte. Bij lage batchgroottes functioneert de versneller niet naar zijn volle capaciteit en naarmate de batchgrootte toeneemt, neemt de doorvoer toe ten koste van latentie. De doorvoercurve asymptotisch tot een maximale waarde die een functie is van de prestatie van het gaspedaal. De curve heeft twee verschillende kenmerken: een stijgende sectie en een vlakke asymptotische sectie. Voor een bepaald model is een performante versneller (G5) in staat om de stijgende sectie uit te rekken tot grotere batchgroottes dan G4dn en asymptoot bij een hogere doorvoer. Er is ook een lineaire afweging tussen latentie en batchgrootte. Als de toepassing dus latentiegebonden is, kunnen we P95-latentie versus batchgrootte gebruiken om de optimale batchgrootte te bepalen. Als het doel echter is om de doorvoer bij de laagste latentie te maximaliseren, is het beter om de batchgrootte te selecteren die overeenkomt met de "knie" tussen de stijgende en de asymptotische secties, omdat elke verdere toename van de batchgrootte zou resulteren in dezelfde doorvoer bij een slechtere latentie. Om de beste prijs-prestatieverhouding te bereiken, gericht op een hogere doorvoer bij de laagste latentie, kunt u dit optimum beter horizontaal schalen via meerdere inferentieservers in plaats van alleen de batchgrootte te vergroten.
Kosten versus batchgrootte
In deze sectie presenteren we de vergelijkende resultaten van gevolgtrekkingskosten ($ per miljoen gevolgtrekkingen) versus de batchgrootte. Uit de volgende afbeelding kunnen we duidelijk zien dat de kosten (gemeten als $ per miljoen gevolgtrekkingen) consistent lager zijn met G5 versus G4dn beide (volledige en halve precisie).
De volgende tabel geeft een overzicht van doorvoer, latentie en kosten ($ per miljoen gevolgtrekkingen) vergelijkingen voor BERT- en RESNET50-modellen in beide precisiemodi voor specifieke batchgroottes. Ondanks hogere kosten per instantie, presteert G5 consequent beter dan G4dn op alle aspecten van inferentielatentie, doorvoer en kosten ($ per miljoen inferentie), voor alle batchgroottes. Door de verschillende statistieken te combineren tot kosten ($ per miljoen gevolgtrekkingen), is het BERT-model (32 batchgrootte, volledige precisie) met G5 3.7 keer gunstiger dan G4dn, en met ResNet50-model (32 batchgrootte, volledige precisie), is het 1.6 keer gunstiger dan G4dn.
Model | Seriegrootte | precisie |
Doorvoer (Batchgrootte X Verzoeken/sec) |
Latency (ms) |
$/miljoen Gevolgtrekkingen (op aanvraag) |
Kostenvoordeel (G5 boven G4dn) |
|||
. | . | . | G5 | G4dn | G5 | G4dn | G5 | G4dn | |
Bert-base-zonder behuizing | 32 | Vol | 723 | 154 | 44 | 208 | $0.6 | $2.2 | 3.7X |
Gemengd | 870 | 410 | 37 | 79 | $0.5 | $0.8 | 1.6X | ||
16 | Vol | 651 | 158 | 25 | 102 | $0.7 | $2.1 | 3.0X | |
Gemengd | 762 | 376 | 21 | 43 | $0.6 | $0.9 | 1.5X | ||
8 | Vol | 642 | 142 | 13 | 57 | $0.7 | $2.3 | 3.3X | |
Gemengd | 681 | 350 | 12 | 23 | $0.7 | $1.0 | 1.4X | ||
. | 1 | Vol | 160 | 116 | 6 | 9 | $2.8 | $2.9 | 1.0X |
Gemengd | 137 | 102 | 7 | 10 | $3.3 | $3.3 | 1.0X | ||
ResNet 50 | 32 | Vol | 941 | 397 | 34 | 82 | $0.5 | $0.8 | 1.6X |
Gemengd | 1533 | 851 | 21 | 38 | $0.3 | $0.4 | 1.3X | ||
16 | Vol | 888 | 384 | 18 | 42 | $0.5 | $0.9 | 1.8X | |
Gemengd | 1474 | 819 | 11 | 20 | $0.3 | $0.4 | 1.3X | ||
8 | Vol | 805 | 340 | 10 | 24 | $0.6 | $1.0 | 1.7X | |
Gemengd | 1419 | 772 | 6 | 10 | $0.3 | $0.4 | 1.3X | ||
. | 1 | Vol | 202 | 164 | 5 | 6 | $2.2 | $2 | 0.9X |
Gemengd | 196 | 180 | 5 | 6 | $2.3 | $1.9 | 0.8X |
Aanvullende inferentiebenchmarks
Naast de BERT-basis- en ResNet50-resultaten in de voorgaande secties, presenteren we aanvullende benchmarkingresultaten voor andere veelgebruikte grote NLP- en CV-modellen in PyTorch. Het prestatievoordeel van G5 ten opzichte van G4dn is gepresenteerd voor BERT Large-modellen met verschillende precisie en Yolo-v5-modellen voor verschillende formaten. Voor de code voor het repliceren van de benchmark, zie: NVIDIA Deep Learning-voorbeelden voor Tensor-kernen. Deze resultaten tonen het voordeel van het gebruik van G5 ten opzichte van G4dn voor een breed scala aan inferentietaken die verschillende modeltypen omvatten.
Model | precisie | Seriegrootte | Sequentielengte: | Doorvoer (verzonden/sec) | Doorvoer: G4dn | Versnelling via G4dn |
BERT-groot | FP16 | 1 | 128 | 93.5 | 40.31 | 2.3 |
BERT-groot | FP16 | 4 | 128 | 264.2 | 87.4 | 3.0 |
BERT-groot | FP16 | 8 | 128 | 392.1 | 107.5 | 3.6 |
BERT-groot | FP32 | 1 | 128 | 68.4 | 22.67 | 3.0 |
BERT-groot | 4 | 128 | 118.5 | 32.21 | 3.7 | |
BERT-groot | 8 | 128 | 132.4 | 34.67 | 3.8 |
Model | GFLOPS | Aantal parameters | Voorbewerking (ms) | Inferentie (ms) | Inferentie (Non-max-onderdrukking) (NMS/beeld) |
YOLOv5s | 16.5 | 7.2M | 0.2 | 3.6 | 4.5 |
YOLv5m | 49.1 | 21M | 0.2 | 6.5 | 4.5 |
YOLOv5l | 109.3 | 46M | 0.2 | 9.1 | 3.5 |
YOLOv5x | 205.9 | 86M | 0.2 | 14.4 | 1.3 |
Conclusie
In dit bericht hebben we laten zien dat voor gevolgtrekkingen met grote NLP- en CV PyTorch-modellen, EC2 G5-instanties een betere keuze zijn in vergelijking met G4dn-instanties. Hoewel de on-demand uurkosten voor G5-instanties hoger zijn dan die van G4dn-instanties, kunnen de hogere prestaties 2-5 keer de doorvoer bereiken bij elke precisie voor NLP- en CV-modellen, waardoor de kosten per miljoen gevolgtrekkingen 1.5-3.5 keer gunstiger zijn dan G4dn-instanties. Zelfs voor latency-gebonden toepassingen is G5 2.5-5 keer beter dan G4dn voor NLP- en CV-modellen.
Samenvattend zijn AWS G5-instanties een uitstekende keuze voor uw behoeften op het gebied van gevolgtrekking, zowel vanuit het oogpunt van prestaties als kosten per gevolgtrekking. De universaliteit van het CUDA-framework en de schaal en diepte van de G5-instantiepool op AWS biedt u de unieke mogelijkheid om op schaal gevolgtrekkingen uit te voeren.
Over de auteurs
Ankur Srivastava is Sr. Solutions Architect in het ML Frameworks-team. Hij richt zich op het helpen van klanten met zelfbeheerde gedistribueerde training en inferentie op schaal op AWS. Zijn ervaring omvat industrieel voorspellend onderhoud, digitale tweelingen, probabilistische ontwerpoptimalisatie en heeft zijn doctoraatsstudies van Werktuigbouwkunde aan de Rice University en postdoctoraal onderzoek van het Massachusetts Institute of Technology afgerond.
Soendar Ranganathan is het hoofd van Business Development, ML Frameworks in het Amazon EC2-team. Hij richt zich op grootschalige ML-workloads voor AWS-services zoals Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch en Amazon SageMaker. Zijn ervaring omvat leidinggevende functies in productbeheer en productontwikkeling bij NetApp, Micron Technology, Qualcomm en Mentor Graphics.
Mahadevan Balasubramaniam is een Principal Solutions Architect voor Autonomous Computing met bijna 20 jaar ervaring op het gebied van door fysica doordrenkt deep learning, het bouwen en implementeren van digitale tweelingen voor industriรซle systemen op grote schaal. Mahadevan behaalde zijn doctoraat in werktuigbouwkunde aan het Massachusetts Institute of Technology en heeft meer dan 25 patenten en publicaties op zijn naam staan.
Amr Ragab is een Principal Solutions Architect voor EC2 Accelerated Platforms voor AWS, toegewijd aan het helpen van klanten bij het op grote schaal uitvoeren van computationele workloads. In zijn vrije tijd houdt hij van reizen en het vinden van nieuwe manieren om technologie te integreren in het dagelijks leven.
- Gevorderd (300)
- AI
- ai kunst
- ai kunst generator
- je hebt een robot
- Amazon EC2
- kunstmatige intelligentie
- certificering van kunstmatige intelligentie
- kunstmatige intelligentie in het bankwezen
- kunstmatige intelligentie robot
- kunstmatige intelligentie robots
- kunstmatige intelligentiesoftware
- AWS-machine learning
- blockchain
- blockchain conferentie ai
- vindingrijk
- conversatie kunstmatige intelligentie
- crypto conferentie ai
- van dall
- diepgaand leren
- google ai
- machine learning
- Plato
- plato ai
- Plato gegevensintelligentie
- Plato-spel
- PlatoData
- platogamen
- schaal ai
- syntaxis
- zephyrnet