Amazon Elastic Compute Cloud (Amazon EC2) G5-forekomster er de første og eneste forekomster i skyen, der har NVIDIA A10G Tensor Core GPU'er, som du kan bruge til en bred vifte af grafikintensive og maskinlæring (ML)-brug. Med G5-forekomster får ML-kunder høj ydeevne og en omkostningseffektiv infrastruktur til at træne og implementere større og mere sofistikerede modeller til naturlig sprogbehandling (NLP), computervision (CV) og anbefalingsmotorer.
Formålet med dette indlæg er at vise ydelsesfordelene ved G5-instanser til storskala ML-inferens-arbejdsbelastninger. Vi gør dette ved at sammenligne pris-ydelsen (målt som $ per million slutninger) for NLP- og CV-modeller med G4dn-instanser. Vi starter med at beskrive vores benchmarking-tilgang og præsenterer derefter gennemstrømnings- vs. latency-kurver på tværs af batchstørrelser og datatypepræcision. I sammenligning med G4dn-forekomster finder vi, at G5-forekomster leverer konsekvent lavere omkostninger pr. million inferenser for både fuld præcision og blandet præcisionstilstande for NLP- og CV-modellerne, samtidig med at de opnår højere gennemløb og lavere latenstid.
Benchmarking tilgang
For at udvikle en pris-ydelsesundersøgelse mellem G5 og G4dn skal vi måle gennemløb, latens og pris pr. million slutninger som en funktion af batchstørrelse. Vi studerer også virkningen af fuld præcision vs. blandet præcision. Både modelgrafen og inputs indlæses i CUDA før inferencing.
Som vist i det følgende arkitekturdiagram opretter vi først respektive basisbeholderbilleder med CUDA for den underliggende EC2-instans (G4dn, G5). For at bygge basisbeholderbillederne starter vi med AWS Deep Learning-containere, som bruger færdigpakkede Docker-billeder til at implementere dybe læringsmiljøer på få minutter. Billederne indeholder de nødvendige deep learning PyTorch-biblioteker og værktøjer. Du kan tilføje dine egne biblioteker og værktøjer oven på disse billeder for en højere grad af kontrol over overvågning, overholdelse og databehandling.
Derefter bygger vi et modelspecifikt containerbillede, der indkapsler modelkonfigurationen, modelsporingen og tilhørende kode til at køre fremadgående gennemløb. Alle containerbilleder indlæses i Amazon ECR for at give mulighed for horisontal skalering af disse modeller til forskellige modelkonfigurationer. Vi bruger Amazon Simple Storage Service (Amazon S3) som et fælles datalager til at downloade konfiguration og uploade benchmarkresultater til opsummering. Du kan bruge denne arkitektur til at genskabe og reproducere benchmark-resultaterne og genbruge til at benchmarke forskellige modeltyper (såsom Hugging Face-modeller, PyTorch-modeller, andre brugerdefinerede modeller) på tværs af EC2-instanstyper (CPU, GPU, Inf1).
Med dette eksperiment sat op, er vores mål at studere latens som funktion af gennemløb. Denne kurve er vigtig for applikationsdesign for at nå frem til en omkostningsoptimal infrastruktur for målapplikationen. For at opnå dette simulerer vi forskellige belastninger ved at stille forespørgsler fra flere tråde i kø og derefter måle rundturstiden for hver afsluttet anmodning. Gennemløbet måles baseret på antallet af afsluttede anmodninger pr. tidsenhed. Desuden kan du variere batchstørrelserne og andre variabler som f.eks. sekvenslængde og fuld præcision vs. halv præcision for omfattende at feje designrummet for at nå frem til vejledende præstationsmålinger. I vores undersøgelse, gennem et parametrisk sweep af batchstørrelse og forespørgsler fra multi-threaded-klienter, bestemmes gennemløbs- vs. latency-kurven. Hver anmodning kan batches for at sikre fuld udnyttelse af acceleratoren, især for små anmodninger, der muligvis ikke fuldt ud udnytter beregningsknuden. Du kan også anvende denne opsætning for at identificere batchstørrelsen på klientsiden for optimal ydeevne.
Sammenfattende kan vi repræsentere dette problem matematisk som: (Throughput, Latency) = funktion af (Batchstørrelse, Antal tråde, Præcision).
Det betyder, givet den udtømmende plads, at antallet af eksperimenter kan være stort. Heldigvis kan hvert eksperiment køres uafhængigt. Vi anbefaler at bruge AWS batch at udføre denne horisontalt skalerede benchmarking i komprimeret tid uden en stigning i benchmarking-omkostninger sammenlignet med en lineær tilgang til test. Koden til at replikere resultaterne er til stede i GitHub repository forberedt til AWS Re:Invent 2021. Depotet er omfattende til at udføre benchmarking på forskellige acceleratorer. Du kan henvise til GPU-aspektet af kode for at bygge containeren (Dockerfile-gpu
) og derefter henvise til koden indeni Container-Root
for specifikke eksempler for BERT og ResNet50.
Vi brugte den foregående tilgang til at udvikle præstationsundersøgelser på tværs af to modeltyper: Bert-base-uncased (110 millioner parametre, NLP) og ResNet50 (25.6 millioner parametre, CV). Følgende tabel opsummerer modeldetaljerne.
Model Type | Model | Detaljer |
NLP | twmkn9/bert-base-uncased-squad2 | 110 millioner parametre Sekvenslængde = 128 |
CV | ResNet50 | 25.6 millioner parametre |
Derudover bruger vi til at benchmarke på tværs af datatyper (fuld, halv præcision). torch.cuda.amp
, som giver praktiske metoder til at håndtere blandet præcision, hvor nogle operationer bruger torch.float32
(flydende) datatype og anden brug af operationer torch.float16
(halvt). For eksempel er operatører som lineære lag og foldninger meget hurtigere med float16, mens andre som reduktioner ofte kræver det dynamiske område af float32. Automatisk blandet præcision forsøger at matche hver operatør til dens passende datatype for at optimere netværkets køretid og hukommelsesfodaftryk.
Benchmarking resultater
For en rimelig sammenligning valgte vi G4dn.4xlarge , G5.4xlarge instanser med lignende attributter, som angivet i følgende tabel.
Instans | GPU'er | GPU-hukommelse (GiB) | vCPU'er | Hukommelse (GiB) | Forekomstlager (GB) | Netværksydelse (Gbps) | EBS-båndbredde (Gbps) | Linux On-Demand-priser (us-east-1) |
G5.4xlarge | 1 | 24 | 16 | 64 | 1x 600 NVMe SSD | op til 25 | 8 | $ 1.204 / timen |
G4dn.4xlarge | 1 | 16 | 16 | 64 | 1x 225 NVMe SSD | op til 25 | 4.75 | $ 1.624 / timen |
I de følgende afsnit sammenligner vi ML-inferens ydeevne for BERT- og RESNET50-modeller med en grid sweep-tilgang for specifikke batchstørrelser (32, 16, 8, 4, 1) og datatypepræcision (fuld og halv præcision) for at nå frem til gennemløbet vs. latenskurve. Derudover undersøger vi effekten af gennemløb vs. batchstørrelse for både fuld og halv præcision. Til sidst måler vi omkostninger pr. million slutninger som en funktion af batchstørrelse. De konsoliderede resultater på tværs af disse eksperimenter er opsummeret senere i dette indlæg.
Gennemløb vs. latency
Følgende figurer sammenligner G4dn- og G5-instanser for NLP- og CV-arbejdsbelastninger med både fuld og halv præcision. Sammenlignet med G4dn-instanser leverer G5-instansen en gennemstrømning på omkring fem gange højere (fuld præcision) og omkring 2.5 gange højere (halv præcision) for en BERT-basismodel og omkring 2-2.5 gange højere for en ResNet50-model. Samlet set er G5 et foretrukket valg med stigende batchstørrelser for begge modeller for både fuld og blandet præcision set fra et ydeevneperspektiv.
Følgende grafer sammenligner gennemløb og P95-latens ved fuld og halv præcision for BERT.
Følgende grafer sammenligner gennemløb og P95-latens ved fuld og halv præcision for ResNet50.
Gennemløb og latenstid vs. batchstørrelse
De følgende grafer viser gennemløbet som funktion af batchstørrelsen. Ved lave batchstørrelser fungerer acceleratoren ikke til sin fulde kapacitet, og efterhånden som batchstørrelsen øges, øges gennemløbet på bekostning af latens. Gennemløbskurven asymptomerer til en maksimal værdi, der er en funktion af acceleratorens ydeevne. Kurven har to distinkte træk: en stigende sektion og en flad asymptotisk sektion. For en given model er en performant accelerator (G5) i stand til at strække den stigende sektion til højere batchstørrelser end G4dn og asymptote ved en højere gennemstrømning. Der er også en lineær afvejning mellem latens og batchstørrelse. Derfor, hvis applikationen er latenstidsbundet, kan vi bruge P95 latency vs batchstørrelse til at bestemme den optimale batchstørrelse. Men hvis målet er at maksimere gennemløbet ved den laveste latenstid, er det bedre at vælge batchstørrelsen svarende til "knæet" mellem de stigende og asymptotiske sektioner, fordi enhver yderligere stigning i batchstørrelsen ville resultere i den samme gennemstrømning ved en værre latenstid. For at opnå det bedste forhold mellem pris og ydeevne, målrettet mod højere gennemløb ved laveste latenstid, er du bedre tjent med at skalere dette optimale vandret gennem flere inferensservere i stedet for blot at øge batchstørrelsen.
Omkostninger vs. batchstørrelse
I dette afsnit præsenterer vi de sammenlignende resultater af slutningsomkostninger ($ pr. million slutninger) versus batchstørrelsen. Fra den følgende figur kan vi tydeligt observere, at omkostningerne (målt som $ pr. million slutninger) konsekvent er lavere med både G5 vs. G4dn (fuld og halv præcision).
Følgende tabel opsummerer gennemløb, latens og omkostninger ($ pr. million slutninger) sammenligninger for BERT- og RESNET50-modeller på tværs af begge præcisionstilstande for specifikke batchstørrelser. På trods af en højere omkostning pr. instans, overgår G5 konsekvent G4dn på tværs af alle aspekter af slutningsforsinkelse, gennemløb og omkostninger ($ pr. million slutning) for alle batchstørrelser. Ved at kombinere de forskellige målinger til en pris ($ pr. million slutninger), er BERT-modellen (32 batchstørrelse, fuld præcision) med G5 3.7 gange mere fordelagtig end G4dn, og med ResNet50-modellen (32 batchstørrelse, fuld præcision) er den 1.6 gange mere gunstig end G4dn.
Model | Batch størrelse | Precision |
gennemløb (Batchstørrelse X Forespørgsler/sek.) |
Latency (ms) |
$/million Konklusioner (on-demand) |
Omkostningsfordel (G5 over G4dn) |
|||
. | . | . | G5 | G4dn | G5 | G4dn | G5 | G4dn | |
Bert-base-uindkapslet | 32 | Fuld | 723 | 154 | 44 | 208 | $0.6 | $2.2 | 3.7X |
Blandet | 870 | 410 | 37 | 79 | $0.5 | $0.8 | 1.6X | ||
16 | Fuld | 651 | 158 | 25 | 102 | $0.7 | $2.1 | 3.0X | |
Blandet | 762 | 376 | 21 | 43 | $0.6 | $0.9 | 1.5X | ||
8 | Fuld | 642 | 142 | 13 | 57 | $0.7 | $2.3 | 3.3X | |
Blandet | 681 | 350 | 12 | 23 | $0.7 | $1.0 | 1.4X | ||
. | 1 | Fuld | 160 | 116 | 6 | 9 | $2.8 | $2.9 | 1.0X |
Blandet | 137 | 102 | 7 | 10 | $3.3 | $3.3 | 1.0X | ||
ResNet50 | 32 | Fuld | 941 | 397 | 34 | 82 | $0.5 | $0.8 | 1.6X |
Blandet | 1533 | 851 | 21 | 38 | $0.3 | $0.4 | 1.3X | ||
16 | Fuld | 888 | 384 | 18 | 42 | $0.5 | $0.9 | 1.8X | |
Blandet | 1474 | 819 | 11 | 20 | $0.3 | $0.4 | 1.3X | ||
8 | Fuld | 805 | 340 | 10 | 24 | $0.6 | $1.0 | 1.7X | |
Blandet | 1419 | 772 | 6 | 10 | $0.3 | $0.4 | 1.3X | ||
. | 1 | Fuld | 202 | 164 | 5 | 6 | $2.2 | $2 | 0.9X |
Blandet | 196 | 180 | 5 | 6 | $2.3 | $1.9 | 0.8X |
Yderligere slutningsbenchmarks
Ud over BERT-basen og ResNet50-resultaterne i de foregående afsnit præsenterer vi yderligere benchmarking-resultater for andre almindeligt anvendte store NLP- og CV-modeller i PyTorch. Ydeevnefordelene ved G5 i forhold til G4dn er blevet præsenteret for BERT Large-modeller med forskellig præcision og Yolo-v5-modeller for forskellige størrelser. For koden til replikering af benchmark henvises til NVIDIA Deep Learning-eksempler for tensorkerner. Disse resultater viser fordelen ved at bruge G5 over G4dn til en bred vifte af inferensopgaver, der spænder over forskellige modeltyper.
Model | Precision | Batch størrelse | Sekvenslængde | Gennemløb (sendt/sek.) | Gennemløb: G4dn | Speedup over 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 |
Model | GFLOPS | Antal parametre | Forbehandling (ms) | Inferens (ms) | Inferens (Ikke-maks-undertrykkelse) (NMS/billede) |
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 |
Konklusion
I dette indlæg viste vi, at for at udlede med store NLP- og CV PyTorch-modeller er EC2 G5-instanser et bedre valg sammenlignet med G4dn-instanser. Selvom on-demand timeomkostninger for G5-instanser er højere end G4dn-instanser, kan dens højere ydeevne opnå 2-5 gange gennemløbet ved enhver præcision for NLP- og CV-modeller, hvilket gør omkostningerne pr. million slutninger 1.5-3.5 gange mere fordelagtige end G4dn-forekomster. Selv for latensbundne applikationer er G5 2.5-5 gange bedre end G4dn for NLP- og CV-modeller.
Sammenfattende er AWS G5-forekomster et glimrende valg til dine slutningsbehov ud fra et ydelses- og pris pr. slutningsperspektiv. Universaliteten af CUDA-rammen og skalaen og dybden af G5-instanspuljen på AWS giver dig en unik evne til at udføre slutninger i skala.
Om forfatterne
Ankur Srivastava er Sr. Solutions Architect i ML Frameworks Team. Han fokuserer på at hjælpe kunder med selvstyret distribueret træning og konklusioner i stor skala om AWS. Hans erfaring omfatter industriel prædiktiv vedligeholdelse, digitale tvillinger, probabilistisk designoptimering og har afsluttet sine doktorgradsstudier fra Mechanical Engineering ved Rice University og post-doc forskning fra Massachusetts Institute of Technology.
Sundar Ranganathan er chef for forretningsudvikling, ML Frameworks på Amazon EC2-teamet. Han fokuserer på store ML-arbejdsbelastninger på tværs af AWS-tjenester som Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch og Amazon SageMaker. Hans erfaring omfatter lederroller inden for produktledelse og produktudvikling hos NetApp, Micron Technology, Qualcomm og Mentor Graphics.
Mahadevan Balasubramaniam er en Principal Solutions Architect for Autonomous Computing med næsten 20 års erfaring inden for fysik-infunderet dyb læring, opbygning og implementering af digitale tvillinger til industrielle systemer i stor skala. Mahadevan opnåede sin ph.d. i Mechanical Engineering fra Massachusetts Institute of Technology og har over 25 patenter og publikationer til gode.
Amr Ragab er en Principal Solutions Architect for EC2 Accelerated Platforms for AWS, dedikeret til at hjælpe kunder med at køre beregningsmæssige arbejdsbelastninger i stor skala. I sin fritid kan han godt lide at rejse og finde nye måder at integrere teknologi i dagligdagen.
- Avanceret (300)
- AI
- ai kunst
- ai kunst generator
- en robot
- Amazon EC2
- kunstig intelligens
- certificering af kunstig intelligens
- kunstig intelligens i banksektoren
- kunstig intelligens robot
- kunstig intelligens robotter
- software til kunstig intelligens
- AWS maskinindlæring
- blockchain
- blockchain konference ai
- coingenius
- samtale kunstig intelligens
- kryptokonference ai
- dalls
- dyb læring
- du har google
- machine learning
- plato
- platon ai
- Platon Data Intelligence
- Platon spil
- PlatoData
- platogaming
- skala ai
- syntaks
- zephyrnet