GPU računalništvo – kaj je to?

Ali ves čas poslušate o GPE-računalništvu ali pospeševanju, vendar niste prepričani, kaj pomenita? Tukaj je vse, kar morate vedeti.

GPU ali grafične procesne enote so prisotne v vseh elektronskih vezjih, ki proizvajajo eno ali drugo obliko zaslona, ​​zlasti v računalniku.

Zgodnji grafični procesorji so bili relativno preprosti. Toda s prihodom iger, 3D-animacije in opravil upodabljanja videoposnetkov, ki so CPE-je potisnili čez njihove meje, so morali na pomoč priskočiti zmogljivejši GPE-ji.

Te nove kartice GPU so sčasoma postajale močnejše in kompleksnejše, pri čemer so različna podjetja in raziskovalci iskali načine, kako izkoristiti svojo prednost vzporednega izvajanja. Ta objava vam pokaže, kako je šlo doslej.

Kaj je GPU?

GPU ali grafična procesna enota je specializirano vezje, zasnovano za obdelavo podatkov za pomoč pri ustvarjanju slik za prikaz. Z drugimi besedami, GPE je sistem, ki ustvarja slike, ki jih vidite na kateri koli zaslonski površini, kot je računalniški monitor, zaslon pametnega telefona, igralne konzole itd.

GPU-ji so bili sprva enostavne naprave, ki so sestavljale grafične elemente, da so ustvarile idealen izhod za določeno napravo. Sčasoma in s pojavom računalniških iger pa so grafični procesorji začeli postajati kompleksnejši in močnejši, kar je povzročilo GPGPU ali splošno namensko računalništvo na grafičnih procesorjih.

Kaj je GPU računalništvo?

Računalništvo GPU ali GPGPU je uporaba GPE za računanje zunaj grafike. To pomeni uporabo grafičnih procesorjev, vgrajenih v grafično kartico računalnika in prvotno namenjenih obdelavi računalniške grafike za izračun drugih vrst podatkov, kot so znanstvene simulacije, rudarjenje kriptovalut, algebrski izračuni, vremenska napoved, nevronske mreže itd.

Razlog za ta razvoj računalništva GPE izvira iz impresivnega razvoja grafičnih procesorskih enot, ki izhaja iz porazdeljene vzporedne arhitekture sodobnih sistemov GPE.

Ko je CPE računalnika postajal močnejši in je lahko upravljal z bolj zapletenimi programi in igrami, so tudi izdelovalci video kartic poskušali slediti razvoju sodobnega računalništva in 3D-grafike. Nvidia je predstavila GeForce 256 leta 1999 kot prva grafična kartica GPE na svetu in od tam so se stvari razvile.

Glavna prednost kartic GPE pred procesorji je njihova arhitektura vzporedne obdelave, zaradi katere lahko obdelujejo velike podatkovne naloge na porazdeljen vzporeden način, ki preprečuje ozka grla in zamrznitve procesorja.

Katere so aplikacije za računalništvo GPU?

Uporabe računalništva GPE je veliko, tukaj je pogled na nekaj najboljših uporab:

  1. Strojno učenje in nevronske mreže
  2. Mehka logika
  3. Bioinformatika
  4. Molekularno modeliranje
  5. Video upodabljanje
  6. Geometrijsko računalništvo
  7. Podnebne raziskave in vremenska napoved
  8. Astrofizika
  9. Kriptografija
  10. Računalniški vid
  11. Razbijanje gesla
  12. Kvantne raziskave

GPU proti CPE obdelavi

GPE in CPE obdelujejo digitalne podatke, vendar to počnejo na različne načine. CPE ali centralna procesna enota je zasnovana za serijsko obdelavo pri visokih hitrostih, medtem ko so GPE zasnovane za vzporedno obdelavo pri veliko nižjih hitrostih. Seveda lahko CPE uporablja hiper-nitnost, da dobi 2 niti na jedro, ali ima celo na desetine jeder, vendar so v osnovi serijski procesorji.

Medtem ko imajo lahko procesorji nekaj jeder, imajo sodobni grafični procesorji na tisoče jeder, na primer Nvidia GeForce RTX 3090 ki ima 10K+ jeder. Da bi dobili prednost pred procesorji, morajo biti podatki zmožni vzporedne obdelave, na primer obdelave toka, ki vsebuje na tisoče slik naenkrat.

GPU proti ASIC

ASIC je kratica za Application Specific Integrated Circuit, kar pomeni, da lahko izvaja samo eno nalogo – to je nalogo, za katero je bil zasnovan. ASIC je edinstven stroj, ki je razvit iz nič in za izdelavo zahteva strokovno znanje strojne opreme. ASIC se običajno uporabljajo pri rudarjenju kriptovalut, saj ponujajo dobre prednosti vzporedne obdelave in večjo učinkovitost kot GPE.

Glavna razlika med obema pa je, da so grafični procesorji bolj vsestranski. Na primer, z uporabo grafičnih procesorjev lahko enostavno sestavite opremo za rudarjenje kriptovalut. Deli so lahko dostopni in če ste končali z rudarjenjem, lahko kartico GPE vedno prodate igralcem ali drugim rudarjem. Z ASIC-ji pa lahko drugim rudarjem prodate samo rabljen stroj, saj z njim skoraj ne morete početi ničesar drugega.

Poleg rudarjenja kriptovalut postane še težje poseči po stroju ASIC, ker niso množični izdelki. To je močno v nasprotju s sistemi GPE, ki jih lahko dobite povsod in jih enostavno konfigurirate.

GPU v primerjavi z računalništvom v gruči

Medtem ko posamezna kartica GPU vsebuje na tisoče jeder, ki dodajo izjemno moč vsakemu računalniku, na katerega jo priključite, lahko teoretično dodate toliko kartic GPU na matično ploščo računalnika, kolikor zmore, in še povečate njeno zmogljivost obdelave.

Po drugi strani pa se računalniška gruča nanaša na več računalnikov, ki so povezani v omrežje in delujejo kot en velik računalnik – superračunalnik. Vsak računalnik v omrežju se imenuje vozlišče in ima lahko večjedrni CPE ter eno ali več kartic GPU.

Vsaka gruča mora imeti glavno vozlišče, ki je sprednji računalnik, ki je odgovoren za upravljanje in razporejanje svojih delovnih vozlišč. Vseboval bo tudi programsko opremo, ki dodeljuje podatke in programe svojim delovnim vozliščem za izračun in vračanje rezultatov.

Pospešek GPE vs Hyper-threading

CPE je zasnovan tako, da obravnava več nalog hkrati, zato deluje pri zelo visokih hitrostih in razporeja čas obdelave med temi več procesi. Ko pa naleti na računalniško intenzivno funkcijo, lahko nekaj časa ostane v zanki, preden se vrne k drugim procesom. To običajno povzroči splošno upočasnitev računalnika, v hujših primerih pa popolno zamrznitev sistema.

Računalniški oblikovalci se lahko izognejo temu strašnemu scenariju z uporabo hiper-nitnosti ali pospeševanja GPE. Hyper-threading omogoča, da eno jedro procesorja deluje kot dve procesni niti. Torej, ko je ena nit ujeta v računalniško intenzivni zanki, lahko druga nit še vedno drži sistem skupaj.

Sodobni računalniki imajo zdaj več jeder od 2 do 4, 8, 16, 32 itd. Poleg tega imajo hiper-nitnost, tako da 2-jedrni CPE ponuja 4 niti, 4-jedrni ponuja 8 niti itd.

Hyper-threading z večjedrnimi procesorji bo rešil večino računalniških težav, preprečil ozka grla in zagotovil vrhunsko zmogljivost s preprostimi igrami, glasbeno produkcijo ter majhnimi grafičnimi, video in projekti strojnega učenja. Ko pa potrebujete več moči od tega, je GPE pogosto prava rešitev.

Pospeševanje GPU ali strojne opreme je zmožnost programske aplikacije, da izkoristi vzporedno procesorsko moč GPE-ja za obdelavo velikega števila podatkov, ne da bi obremenjevala CPE. Veliko profesionalnih aplikacij je za dobro delovanje odvisno od pospeška GPU. Sem spadajo programi za oblikovanje/upodabljanje videa in animacije, kodirniki, kriptografija, velika nevronska omrežja itd.

Osnove programiranja GPGPU

Splošno programiranje grafičnih procesorjev je bilo sprva izvedeno z uporabo DirectX in OpenGL knjižnice. Ti so bili zasnovani izključno za grafični razvoj, zato ste morali svoje podatke znova uporabiti v grafičnih modelih, da so delovali.

Na srečo je v preteklih letih prišlo do velikega napredka v GPGPU, ki je vodil do knjižnic, programskih jezikov in ogrodij. Najbolj priljubljen med temi okviri je CUDA podjetja Nvidia.

CUDA vsakemu razvijalcu olajša, da se poglobi v programiranje GPE, ne da bi se moral spoznati na malenkosti klasičnega programiranja GPU. Zagotavlja funkcije, ki izboljšujejo razvoj onkraj grafike, s številnimi enotami celo s funkcijami, specifičnimi za strojno učenje.

Razpoložljive knjižnice prav tako olajšajo ustvarjanje novih programov, pospešenih z grafično procesorsko enoto, iz nič ali prilagajanje vnaprej napisanih za vzporedno obdelavo. Izberete pravo knjižnico, optimizirate kodo za vzporedne zanke, znova prevedete in to je to.

Jedra CUDA proti pretočnim procesorjem

Pogosto boste naleteli na izraze Cuda jedra in pretočni procesorji. Oba izraza se preprosto nanašata na GPU jedro oz Aritmetične logične enote GPE-ja. CUDA Core je lastniška tehnologija družbe Nvidia, medtem ko so procesorji Stream podjetja AMD.

Drug izraz, ki ga lahko srečate, je Streaming Multi-Processor ali SM. To je še ena tehnologija Nvidia, ki je prvotno združevala 8 jeder CUDA na SM. Naenkrat izvaja 32-nitne zvitke, pri čemer uporablja 4 taktne cikle na ukaz. Novejše zasnove imajo zdaj več kot 100 jeder na pretočni večprocesor.

Najbolj priljubljeni jeziki in knjižnice GPE

Obstaja toliko knjižnic in jezikov, ki delujejo na platformah Nvidia CUDA in AMD. Sledi le nekaj:

  1. Nvidia cuBLAS – Osnovni podprogrami linearne algebre za CUDA
  2. cuDNN – Knjižnica globokih nevronskih mrež
  3. OpenCL – Odprti standard za vzporedno programiranje
  4. Openmp – Za grafične procesorje AMD
  5. KOLK – knjižnica C++
  6. Nvidia cuRAND – Generiranje naključnih števil
  7. cuFFT – Za hitro Fourierjevo transformacijo
  8. Nvidia NPP – 2D obdelava slik in signalov
  9. GPU VSIPL – Vektorska slika in obdelava signalov
  10. OpenCV – GPU knjižnica za računalniški vid
  11. OpenACC – Jezik za vzporedni razvoj
  12. V PyCU – Python za platformo CUDA
  13. TensorRT – Globoko učenje za CUDA
  14. CUDA C++ – jezik C++ za CUDA
  15. CUDA C – Jezik C za CUDA
  16. CUDA Fortran – CUDA za razvijalce FORTRAN

Najboljši projekti gruče GPU

Od junija 2022 je bilo 8 od 10 najhitrejših superračunalnikov na svetu GPE-pospešenih. Vsi si delijo tudi operacijski sistem Linux in so naslednji:

UvrstitevImePetaflopsCPU jedraGPU jedraMoč (kW)Leto
1.Frontier1,102591,8728,138,24021,1002022
2.SOBA151.9075,2641,034,8802,9002022
3.Vrh148.6202,7522,211,84010,0962018
4.sierra94.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

zaključek

Ko ste prišli do konca tega potapljanja v računalništvo z grafično procesorsko enoto in vse, kar pride z njim, bi morali do zdaj že dobiti predstavo o njegovi moči in obsegu.

Za dodatne informacije si lahko ogledate platformo za razvijalce Nvidia tukaj ali tisto od AMD tukaj.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke je računalniški navdušenec, ki rad bere široko paleto knjig. Raje uporablja Linux pred Windows/Macom in ga uporablja
Ubuntu že od prvih dni. Ujamete ga lahko na twitterju prek bongotrax

Članki: 298

Prejmite tehnične stvari

Tehnološki trendi, startup trendi, ocene, spletni dohodek, spletna orodja in trženje enkrat ali dvakrat mesečno