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.
Följande diagram jämför genomströmning och P95-latens med full och halv precision för ResNet50.
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.
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).
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
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.
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.
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.
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.
- Avancerat (300)
- AI
- ai konst
- ai art generator
- har robot
- Amazon EC2
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- du har google
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet