Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen

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.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De volgende grafieken vergelijken de doorvoer en P95-latentie met volledige en halve precisie voor ResNet50.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

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.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

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).

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

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

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.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.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.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.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.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.

Bereik een vier keer hogere ML-inferentiedoorvoer tegen drie keer lagere kosten per inferentie met Amazon EC2 G5-instanties voor NLP- en CV PyTorch-modellen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. 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.

Tijdstempel:

Meer van AWS-machine learning