Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller

Amazon Elastic Compute Cloud (Amazon EC2) G5-instanser är de första och enda instanserna i molnet som har NVIDIA A10G Tensor Core GPU:er, som du kan använda för ett brett utbud av grafikintensiva och maskininlärningsfall (ML). Med G5-instanser får ML-kunder hög prestanda och en kostnadseffektiv infrastruktur för att träna och distribuera större och mer sofistikerade modeller för naturlig språkbehandling (NLP), datorseende (CV) och användningsfall för rekommendationsmotorer.

Syftet med det här inlägget är att visa upp prestandafördelarna med G5-instanser för storskaliga ML-inferensarbetsbelastningar. Vi gör detta genom att jämföra pris-prestanda (mätt som $ per miljon slutsatser) för NLP- och CV-modeller med G4dn-instanser. Vi börjar med att beskriva vår benchmarking-metod och presenterar sedan genomströmnings- kontra latenskurvor över batchstorlekar och datatypsprecision. I jämförelse med G4dn-instanser finner vi att G5-instanser ger konsekvent lägre kostnad per miljon slutsatser för både full precision och blandade precisionslägen för NLP- och CV-modellerna samtidigt som de uppnår högre genomströmning och lägre latens.

Benchmarking tillvägagångssätt

För att utveckla en pris-prestandastudie mellan G5 och G4dn måste vi mäta genomströmning, latens och kostnad per miljon slutsatser som en funktion av batchstorlek. Vi studerar också effekten av full precision kontra blandad precision. Både modelldiagrammet och ingångarna laddas in i CUDA före slutledning.

Som visas i följande arkitekturdiagram skapar vi först respektive basbehållarbilder med CUDA för den underliggande EC2-instansen (G4dn, G5). För att bygga basbehållarbilderna börjar vi med AWS Deep Learning-behållare, som använder förpackade Docker-avbildningar för att distribuera djupa inlärningsmiljöer på några minuter. Bilderna innehåller de nödvändiga PyTorch-biblioteken och verktygen för djupinlärning. Du kan lägga till dina egna bibliotek och verktyg ovanpå dessa bilder för en högre grad av kontroll över övervakning, efterlevnad och databehandling.

Sedan bygger vi en modellspecifik containerbild som kapslar in modellkonfigurationen, modellspårningen och relaterad kod för att köra framåtpassningar. Alla containerbilder laddas in i Amazon ECR för att möjliggöra horisontell skalning av dessa modeller för olika modellkonfigurationer. Vi använder Amazon enkel lagringstjänst (Amazon S3) som ett vanligt datalager för att ladda ner konfiguration och ladda upp benchmarkresultat för sammanfattning. Du kan använda den här arkitekturen för att återskapa och reproducera benchmarkresultaten och återanvända för att benchmarka olika modelltyper (som Hugging Face-modeller, PyTorch-modeller, andra anpassade modeller) över EC2-instanstyper (CPU, GPU, Inf1).

Med detta experiment inrättat är vårt mål att studera latens som en funktion av genomströmning. Denna kurva är viktig för applikationsdesign för att komma fram till en kostnadsoptimal infrastruktur för målapplikationen. För att uppnå detta simulerar vi olika belastningar genom att köa frågor från flera trådar och sedan mäta tur och retur-tiden för varje avslutad begäran. Genomströmningen mäts baserat på antalet slutförda förfrågningar per tidsenhet. Dessutom kan du variera batchstorlekarna och andra variabler som sekvenslängd och full precision kontra halv precision för att heltäckande sopa designutrymmet för att komma fram till indikativa prestandamått. I vår studie, genom ett parametriskt svep av batchstorlek och frågor från flertrådiga klienter, bestäms kurvan för genomströmning och latens. Varje begäran kan grupperas för att säkerställa fullt utnyttjande av acceleratorn, särskilt för små förfrågningar som kanske inte utnyttjar beräkningsnoden fullt ut. Du kan också använda den här inställningen för att identifiera batchstorleken på klientsidan för optimal prestanda.

Sammanfattningsvis kan vi representera detta problem matematiskt som: (Throughput, Latency) = funktion av (Batchstorlek, Antal trådar, Precision).

Detta innebär, med tanke på det uttömmande utrymmet, att antalet experiment kan vara stort. Lyckligtvis kan varje experiment köras oberoende. Vi rekommenderar att du använder AWS-batch att utföra denna horisontellt skalade benchmarking i komprimerad tid utan en ökning av benchmarkingkostnaden jämfört med en linjär metod för testning. Koden för att replikera resultaten finns i GitHub repository förberedd för AWS Re:Invent 2021. Förvaret är omfattande för att utföra benchmarking på olika acceleratorer. Du kan referera till GPU-aspekten av koden för att bygga behållaren (Dockerfile-gpu) och hänvisa sedan till koden inuti Container-Root för specifika exempel för BERT och ResNet50.

Vi använde det föregående tillvägagångssättet för att utveckla prestationsstudier över två modelltyper: Bert-base-uncased (110 miljoner parametrar, NLP) och ResNet50 (25.6 miljoner parametrar, CV). Följande tabell sammanfattar modelldetaljerna.

Modell typ Modell Detaljer
NLP twmkn9/bert-base-uncased-squad2 110 miljoner parametrar Sekvenslängd = 128
CV ResNet50 25.6 miljoner parametrar

Dessutom använder vi för att jämföra över datatyper (full, halv precision). torch.cuda.amp, som ger bekväma metoder för att hantera blandad precision där vissa operationer använder torch.float32 (flytande) datatyp och andra operationer torch.float16 (halv). Till exempel är operatorer som linjära lager och faltningar mycket snabbare med float16, medan andra som reduktioner ofta kräver det dynamiska omfånget för float32. Automatisk blandad precision försöker matcha varje operatör till dess lämpliga datatyp för att optimera nätverkets körtid och minnesfotavtryck.

Benchmarking resultat

För en rättvis jämförelse valde vi G4dn.4xlarge och G5.4xlarge instanser med liknande attribut, enligt listan i följande tabell.

Exempel GPUs GPU-minne (GiB) vCPU: er Minne (GiB) Instanslagring (GB) Nätverksprestanda (Gbps) EBS bandbredd (Gbps) Linux On-Demand-prissättning (us-east-1)
G5.4xlarge 1 24 16 64 1x 600 NVMe SSD upp till 25 8 $ 1.204 / timme
G4dn.4xlarge 1 16 16 64 1x 225 NVMe SSD upp till 25 4.75 $ 1.624 / timme

I följande avsnitt jämför vi ML-inferensprestanda för BERT- och RESNET50-modeller med en grid sweep-metod för specifika batchstorlekar (32, 16, 8, 4, 1) och datatypsprecision (full och halv precision) för att komma fram till genomströmningen vs. latenskurva. Dessutom undersöker vi effekten av genomströmning kontra batchstorlek för både full och halv precision. Slutligen mäter vi kostnad per miljon slutsatser som en funktion av batchstorlek. De konsoliderade resultaten över dessa experiment sammanfattas senare i det här inlägget.

Genomströmning kontra latens

Följande figurer jämför G4dn- och G5-instanser för NLP- och CV-arbetsbelastningar med både full och halv precision. I jämförelse med G4dn-instanser levererar G5-instansen en genomströmning på cirka fem gånger högre (full precision) och cirka 2.5 gånger högre (halv precision) för en BERT-basmodell och cirka 2–2.5 gånger högre för en ResNet50-modell. Sammantaget är G5 ett föredraget val, med ökande batchstorlekar för båda modellerna för både full och blandad precision ur ett prestandaperspektiv.

Följande grafer jämför genomströmning och P95-latens med full och halv precision för BERT.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Följande diagram jämför genomströmning och P95-latens med full och halv precision för ResNet50.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Genomströmning och latens kontra batchstorlek

Följande diagram visar genomströmningen som en funktion av batchstorleken. Vid låga batchstorlekar fungerar inte acceleratorn till sin fulla kapacitet och när batchstorleken ökar ökar genomströmningen på bekostnad av latens. Genomströmningskurvan asymptomer till ett maximalt värde som är en funktion av acceleratorns prestanda. Kurvan har två distinkta särdrag: en stigande sektion och en platt asymptotisk sektion. För en given modell kan en presterande accelerator (G5) sträcka den stigande sektionen till högre batchstorlekar än G4dn och asymptotera vid en högre genomströmning. Det finns också en linjär kompromiss mellan latens och batchstorlek. Därför, om applikationen är latensbunden, kan vi använda P95 latens kontra batchstorlek för att bestämma den optimala batchstorleken. Men om målet är att maximera genomströmningen vid lägsta latens, är det bättre att välja batchstorleken som motsvarar "knäet" mellan den stigande och asymptotiska sektionen, eftersom varje ytterligare ökning av batchstorleken skulle resultera i samma genomströmning vid en sämre latens. För att uppnå det bästa förhållandet mellan pris och prestanda, med inriktning på högre genomströmning vid lägsta latens, är det bättre att horisontellt skala detta optimala genom flera slutledningsservrar istället för att bara öka batchstorleken.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Kostnad kontra batchstorlek

I det här avsnittet presenterar vi de jämförande resultaten av slutledningskostnader ($ per miljon slutledningar) kontra batchstorleken. Från följande figur kan vi tydligt observera att kostnaden (mätt som $ per miljon slutledningar) är konsekvent lägre med G5 vs. G4dn båda (hel och halv precision).

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Följande tabell sammanfattar genomströmning, latens och kostnad ($ per miljon slutledningar) jämförelser för BERT- och RESNET50-modeller över båda precisionslägena för specifika batchstorlekar. Trots en högre kostnad per instans överträffar G5 konsekvent G4dn över alla aspekter av slutledningslatens, genomströmning och kostnad ($ per miljon slutledning), för alla batchstorlekar. Genom att kombinera de olika måtten till en kostnad ($ per miljon slutsatser), är BERT-modellen (32 batchstorlekar, full precision) med G5 3.7 gånger gynnsammare än G4dn, och med ResNet50-modellen (32 batchstorlekar, full precision) är den 1.6 gånger gynnsammare än G4dn.

Modell Satsstorlek Precision

genomströmning

(Satsstorlek X Förfrågningar/sek.)

Latency (ms)

$/miljon

Slutsatser (på begäran)

Kostnadsfördel

(G5 över G4dn)

. . . G5 G4dn G5 G4dn G5 G4dn
Bert-bas-ohölje 32 full 723 154 44 208 $0.6 $2.2 3.7X
Blandad 870 410 37 79 $0.5 $0.8 1.6X
16 full 651 158 25 102 $0.7 $2.1 3.0X
Blandad 762 376 21 43 $0.6 $0.9 1.5X
8 full 642 142 13 57 $0.7 $2.3 3.3X
Blandad 681 350 12 23 $0.7 $1.0 1.4X
. 1 full 160 116 6 9 $2.8 $2.9 1.0X
Blandad 137 102 7 10 $3.3 $3.3 1.0X
ResNet50 32 full 941 397 34 82 $0.5 $0.8 1.6X
Blandad 1533 851 21 38 $0.3 $0.4 1.3X
16 full 888 384 18 42 $0.5 $0.9 1.8X
Blandad 1474 819 11 20 $0.3 $0.4 1.3X
8 full 805 340 10 24 $0.6 $1.0 1.7X
Blandad 1419 772 6 10 $0.3 $0.4 1.3X
. 1 full 202 164 5 6 $2.2 $2 0.9X
Blandad 196 180 5 6 $2.3 $1.9 0.8X

Ytterligare slutledningsriktmärken

Förutom BERT-basen och ResNet50-resultaten i de tidigare avsnitten, presenterar vi ytterligare benchmarkingresultat för andra vanliga stora NLP- och CV-modeller i PyTorch. Prestandafördelarna med G5 över G4dn har presenterats för BERT Large-modeller med olika precision och Yolo-v5-modeller för olika storlekar. För koden för att replikera riktmärket, se NVIDIA Deep Learning Exempel för Tensor Cores. Dessa resultat visar fördelen med att använda G5 över G4dn för ett brett utbud av slutledningsuppgifter som spänner över olika modelltyper.

Modell Precision Satsstorlek Sekvenslängd Genomströmning (skickad/sek) Genomströmning: G4dn Speedup över G4dn
BERT-stor FP16 1 128 93.5 40.31 2.3
BERT-stor FP16 4 128 264.2 87.4 3.0
BERT-stor FP16 8 128 392.1 107.5 3.6
BERT-stor FP32 1 128 68.4 22.67 3.0
BERT-stor 4 128 118.5 32.21 3.7
BERT-stor 8 128 132.4 34.67 3.8
Modell GFLOPS Antal parametrar Förbearbetning (ms) Slutledning (ms) Slutledning (icke-max-undertryckning) (NMS/bild)
YOLOv5s 16.5 7.2M 0.2 3.6 4.5
YOLOv5m 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

Slutsats

I det här inlägget visade vi att för slutsatsen med stora NLP- och CV PyTorch-modeller är EC2 G5-instanser ett bättre val jämfört med G4dn-instanser. Även om timkostnaden på begäran för G5-instanser är högre än G4dn-instanser, kan dess högre prestanda uppnå 2–5 gånger kapaciteten med vilken precision som helst för NLP- och CV-modeller, vilket gör kostnaden per miljon slutsatser 1.5–3.5 gånger mer fördelaktiga än G4dn-instanser. Även för latensbundna applikationer är G5 2.5–5 gånger bättre än G4dn för NLP- och CV-modeller.

Sammanfattningsvis är AWS G5-instanser ett utmärkt val för dina slutledningsbehov ur både ett prestanda- och kostnad per slutledningsperspektiv. Universaliteten hos CUDA-ramverket och skalan och djupet hos G5-instanspoolen på AWS ger dig en unik förmåga att utföra slutsatser i skala.


Om författarna

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Ankur Srivastava är Sr. Solutions Architect i ML Frameworks Team. Han fokuserar på att hjälpa kunder med självstyrd distribuerad utbildning och slutsatser i stor skala om AWS. Hans erfarenhet inkluderar industriellt prediktivt underhåll, digitala tvillingar, probabilistisk designoptimering och har avslutat sina doktorandstudier från Mechanical Engineering vid Rice University och postdoktoral forskning från Massachusetts Institute of Technology.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sundar Ranganathan är chef för affärsutveckling, ML Frameworks i Amazon EC2-teamet. Han fokuserar på storskaliga ML-arbetsbelastningar över AWS-tjänster som Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch och Amazon SageMaker. Hans erfarenhet inkluderar ledande roller inom produktledning och produktutveckling på NetApp, Micron Technology, Qualcomm och Mentor Graphics.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Mahadevan Balasubramaniam är en Principal Solutions Architect for Autonomous Computing med nästan 20 års erfarenhet inom området fysikinfunderad djupinlärning, byggande och implementering av digitala tvillingar för industriella system i stor skala. Mahadevan tog sin doktorsexamen i maskinteknik från Massachusetts Institute of Technology och har över 25 patent och publikationer.

Uppnå fyra gånger högre ML-inferensgenomströmning till tre gånger lägre kostnad per slutledning med Amazon EC2 G5-instanser för NLP- och CV PyTorch-modeller PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Amr Ragab är en Principal Solutions Architect för EC2 Accelerated Platforms för AWS, ägnad åt att hjälpa kunder att köra beräkningsarbetsbelastningar i stor skala. På fritiden gillar han att resa och hitta nya sätt att integrera teknik i vardagen.

Tidsstämpel:

Mer från AWS maskininlärning