Deep Learning GPU Benchmarks

Vi træner hele tiden sprogmodeller til vores arbejde. Vores team bruger snesevis af forskellige videokort, der er valgt til forskellige opgaver: et eller andet sted har vi brug for en kraftfuld DGX-station, og et eller andet sted er et gammelt spillekort som RTX 2080Ti nok. At vælge den optimale GPU til modeltræning kan påvirke både processens hastighed og omkostningseffektivitet markant.

Det interessante er, at der er en del artikler på internettet med GPU-sammenligning til maskinlæring, men meget få fokuserer på hastighed til sprogmodeltræning. For det meste findes kun inferenstest. Da den nye H100-chip blev frigivet, oplyste NVidias rapport, at den var op til ni gange hurtigere end A100 under træning, men til vores opgaver var det nye kort kun 90% hurtigere end det gamle. Til sammenligning havde vores cloud-udbydere en 2x prisforskel mellem disse GPU'er, så der var ingen mening i at skifte til den nye H100 for at spare penge.

Ud over det tog vi til en test en DGX-station, som består af 8 A100 80GB grafikkort og koster 10 tusind dollars om måneden. Efter testen blev det klart, at pris/ydelsesforholdet på denne station slet ikke passer os, og for disse penge kan vi tage 66 x RTX 3090, hvilket i alt vil være meget mere nyttigt.

Vores oversættelsessprogmodeller har op til 500 millioner parametre (100 millioner til 300 millioner i gennemsnit). Det er muligt, at hvis vi øger antallet af parametre betydeligt, vil pris/ydelsesforholdet for DGX være bedre. I øjeblikket træner vi ikke store sprogmodeller, der kan oversætte mellem alle sprog i alle variationer på én gang, men bruger separate sprogmodeller for hvert sprogpar, f.eks. Engelsk-tysk. Hver af sådanne modeller tager fra 120 til 300 Mb.

Det er værd at bemærke, at forskellige sprog har forskellige mængder data på internettet, og mens. For eksempel kan du for spansk finde 500 millioner sætninger med oversættelser, men når du træner modeller til sjældnere sprog som tibetansk, skal du vælge en specifik GPU til maskinlæringsopgaver baseret på de tilgængelige data. For at lave en oversættelsesmodel fra engelsk til spansk bruger vi en server med 4 x RTX 4500 og 256GB RAM. Samtidig kan det tibetanske sprog trænes på RTX 2080 Ti med 16GB RAM, da det ikke giver nogen mening at øge kompleksiteten af det neurale netværk og som følge heraf at tage en mere kraftfuld server med en lille mængde data.

Valg af grafikprocessorer og teoretiske tal

Sprogmodeltræning fandt sted på vores interne Data Studio-platform ved hjælp af OpenNMT-tf-rammen. Denne fase omfattede dataforberedelse, modeltræning og modelsammenligning med en referenceoversættelse. Brug af FP16 i stedet for FP32 under træning gjorde det muligt for os at reducere træningstiden for sprogmodeller betydeligt uden at forringe oversættelseskvaliteten, men ikke alle vores GPU'er understøttede det.

Når du vælger en grafikprocessor, er det standard at overveje sådanne målinger som processorkraft (TFLOPS), videohukommelse (VRAM), GPU-benchmarkresultater, biblioteks- og rammesupport, budget og andre faktorer (grafikkortstørrelse og formfaktor, strømkrav, køling og kompatibilitet med dit system). Når du træner tekstgenereringsmodeller, bør du også huske på, at forskellige sprog vil forbruge forskellige mængder ressourcer. For eksempel bruges 1 byte til at kode et tegn for latinske sprog, 2 bytes for kyrilliske sprog og 3 bytes for sprog, der indeholder hieroglyffer. At forstå, hvilke egenskaber dit grafikkort vil have, har en betydelig indflydelse på hastigheden af læringsprocessen.

Ved træning af modellerne i forhold til de anvendte GPU'er blev videokortene opdelt i to grupper efter brugsperioden: tidlige videokort, som blev brugt til at foretage de første målinger af indlæringshastighed, og kort, der i øjeblikket er i brug. Hovedkarakteristikaene for disse grafikkort kan findes i henholdsvis tabel 1 og tabel 2.

Tabel 1 - Tidligere anvendte grafikprocessorer og deres tekniske parametre
 

Number of GPUsGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Notes
1. Med CUDA større end 7,0 vil brug af FP16 give et løft i træningshastigheden, afhængigt af CUDA-versionen og selve grafikkortets egenskaber.
2. Hvis specifikationen af grafikkortet indikerer, at FP16 til FP32 ydeevneforholdet er større end 1 til 1, så vil brug af blandet præcision være garanteret at øge træningshastigheden med den mængde, der er specificeret i specifikationen. For Quadro RTX 6000 vil FP16 TFLOPS-værdien på 32,62 (2:1) f.eks. fremskynde træningen med mindst to gange (2,4 gange i praksis)

Tabel 2 - Aktuelt anvendte GPU-modeller og deres hovedkarakteristika
 

Number of GPUs in useGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - værdier for FP16,TFLOPS og FP32,TFLOPS er taget fra specifikationer pr. GPU

GPU-træning og testproces

Modellerne blev trænet ved hjælp af et sæt på 18 GPU'er. I processen med neural netværkstræning brugte vi adskillige sprogpar (mere end hundrede sprog). GPU-testene har hjulpet med at identificere, hvilken hardware der klarer sig bedst til specifikke opgaver. Under træningen af vores sprogpar blev følgende neurale netværksparametre lagt til grund:
 

  • vocab størrelse = 30 000
  • numunits = 768
  • lag = 6
  • hoveder = 16
  • indre dimension = 4 096


Lad os for det første karakterisere de GPU'er, der tilhørte den første gruppe baseret på tabel 1. Tiden i minutter og sekunder brugt på at træne modellen med en omtrentlig hastighed på 1.000 trin og et batchstørrelsesmultipel på 100.000 enheder vil blive taget som grundlag for sammenligning af indikatorerne.

Vi understreger, at for den første gruppe blev hastighedsmålingerne udført ved brug af alignment mekanisme og kun ved hjælp af FP32. Uden at bruge denne mekanisme kan indlæringshastigheden på nogle servere være meget hurtigere.

Justeringsmekanismen tillader matchende understrenge i basen og oversat tekst. Det er nødvendigt at oversætte formateret tekst, såsom websider, når en understreng i en sætning kan fremhæves med en anden skrifttype og bør oversættes med fremhævningen.

Under hensyntagen til de ovennævnte parametre for det neurale netværk blev den bedste tid fra den første tabel vist af GPU Nvidia H100 med en indlæringstid på 22 minutter, og mellemtiden blev vist af GPU'en af samme mærke GeForce RTX 4060 Ti med en indlæringstid på 72 minutter, og sidstepladsen blev taget af GPU'en Tesla V100-SXM 2 med en indlæringstid på 140 minutter.

Der var også otte Nvidia A10-kort i GPU-testen med en indlæringskurve på 20 minutter og 28 sekunder, to Nvidia A40-kort med en tid på 56 minutter og to Tesla V100-SXM-kort, der klokkede ind på 86 minutter. Samtidig anvendelse af flere kort af samme serie af GPU kan fremskynde træningsprocessen af modellerne og vise næsten samme tid med GPU'er, der har højere kapaciteter, men en sådan teknik er måske ikke økonomisk og proceduremæssigt rationel nok. Resultaterne af indlæringshastighedsmålinger kan observeres i tabel nummer 3.

Tabel 3 - Træningstidsmålinger på de tidligere anvendte grafiske kort
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


Lad os derefter udføre en sammenlignende analyse af grafiske gaspedaler, der i øjeblikket er i brug (tabel 2). For denne gruppe af grafikprocessorer blev hastighedsmålinger udført ved hjælp af alignment mekanisme, samt brug af FP16 og FP32. Hastighedsmålinger inklusive denne mekanisme og blandet præcision vil blive præsenteret nedenfor i henholdsvis tabel 4 og 5.

Så efter at have målt hastigheden af GPU'er fra denne tabel, kan vi sige, at førstepladsen blev taget af RTX A4500-seriens GPU med en træningstid på 31 minutter, men det skal understreges, at en sådan hastighed af træningsmodeller blev opnået ved at øge antallet af enheder af den brugte GPU op til 4. Ser man bort fra dette faktum, vil træningshastigheden for førnævnte GPU være meget højere, hvilket vil placere den på næstsidstepladsen i finalebordet.

Quadro RTX 6000-seriens GPU med en indlæringstid på 47 minutter er på andenpladsen. Det skal bemærkes, at en sådan træningshastighed er omvendt betinget af antallet af enheder af den brugte processor, som er lig med fire. Brug af kun én sådan GPU ville give et hastighedstab på omkring 3,2 gange og ville derfor være cirka 153 minutter og placere den på sidstepladsen.

Den tredje linje blev taget af TITAN RTX-seriens GPU med en tid på 75 minutter og 85 sekunder. Denne læringshastighedsscore skyldes brugen af 2 processorer, hvilket reducerede modellens træningstid.

Den ubestridelige leder med hensyn til træningshastighed i antallet af én enhed vil helt sikkert være GeForce RTX 3090-seriens GPU med en tid på 78 minutter og 26 sekunder. Forøgelse af antallet af enheder i denne GPU vil accelerere modeltræningshastigheden, som klart vil overhale alle de ovennævnte GPU-modeller. Dataene om modeltræningstidsmålinger kan ses i tabel 4.

Tabel 4 - Sammenlignende analyse af sprogmodellens træningshastighed på tidligere anvendte GPU'er
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Følgende træningshastighedsmålinger blev udført ved hjælp af FP16. Sammenlignet med FP32 tillader halvpræcision at reducere mængden af hukommelse, der forbruges under modeltræning, og accelerere beregningen på GPU'en. Nøjagtigheden af repræsentationen vil være lavere end ved brug af FP32.

Ved at måle træningstiden for modeller, der bruger FP32 fra den forrige tabel, kan vi sige, at træningstiden for det neurale netværk blev reduceret med næsten to gange. Baseret på præstationsmålingsresultaterne kan vi observere fra maskinlærings-GPU-benchmarks i tabel 4, at positionerne for GPU'er forblev stort set uændrede. Quadro RTX 6000-seriens kort rykkede op fra den femte position til den sjette og slog GeForce RTX 3090 GPU med 96 sekunder. De endelige tal er vist i tabel 5.

Tabel 5 - Sammenlignende analyse af sprogmodellens træningshastighed på tidligere anvendte GPU'er
 

Using the alignment mechanism
Effective batch size = 100 000
FP 16
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Ofte stillede spørgsmål (FAQ)

Er det værd at købe en GPU til deep learning?

At købe en GPU til dyb læring kan øge træningshastigheden og effektiviteten betydeligt, hvilket gør det til en værdifuld investering for seriøse projekter. Beslutningen bør dog overveje faktorer som budget, specifikke use cases, og om cloud-løsninger kan være mere omkostningseffektive.

Hvilken GPU er bedst til deep learning?

NVIDIA A100 betragtes ofte som det bedste valg til deep learning, der tilbyder enestående ydeevne og hukommelse til store modeller. For budgetbevidste brugere giver NVIDIA RTX 3090 stærke muligheder for at træne modeller effektivt.

Er AMD eller NVIDIA bedre til deep learning?

NVIDIA foretrækkes generelt til deep learning på grund af dets robuste softwareøkosystem, som forbedrer ydeevne og kompatibilitet med populære rammer. Mens AMD GPU'er er blevet forbedret, halter de stadig bagefter NVIDIA med hensyn til optimering og understøttelse af deep learning-applikationer.

Hjælper GPU i NLP?

Ja, GPU'er accelererer markant neural netværkstræning i naturlig sprogbehandling (NLP) ved at håndtere parallelle beregninger effektivt. Dette hastighedsforøgelse giver mulighed for hurtigere eksperimentering og iteration, hvilket fører til forbedret modelydelse og reducerede træningstider.

Mere fascinerende læsninger venter

Hvad Er On-Premise Speech Recognition?

Hvad Er On-Premise Speech Recognition?

September 19, 2024

Vurdering af statistisk betydning i oversættelsessystemet

Vurdering af statistisk betydning i oversættelsessystemet

September 10, 2024

Talegenkendelse i markedsføring

Talegenkendelse i markedsføring

August 23, 2024

Kontakt os

0/250
* Angiver påkrævet felt

Dit privatliv er af største vigtighed for os; dine data vil udelukkende blive brugt til kontaktformål.

E-mail

Afsluttet

Din anmodning er blevet sendt

× 
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.

We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.

You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Always Active

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Always Active

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Always Active

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Always Active

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.