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.

GPU-d olid algselt lihtsad seadmed, mis ühendasid graafilised elemendid, et luua konkreetse seadme jaoks ideaalne väljund. Kuid aja jooksul ja arvutimängude tulekuga hakkas GPU-de keerukus ja võimsus kasvama, mis tõi kaasa GPGPU ehk üldotstarbeline andmetöötlus GPU-del.

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 kasvas võimsamaks ning sai hakkama ka keerukamate programmide ja mängudega, püüdsid videokaartide valmistajad sammu pidada ka tänapäevase andmetöötluse ja 3D-graafika arenguga. Nvidia avalikustas GeForce 256 aastal 1999 maailma esimese GPU-videokaardina 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.

Kui protsessoritel võib olla paar tuuma, siis tänapäevastel GPU-del on tuhandeid südamikke, näiteks Nvidia GeForceRTX 3090 millel on 10K+ tuuma. Protsessorite ees eelise saamiseks peavad andmeid olema võimalik paralleelselt töödelda, näiteks töödelda 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 üldotstarbeline programmeerimine tehti algselt kasutades DirectX ja OpenGL raamatukogud. Need olid aga mõeldud rangelt graafika arendamiseks, nii et töötamiseks pidite oma andmed ümber 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

Sageli puutute terminitega kokku Cuda südamikud ja voogprotsessorid. Mõlemad terminid viitavad lihtsalt GPU tuumale või Aritmeetilised loogikaühikud GPU-st. CUDA Core on Nvidia patenteeritud tehnoloogia, Streami protsessorid aga 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:

auasteNimiPetaflopsCPU 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 tutvuda arendajaplatvormiga Nvidia siin või see AMD siin.

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: 298

Võtke vastu tehnilisi asju

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