GPU andmetöötlus – mis see on?

Kas kuulete pidevalt GPU andmetöötlusest või kiirendusest, kuid pole kindel, mida need tähendavad? Siin on kõik, mida pead teadma.

GPU või graafikaprotsessorid on olemas kõigis elektroonilistes vooluringides, mis toodavad üht või teist tüüpi kuva, eriti arvutis.

Varased graafikaprotsessorid olid suhteliselt lihtsad. Kuid mängude, 3D-animatsiooni ja videorenderdusülesannete tulekuga, mis lükkasid protsessorid üle nende piiride, pidid appi tulema võimsamad GPU-d.

Nende uute GPU-kaartide võimsus ja keerukus kasvas aja jooksul ning erinevad ettevõtted ja teadlased otsisid viise, kuidas oma paralleelse täitmise eeliseid ära kasutada. See postitus näitab teile, kuidas see seni on läinud.

Mis on GPU?

Graafikaprotsessor või graafikaprotsessor on spetsiaalne vooluahel, mis on loodud andmetega manipuleerimiseks, et hõlbustada kuvatavate kujutiste loomist. Teisisõnu on GPU süsteem, mis loob pilte, mida näete mis tahes kuvapinnal, näiteks arvutimonitoril, nutitelefoni ekraanil, mängukonsoolidel jne.

Algselt olid graafikaprotsessorid (GPU-d) lihtsad seadmed, mis panid graafilisi elemente kokku, et luua konkreetse seadme jaoks ideaalne väljund. Aja jooksul ja arvutimängude tulekuga hakkasid graafikaprotsessorid aga keerukamaks ja võimsamaks muutuma, mis andis alguse GPGPU-le ehk üldotstarbelisele arvutusele graafikaprotsessoritel (General Purpose Computing on GPUs ).

Mis on GPU andmetöötlus?

GPU andmetöötlus ehk GPGPU on GPU kasutamine arvutamiseks väljaspool graafikat. See tähendab arvuti videokaardile sisseehitatud ja algselt arvutigraafika töötlemiseks mõeldud GPU-de kasutamist muud tüüpi andmete arvutamiseks, nagu teaduslikud simulatsioonid, krüptoraha kaevandamine, algebra arvutused, ilmaennustused, närvivõrgud jne.

GPU andmetöötluse sellise arengu põhjuseks on graafikatöötlusüksuste muljetavaldav areng, mis tuleneb kaasaegsete GPU-süsteemide hajutatud paralleelsest arhitektuurist.

Kuna arvuti protsessor muutus võimsamaks ja suutis keerukamate programmide ja mängudega hakkama saada, püüdsid ka videokaartide tootjad sammu pidada tänapäevase arvutiteaduse ja 3D-graafika arenguga. Nvidia avalikustas 1999. aastal GeForce 256 kui maailma esimese GPU-videokaardi ja asjad arenesid sealt edasi.

GPU-kaartide peamine eelis CPU-de ees on nende paralleeltöötluse arhitektuur, mis võimaldab neil töödelda suuri andmeülesandeid hajutatud paralleelselt, mis hoiab ära kitsaskohad ja protsessori külmutamise.

Millised on GPU-arvutite rakendused?

GPU-arvutite rakendusi on palju, siin on ülevaade mõnest populaarseimast kasutusviisist:

  1. Masinõpe ja närvivõrgud
  2. Hägune loogika
  3. Bioinformaatika
  4. Molekulaarne modelleerimine
  5. Video renderdamine
  6. Geomeetriline arvutus
  7. Kliimauuringud ja ilmaennustused
  8. Astrofüüsika
  9. Krüptograafia
  10. Arvuti nägemine
  11. Parooli murdmine
  12. Kvantuuringud

GPU vs CPU töötlemine

Nii GPU-d kui ka CPU-d töötlevad digitaalseid andmeid, kuid teevad seda erineval viisil. CPU või keskprotsessor on mõeldud seeriatöötluseks suurel kiirusel, samas kui GPU-d on mõeldud paralleelseks töötlemiseks palju väiksematel kiirustel. Muidugi võib protsessor kasutada hüperkeermetamist, et saada 2 lõime tuuma kohta või omada isegi kümneid südamikke, kuid need on põhimõtteliselt jadaprotsessorid.

Kuigi protsessoritel võib olla paar tuuma, on tänapäevastel graafikakaartidel tuhandeid tuumasid, näiteks Nvidia GeForce RTX 3090-l , millel on üle 10 000 tuuma. Protsessorite ees eelise saamiseks peavad andmed aga olema võimelised paralleelselt töötlema, näiteks töötlema voogu, mis sisaldab tuhandeid pilte korraga.

GPU-d vs ASIC-id

ASIC tähistab rakendusespetsiifilist integreeritud vooluringi ja see tähendab, et see suudab täita ainult ühte ülesannet – see tähendab ülesannet, milleks see oli loodud. ASIC on ainulaadne masin, mis on välja töötatud nullist ja mille ehitamiseks on vaja asjatundlikke riistvarateadmisi. ASIC-e kasutatakse tavaliselt krüptovaluutade kaevandamisel, kuna need pakuvad häid paralleeltöötluse eeliseid ja paremat efektiivsust kui GPU-d.

Peamine erinevus nende kahe vahel on aga see, et GPU-d on mitmekülgsemad. Näiteks saate GPU-de abil hõlpsasti luua krüptovaluuta kaevandamise seadme. Osad on kergesti kättesaadavad ja kui olete kaevandamisega lõpetanud, saate GPU-kaardi alati mängijatele või teistele kaevuritele müüa. ASIC-idega saab aga ainult kasutatud masinat teistele kaevandajatele müüa, sest sellega vaevalt midagi muud teha ei saa.

Peale krüptoraha kaevandamise muutub ASIC-masinatele käed külge panemine veelgi keerulisemaks, sest need pole masstooted. See erineb tugevalt GPU-süsteemidest, mida saate kõikjalt hõlpsasti konfigureerida.

GPU vs klastri andmetöötlus

Kuigi üks GPU-kaart sisaldab tuhandeid südamikke, mis lisavad tohutult võimsust igale arvutile, mille külge selle ühendate, saate teoreetiliselt lisada arvuti emaplaadile nii palju GPU-kaarte, kui see suudab, ja veelgi suurendada selle töötlemisvõimet.

Arvutiklaster seevastu viitab mitmele arvutile, mis on võrku ühendatud, et toimida ühe suure arvutina – superarvutina. Iga võrgu arvutit nimetatakse sõlmeks ja sellel võib olla mitmetuumaline protsessor, samuti üks või mitu GPU-kaarti.

Igal klastris peab olema põhisõlm, mis on eesmine arvuti, mis vastutab oma töösõlmede haldamise ja ajastamise eest. See sisaldab ka tarkvara, mis eraldab andmed ja programmid oma töötajate sõlmedele tulemuste arvutamiseks ja tagastamiseks.

GPU kiirendus vs hüperkeermestamine

Protsessor on loodud mitme ülesande korraga toimetulekuks ja seetõttu töötab see väga suurel kiirusel, ajastades töötlemisaega nende mitme protsessi vahel. Kui see aga kohtab arvutusmahukat funktsiooni, võib see kuluda mõnda aega tsüklisse, enne kui naaseb teiste protsesside juurde. Selle tulemuseks on tavaliselt arvuti üldine aeglustumine ja halvematel juhtudel süsteemi täielik külmutamine.

Arvutidisainerid saavad seda kohutavat stsenaariumi vältida, kasutades hüperkeerme või GPU kiirendust. Hüperlõime võimaldab ühel CPU tuumal toimida kahe töötlemislõimena. Seega, kui üks lõim jääb arvutusmahukasse ahelasse, suudab teine ​​lõim süsteemi siiski koos hoida.

Kaasaegsetel arvutitel on nüüd mitu tuuma 2 kuni 4, 8, 16, 32 jne. Lisaks on neil hüperkeermestamine, nii et 2-tuumaline CPU pakub 4 lõime, 4-tuumaline 8 lõime ja nii edasi.

Hüperkeermestamine mitmetuumaliste protsessoritega lahendab enamiku arvutusprobleeme, hoiab ära kitsaskohad ja tagab tipptasemel jõudluse lihtsate mängude, muusika tootmise ning väikeste graafika-, video- ja masinõppeprojektidega. Kuid kui vajate rohkem energiat, on GPU sageli õige lahendus.

GPU- või riistvarakiirendus on tarkvararakenduse võime kasutada GPU paralleeltöötlusvõimsust, et töödelda suurel hulgal andmeid, ilma protsessorit ummistamata. Paljude professionaalsete rakenduste hea toimimine sõltub GPU kiirendusest. Nende hulka kuuluvad video- ja animatsioonikujundus-/renderdusprogrammid, kodeerijad, krüptograafia, suured närvivõrgud jne.

GPGPU programmeerimise põhitõed

GPU-de üldotstarbelist programmeerimist tehti algselt DirectX-i ja OpenGL-i teekide abil. Need olid aga loodud rangelt graafika arendamiseks, seega tuli andmed töötamiseks ümber kujundada graafilisteks mudeliteks.

Õnneks on aastate jooksul GPGPU-s tehtud suuri edusamme, mille tulemuseks on raamatukogud, programmeerimiskeeled ja raamistikud. Kõige populaarsem neist raamistikest on Nvidia CUDA.

CUDA muudab iga arendaja jaoks lihtsaks sukelduda GPU programmeerimisse, ilma et nad peaksid teadma klassikalise GPU programmeerimise nüansse. See pakub funktsioone, mis täiustavad arendust peale graafika, kusjuures paljudel seadmetel on isegi masinõppe spetsiifilised funktsioonid.

Saadaolevad teegid hõlbustavad ka uute GPU-kiirendusega programmide loomist nullist või eelnevalt kirjutatud programmide kohandamist paralleeltöötluseks. Valite õige teegi, optimeerite oma koodi paralleelsete tsüklite jaoks, kompileerite uuesti ja ongi kõik.

CUDA tuumad vs vooprotsessorid

Tihti puutute kokku terminitega Cuda tuumad ja voogprotsessorid . Mõlemad terminid viitavad lihtsalt GPU tuumale või GPU aritmeetilisele loogikaüksusele . CUDA tuum on Nvidia patenteeritud tehnoloogia, samas kui Stream protsessorid on AMD-lt.

Teine termin, millega võite kokku puutuda, on Streaming Multi-Processor või SM. See on veel üks Nvidia tehnoloogia, mis algselt rühmitas 8 CUDA südamikku SM-i kohta. See teostab korraga 32-lõimelist koolutust, kasutades käsu kohta 4 taktitsüklit. Uuematel kujundustel on nüüd üle 100 tuuma voogesituse mitme protsessori kohta.

Populaarseimad GPU keeled ja raamatukogud

Seal on nii palju teeke ja keeli, mis töötavad nii Nvidia CUDA kui ka AMD platvormidel. Järgnevad on vaid mõned:

  1. Nvidia cuBLAS – CUDA põhilised lineaaralgebra alamprogrammid
  2. cuDNN - sügavate närvivõrkude raamatukogu
  3. OpenCL – Avatud standard paralleelseks programmeerimiseks
  4. Openmp - AMD GPU jaoks
  5. HIP - C++ raamatukogu
  6. Nvidia cuRAND - Juhuslike arvude genereerimine
  7. mansett – Kiire Fourier’ teisenduse jaoks
  8. Nvidia tuumaelektrijaam – 2D pildi- ja signaalitöötlus
  9. GPU VSIPL – Vektorkujutise ja signaali töötlemine
  10. OpenCV - GPU raamatukogu arvuti nägemiseks
  11. OpenACC – Keel paralleelseks arendamiseks
  12. PyCU-s - Python CUDA platvormile
  13. TensorRT – CUDA süvaõpe
  14. CUDA C++ - C++ keel CUDA jaoks
  15. CUDA C – C-keel CUDA jaoks
  16. CUDA Fortran – CUDA FORTRANi arendajatele

Parimad GPU-klastriprojektid

2022. aasta juuni seisuga on 8 maailma kümnest kiireimast superarvutist GPU-kiirendusega. Nad kõik jagavad ka Linuxi operatsioonisüsteemi ja on järgmised:

auasteEesnimiPetaflopsCPU südamikudGPU tuumadVõimsus (kW)Tootmisaasta
1.Piir1,102591,8728,138,24021,1002022
2.TUBA151.9075,2641,034,8802,9002022
3.Summit148.6202,7522,211,84010,0962018
4.Mäeahelik94.64190,0801,382,4007,4382018
5.Perlmutter64.59N / AN / A2,5892021
6.Selene63.4671,680483,8402,6462020
7.tianhe-261.445427,0084,554,75218,4822013
8.Adastra46.121,632297,4409212022

Järeldus

Kui olete jõudnud selle GPU andmetöötluse ja kõige sellega kaasneva sukeldumise lõppu, oleksite nüüdseks saanud aimu selle võimsusest ja ulatusest.

Lisateabe saamiseks võite vaadata Nvidia arendusplatvormi siit või AMD oma siit.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke on arvutihuviline, kes armastab lugeda mitmesuguseid raamatuid. Ta eelistab Linuxit Windowsile/Macile ja on seda kasutanud
Ubuntu selle algusaegadest peale. Saate teda Twitteris tabada bongotrax

Artiklid: 299

Võtke vastu tehnilisi asju

Tehnilised suundumused, käivitamistrendid, ülevaated, veebisissetulek, veebitööriistad ja turundus üks või kaks korda kuus